"""UGen definitions for nanosynth, organized by category."""

from .basic import (
    Mix,
    MulAdd,
    Sum3,
    Sum4,
)
from .beq import (
    BAllPass,
    BBandPass,
    BBandStop,
    BHiCut,
    BHiPass,
    BHiShelf,
    BLowCut,
    BLowPass,
    BLowShelf,
    BPeakEQ,
)
from .bufio import (
    BufRd,
    BufWr,
    ClearBuf,
    LocalBuf,
    MaxLocalBufs,
    PlayBuf,
    RecordBuf,
    ScopeOut,
    ScopeOut2,
)
from .chaos import (
    CuspL,
    CuspN,
    FBSineC,
    FBSineL,
    FBSineN,
    GbmanL,
    GbmanN,
    HenonC,
    HenonL,
    HenonN,
    LatoocarfianC,
    LatoocarfianL,
    LatoocarfianN,
    LinCongC,
    LinCongL,
    LinCongN,
    LorenzL,
    QuadC,
    QuadL,
    QuadN,
    StandardL,
    StandardN,
)
from .convolution import (
    Convolution,
    Convolution2,
    Convolution2L,
    Convolution3,
)
from .delay import (
    AllpassC,
    AllpassL,
    AllpassN,
    BufAllpassC,
    BufAllpassL,
    BufAllpassN,
    BufCombC,
    BufCombL,
    BufCombN,
    BufDelayC,
    BufDelayL,
    BufDelayN,
    CombC,
    CombL,
    CombN,
    DelTapRd,
    DelTapWr,
    Delay1,
    Delay2,
    DelayC,
    DelayL,
    DelayN,
)
from .demand import (
    Dbrown,
    Dbufrd,
    Dbufwr,
    Demand,
    DemandEnvGen,
    Dgeom,
    Dibrown,
    Diwhite,
    Drand,
    Dreset,
    Dseq,
    Dser,
    Dseries,
    Dshuf,
    Dstutter,
    Dswitch,
    Dswitch1,
    Dunique,
    Duty,
    Dwhite,
    Dwrand,
    Dxrand,
)
from .diskio import (
    DiskIn,
    DiskOut,
    VDiskIn,
)
from .dynamics import (
    Amplitude,
    Compander,
    CompanderD,
    Limiter,
    Normalizer,
)
from .envelopes import (
    Done,
    Free,
    FreeSelf,
    FreeSelfWhenDone,
    Linen,
    Pause,
    PauseSelf,
    PauseSelfWhenDone,
)
from .ffsinosc import (
    Blip,
    FSinOsc,
    Klank,
    Pulse,
    Saw,
)
from .filters import (
    APF,
    BPF,
    BPZ2,
    BRF,
    BRZ2,
    Changed,
    Decay,
    Decay2,
    DetectSilence,
    FOS,
    Formlet,
    HPF,
    HPZ1,
    HPZ2,
    Integrator,
    LPF,
    LPZ1,
    LPZ2,
    Lag,
    Lag2,
    Lag2UD,
    Lag3,
    Lag3UD,
    LagUD,
    LeakDC,
    Median,
    MidEQ,
    MoogFF,
    OnePole,
    OneZero,
    RHPF,
    RLPF,
    Ramp,
    Ringz,
    SOS,
    Slew,
    Slope,
    TwoPole,
    TwoZero,
)
from .gendyn import (
    Gendy1,
    Gendy2,
    Gendy3,
)
from .granular import (
    GrainBuf,
    GrainIn,
    PitchShift,
    Warp1,
)
from .hilbert import (
    FreqShift,
    Hilbert,
    HilbertFIR,
)
from .info import (
    BlockSize,
    BufChannels,
    BufDur,
    BufFrames,
    BufRateScale,
    BufSampleRate,
    BufSamples,
    ControlDur,
    ControlRate,
    NodeID,
    NumAudioBuses,
    NumBuffers,
    NumControlBuses,
    NumInputBuses,
    NumOutputBuses,
    NumRunningSynths,
    RadiansPerSample,
    SampleDur,
    SampleRate,
    SubsampleOffset,
)
from .inout import (
    In,
    InFeedback,
    LocalIn,
    LocalOut,
    OffsetOut,
    Out,
    ReplaceOut,
    XOut,
)
from .lines import (
    A2K,
    AmpComp,
    AmpCompA,
    DC,
    K2A,
    LinExp,
    LinLin,
    Line,
    Silence,
    XLine,
)
from .mac import (
    KeyState,
    MouseButton,
    MouseX,
    MouseY,
)
from .ml import (
    BeatTrack,
    BeatTrack2,
    KeyTrack,
    Loudness,
    MFCC,
    Onsets,
    Pitch,
    SpecCentroid,
    SpecFlatness,
    SpecPcile,
)
from .noise import (
    BrownNoise,
    ClipNoise,
    CoinGate,
    Crackle,
    Dust,
    Dust2,
    ExpRand,
    GrayNoise,
    Hasher,
    IRand,
    LFClipNoise,
    LFDClipNoise,
    LFDNoise0,
    LFDNoise1,
    LFDNoise3,
    LFNoise0,
    LFNoise1,
    LFNoise2,
    LinRand,
    Logistic,
    MantissaMask,
    NRand,
    PinkNoise,
    Rand,
    RandID,
    RandSeed,
    TExpRand,
    TIRand,
    TRand,
    TWindex,
    WhiteNoise,
)
from .osc import (
    COsc,
    DegreeToKey,
    Impulse,
    Index,
    LFCub,
    LFGauss,
    LFPar,
    LFPulse,
    LFSaw,
    LFTri,
    Osc,
    OscN,
    Select,
    SinOsc,
    SyncSaw,
    VOsc,
    VOsc3,
    VarSaw,
    Vibrato,
    WrapIndex,
)
from .panning import (
    Balance2,
    BiPanB2,
    DecodeB2,
    Pan2,
    Pan4,
    PanAz,
    PanB,
    PanB2,
    Rotate2,
    Splay,
    XFade2,
)
from .physical import (
    Ball,
    Pluck,
    Spring,
    TBall,
)
from .pv import (
    FFT,
    IFFT,
    PV_Add,
    PV_BinScramble,
    PV_BinShift,
    PV_BinWipe,
    PV_BrickWall,
    PV_ChainUGen,
    PV_ConformalMap,
    PV_Conj,
    PV_Copy,
    PV_CopyPhase,
    PV_Diffuser,
    PV_Div,
    PV_HainsworthFoote,
    PV_JensenAndersen,
    PV_LocalMax,
    PV_MagAbove,
    PV_MagBelow,
    PV_MagClip,
    PV_MagDiv,
    PV_MagFreeze,
    PV_MagMul,
    PV_MagNoise,
    PV_MagShift,
    PV_MagSmear,
    PV_MagSquared,
    PV_Max,
    PV_Min,
    PV_Mul,
    PV_PhaseShift,
    PV_PhaseShift270,
    PV_PhaseShift90,
    PV_RandComb,
    PV_RandWipe,
    PV_RectComb,
    PV_RectComb2,
    RunningSum,
)
from .reverb import FreeVerb
from .safety import (
    CheckBadValues,
    Sanitize,
)
from .triggers import (
    Clip,
    Fold,
    Gate,
    InRange,
    Latch,
    LeastChange,
    MostChange,
    Peak,
    PeakFollower,
    Phasor,
    Poll,
    RunningMax,
    RunningMin,
    Schmidt,
    SendPeakRMS,
    SendReply,
    SendTrig,
    Sweep,
    TDelay,
    ToggleFF,
    Trig,
    Trig1,
    Wrap,
    ZeroCrossing,
)

