hsc3-rec-0.11: Haskell SuperCollider Record Variants



The Make class provides the ugen function, and has instances for record constructors for all unit generators that take at least one parameter.

There are two primary use scenarios.

In the first individual record variants are used in isolatation for UGens having many inputs where default values are required

In the second graphs are predominantly constructed using record syntax for clarity.

In the latter case clarity is greatly enhanced using record field disambiguation as is present in ghc since version 6.8.2.

The record variants are generated by a program using the database at hsc3-db and are not stored in the darcs repository. This database is auto-generated from the supercollider language unit generator bindings and is not entirely accurate.

See http://slavepianos.org/rd?t=hsc3-db

In particular neither argument re-ordering or multiple channel collapse are correctly annotated, see for instance the Out unit generator in the help file analog-bubbles.hs, where explicit bus numbering is required.


class Make a whereSource


ugen :: a -> UGenSource


Make A2K 
Make AbstractIn 
Make AbstractOut 
Make AllpassC 
Make AllpassL 
Make AllpassN 
Make AmpCompA 
Make AmpComp 
Make Amplitude 
Make APF 
Make AudioControl 
Make Balance2 
Make Ball 
Make BAllPass 
Make BBandPass 
Make BBandStop 
Make BeatTrack2 
Make BeatTrack 
Make BEQSuite 
Make BHiPass 
Make BHiShelf 
Make BiPanB2 
Make Blip 
Make BLowPass 
Make BLowShelf 
Make BPeakEQ 
Make BPF 
Make BPZ2 
Make BRF 
Make BRZ2 
Make BufAllpassC 
Make BufAllpassL 
Make BufAllpassN 
Make BufChannels 
Make BufCombC 
Make BufCombL 
Make BufCombN 
Make BufDelayC 
Make BufDelayL 
Make BufDelayN 
Make BufDur 
Make BufFrames 
Make BufInfoUGenBase 
Make BufRateScale 
Make BufRd 
Make BufSampleRate 
Make BufSamples 
Make BufWr 
Make Changed 
Make ChaosGen 
Make CheckBadValues 
Make ClearBuf 
Make Clip 
Make CoinGate 
Make CombC 
Make CombL 
Make CombN 
Make CompanderD 
Make Compander 
Make Control 
Make Convolution2 
Make Convolution2L 
Make Convolution3 
Make Convolution 
Make COsc 
Make Crackle 
Make CuspL 
Make CuspN 
Make Dbrown 
Make Dbufrd 
Make Dbufwr 
Make DC 
Make Decay2 
Make Decay 
Make DecodeB2 
Make DegreeToKey 
Make Delay1 
Make Delay2 
Make DelayC 
Make DelayL 
Make DelayN 
Make DelTapRd 
Make DelTapWr 
Make DemandEnvGen 
Make Demand 
Make DetectIndex 
Make DetectSilence 
Make Dgeom 
Make Dibrown 
Make DiskIn 
Make DiskOut 
Make Diwhite 
Make Donce 
Make Done 
Make Dpoll 
Make Drand 
Make Dreset 
Make Dseq 
Make Dser 
Make Dseries 
Make Dshuf 
Make Dstutter 
Make Dswitch1 
Make Dswitch 
Make DUGen 
Make Dunique 
Make Dust2 
Make Dust 
Make Duty 
Make Dwhite 
Make Dwrand 
Make Dxrand 
Make DynKlang 
Make DynKlank 
Make EnvGen 
Make ExpRand 
Make FBSineC 
Make FBSineL 
Make FBSineN 
Make FFT 
Make FFTTrigger 
Make Filter 
Make Fold 
Make Formant 
Make Formlet 
Make FOS 
Make Free 
Make FreeSelf 
Make FreeSelfWhenDone 
Make FreeVerb2 
Make FreeVerb 
Make FreqShift 
Make FSinOsc 
Make Gate 
Make GbmanL 
Make GbmanN 
Make Gendy1 
Make Gendy2 
Make Gendy3 
Make GrainBuf 
Make GrainFM 
Make GrainIn 
Make GrainSin 
Make GVerb 
Make Hasher 
Make HenonC 
Make HenonL 
Make HenonN 
Make HilbertFIR 
Make Hilbert 
Make HPF 
Make HPZ1 
Make HPZ2 
Make IEnvGen 
Make IFFT 
Make Impulse 
Make Index 
Make IndexInBetween 
Make IndexL 
Make InFeedback 
Make In 
Make InRange 
Make InRect 
Make Integrator 
Make InTrig 
Make IRand 
Make K2A 
Make KeyState 
Make KeyTrack 
Make Klang 
Make Klank 
Make Lag2 
Make Lag2UD 
Make Lag3 
Make Lag3UD 
Make LagControl 
Make Lag 
Make LagIn 
Make LagUD 
Make LastValue 
Make Latch 
Make LatoocarfianC 
Make LatoocarfianL 
Make LatoocarfianN 
Make LeakDC 
Make LeastChange 
Make LFClipNoise 
Make LFCub 
Make LFDClipNoise 
Make LFDNoise0 
Make LFDNoise1 
Make LFDNoise3 
Make LFGauss 
Make LFNoise0 
Make LFNoise1 
Make LFNoise2 
Make LFPar 
Make LFPulse 
Make LFSaw 
Make LFTri 
Make Limiter 
Make LinCongC 
Make LinCongL 
Make LinCongN 
Make Line 
Make Linen 
Make LinExp 
Make LinLin 
Make LinPan2 
Make LinRand 
Make LinXFade2 
Make ListDUGen 
Make LocalIn 
Make LocalOut 
Make Logistic 
Make LorenzL 
Make Loudness 
Make LPF 
Make LPZ1 
Make LPZ2 
Make MantissaMask 
Make Median 
Make MFCC 
Make MidEQ 
Make MoogFF 
Make MostChange 
Make MouseButton 
Make MouseX 
Make MouseY 
Make MultiOutUGen 
Make Normalizer 
Make NRand 
Make OffsetOut 
Make OnePole 
Make OneZero 
Make Onsets 
Make Osc 
Make OscN 
Make Out 
Make Pan2 
Make Pan4 
Make PanAz 
Make PanB2 
Make PanB 
Make Panner 
Make PartConv 
Make Pause 
Make PauseSelf 
Make PauseSelfWhenDone 
Make PeakFollower 
Make Peak 
Make Phasor 
Make Pitch 
Make PitchShift 
Make PlayBuf 
Make Pluck 
Make PSinGrain 
Make PulseCount 
Make PulseDivider 
Make Pulse 
Make PV_Add 
Make PV_BinScramble 
Make PV_BinShift 
Make PV_BinWipe 
Make PV_BrickWall 
Make PV_ChainUGen 
Make PV_ConformalMap 
Make PV_Conj 
Make PV_Copy 
Make PV_CopyPhase 
Make PV_Diffuser 
Make PV_Div 
Make PV_HainsworthFoote 
Make PV_JensenAndersen 
Make PV_LocalMax 
Make PV_MagAbove 
Make PV_MagBelow 
Make PV_MagClip 
Make PV_MagDiv 
Make PV_MagFreeze 
Make PV_MagMul 
Make PV_MagNoise 
Make PV_MagShift 
Make PV_MagSmear 
Make PV_MagSquared 
Make PV_Max 
Make PV_Min 
Make PV_Mul 
Make PV_PhaseShift270 
Make PV_PhaseShift90 
Make PV_PhaseShift 
Make PV_RandComb 
Make PV_RandWipe 
Make PV_RectComb2 
Make PV_RectComb 
Make QuadC 
Make QuadL 
Make QuadN 
Make Ramp 
Make Rand 
Make RandID 
Make RandSeed 
Make RecordBuf 
Make ReplaceOut 
Make Resonz 
Make RHPF 
Make Ringz 
Make RLPF 
Make Rotate2 
Make RunningMax 
Make RunningMin 
Make RunningSum 
Make Saw 
Make Schmidt 
Make ScopeOut 
Make Select 
Make SendTrig 
Make SetBuf 
Make SetResetFF 
Make Shaper 
Make SharedIn 
Make SharedOut 
Make Silent 
Make SinOscFB 
Make SinOsc 
Make Slew 
Make Slope 
Make SOS 
Make SpecCentroid 
Make SpecFlatness 
Make SpecPcile 
Make Spring 
Make StandardL 
Make StandardN 
Make Stepper 
Make StereoConvolution2L 
Make Sweep 
Make SyncSaw 
Make T2A 
Make T2K 
Make Tap 
Make TBall 
Make TDelay 
Make TDuty 
Make TExpRand 
Make TGrains 
Make Timer 
Make TIRand 
Make ToggleFF 
Make TRand 
Make Trig1 
Make TrigControl 
Make Trig 
Make TWChoose 
Make TWindex 
Make TwoPole 
Make TwoZero 
Make Unpack1FFT 
Make VarSaw 
Make VDiskIn 
Make Vibrato 
Make VOsc3 
Make VOsc 
Make Warp1 
Make Wrap 
Make WrapIndex 
Make XFade2 
Make XFade 
Make XLine 
Make XOut 
Make ZeroCrossing