__all__ = [
    # basic
    "Mix",
    "MulAdd",
    "Sum3",
    "Sum4",
    # beq
    "BAllPass",
    "BBandPass",
    "BBandStop",
    "BHiCut",
    "BHiPass",
    "BHiShelf",
    "BLowCut",
    "BLowPass",
    "BLowShelf",
    "BPeakEQ",
    # bufio
    "BufRd",
    "BufWr",
    "ClearBuf",
    "LocalBuf",
    "MaxLocalBufs",
    "PlayBuf",
    "RecordBuf",
    "ScopeOut",
    "ScopeOut2",
    # chaos
    "CuspL",
    "CuspN",
    "FBSineC",
    "FBSineL",
    "FBSineN",
    "GbmanL",
    "GbmanN",
    "HenonC",
    "HenonL",
    "HenonN",
    "LatoocarfianC",
    "LatoocarfianL",
    "LatoocarfianN",
    "LinCongC",
    "LinCongL",
    "LinCongN",
    "LorenzL",
    "QuadC",
    "QuadL",
    "QuadN",
    "StandardL",
    "StandardN",
    # convolution
    "Convolution",
    "Convolution2",
    "Convolution2L",
    "Convolution3",
    # delay
    "AllpassC",
    "AllpassL",
    "AllpassN",
    "BufAllpassC",
    "BufAllpassL",
    "BufAllpassN",
    "BufCombC",
    "BufCombL",
    "BufCombN",
    "BufDelayC",
    "BufDelayL",
    "BufDelayN",
    "CombC",
    "CombL",
    "CombN",
    "DelTapRd",
    "DelTapWr",
    "Delay1",
    "Delay2",
    "DelayC",
    "DelayL",
    "DelayN",
    # demand
    "Dbrown",
    "Dbufrd",
    "Dbufwr",
    "Demand",
    "DemandEnvGen",
    "Dgeom",
    "Dibrown",
    "Diwhite",
    "Drand",
    "Dreset",
    "Dseq",
    "Dser",
    "Dseries",
    "Dshuf",
    "Dstutter",
    "Dswitch",
    "Dswitch1",
    "Dunique",
    "Duty",
    "Dwhite",
    "Dwrand",
    "Dxrand",
    # diskio
    "DiskIn",
    "DiskOut",
    "VDiskIn",
    # dynamics
    "Amplitude",
    "Compander",
    "CompanderD",
    "Limiter",
    "Normalizer",
    # envelopes
    "Done",
    "Free",
    "FreeSelf",
    "FreeSelfWhenDone",
    "Linen",
    "Pause",
    "PauseSelf",
    "PauseSelfWhenDone",
    # ffsinosc
    "Blip",
    "FSinOsc",
    "Klank",
    "Pulse",
    "Saw",
    # filters
    "APF",
    "BPF",
    "BPZ2",
    "BRF",
    "BRZ2",
    "Changed",
    "Decay",
    "Decay2",
    "DetectSilence",
    "FOS",
    "Formlet",
    "HPF",
    "HPZ1",
    "HPZ2",
    "Integrator",
    "LPF",
    "LPZ1",
    "LPZ2",
    "Lag",
    "Lag2",
    "Lag2UD",
    "Lag3",
    "Lag3UD",
    "LagUD",
    "LeakDC",
    "Median",
    "MidEQ",
    "MoogFF",
    "OnePole",
    "OneZero",
    "RHPF",
    "RLPF",
    "Ramp",
    "Ringz",
    "SOS",
    "Slew",
    "Slope",
    "TwoPole",
    "TwoZero",
    # gendyn
    "Gendy1",
    "Gendy2",
    "Gendy3",
    # granular
    "GrainBuf",
    "GrainIn",
    "PitchShift",
    "Warp1",
    # hilbert
    "FreqShift",
    "Hilbert",
    "HilbertFIR",
    # info
    "BlockSize",
    "BufChannels",
    "BufDur",
    "BufFrames",
    "BufRateScale",
    "BufSampleRate",
    "BufSamples",
    "ControlDur",
    "ControlRate",
    "NodeID",
    "NumAudioBuses",
    "NumBuffers",
    "NumControlBuses",
    "NumInputBuses",
    "NumOutputBuses",
    "NumRunningSynths",
    "RadiansPerSample",
    "SampleDur",
    "SampleRate",
    "SubsampleOffset",
    # inout
    "In",
    "InFeedback",
    "LocalIn",
    "LocalOut",
    "OffsetOut",
    "Out",
    "ReplaceOut",
    "XOut",
    # lines
    "A2K",
    "AmpComp",
    "AmpCompA",
    "DC",
    "K2A",
    "LinExp",
    "LinLin",
    "Line",
    "Silence",
    "XLine",
    # mac
    "KeyState",
    "MouseButton",
    "MouseX",
    "MouseY",
    # ml
    "BeatTrack",
    "BeatTrack2",
    "KeyTrack",
    "Loudness",
    "MFCC",
    "Onsets",
    "Pitch",
    "SpecCentroid",
    "SpecFlatness",
    "SpecPcile",
    # noise
    "BrownNoise",
    "ClipNoise",
    "CoinGate",
    "Crackle",
    "Dust",
    "Dust2",
    "ExpRand",
    "GrayNoise",
    "Hasher",
    "IRand",
    "LFClipNoise",
    "LFDClipNoise",
    "LFDNoise0",
    "LFDNoise1",
    "LFDNoise3",
    "LFNoise0",
    "LFNoise1",
    "LFNoise2",
    "LinRand",
    "Logistic",
    "MantissaMask",
    "NRand",
    "PinkNoise",
    "Rand",
    "RandID",
    "RandSeed",
    "TExpRand",
    "TIRand",
    "TRand",
    "TWindex",
    "WhiteNoise",
    # osc
    "COsc",
    "DegreeToKey",
    "Impulse",
    "Index",
    "LFCub",
    "LFGauss",
    "LFPar",
    "LFPulse",
    "LFSaw",
    "LFTri",
    "Osc",
    "OscN",
    "Select",
    "SinOsc",
    "SyncSaw",
    "VOsc",
    "VOsc3",
    "VarSaw",
    "Vibrato",
    "WrapIndex",
    # panning
    "Balance2",
    "BiPanB2",
    "DecodeB2",
    "Pan2",
    "Pan4",
    "PanAz",
    "PanB",
    "PanB2",
    "Rotate2",
    "Splay",
    "XFade2",
    # physical
    "Ball",
    "Pluck",
    "Spring",
    "TBall",
    # pv
    "FFT",
    "IFFT",
    "PV_Add",
    "PV_BinScramble",
    "PV_BinShift",
    "PV_BinWipe",
    "PV_BrickWall",
    "PV_ChainUGen",
    "PV_ConformalMap",
    "PV_Conj",
    "PV_Copy",
    "PV_CopyPhase",
    "PV_Diffuser",
    "PV_Div",
    "PV_HainsworthFoote",
    "PV_JensenAndersen",
    "PV_LocalMax",
    "PV_MagAbove",
    "PV_MagBelow",
    "PV_MagClip",
    "PV_MagDiv",
    "PV_MagFreeze",
    "PV_MagMul",
    "PV_MagNoise",
    "PV_MagShift",
    "PV_MagSmear",
    "PV_MagSquared",
    "PV_Max",
    "PV_Min",
    "PV_Mul",
    "PV_PhaseShift",
    "PV_PhaseShift270",
    "PV_PhaseShift90",
    "PV_RandComb",
    "PV_RandWipe",
    "PV_RectComb",
    "PV_RectComb2",
    "RunningSum",
    # reverb
    "FreeVerb",
    # safety
    "CheckBadValues",
    "Sanitize",
    # triggers
    "Clip",
    "Fold",
    "Gate",
    "InRange",
    "Latch",
    "LeastChange",
    "MostChange",
    "Peak",
    "PeakFollower",
    "Phasor",
    "Poll",
    "RunningMax",
    "RunningMin",
    "Schmidt",
    "SendPeakRMS",
    "SendReply",
    "SendTrig",
    "Sweep",
    "TDelay",
    "ToggleFF",
    "Trig",
    "Trig1",
    "Wrap",
    "ZeroCrossing",
]
