hsc3-db 0.8 → 0.9
raw patch · 9 files changed
+158/−33 lines, 9 filesdep ~hsc3setup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hsc3
API changes (from Hackage documentation)
Files
- README +1/−1
- Setup.hs +3/−0
- Setup.lhs +0/−3
- Sound/SC3/UGen/DB/Data.hs +32/−25
- hsc3-db.cabal +12/−4
- mk/config +2/−0
- mk/mk.sc +2/−0
- sclang/UGenDB.sc +28/−0
- sclang/Utilities.sc +78/−0
README view
@@ -3,5 +3,5 @@ hsc3-db provides Sound.SC3.UGen.DB.Data, a Haskell module that contains a database of SC3 UGens. -(c) rohan drape, 2006-2010+(c) rohan drape, 2006-2011 gpl, http://gnu.org/copyleft/
+ Setup.hs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+import Distribution.Simple+main = defaultMain
− Setup.lhs
@@ -1,3 +0,0 @@-#!/usr/bin/env runhaskell-> import Distribution.Simple-> main = defaultMain
Sound/SC3/UGen/DB/Data.hs view
@@ -1,4 +1,4 @@--- AUTOGENERATED: 2009-06-20-13h07+-- AUTOGENERATED: 2011-03-09-10h59 module Sound.SC3.UGen.DB.Data where import Sound.SC3.UGen.Rate data I = I { input_name :: String, input_default :: Double } deriving (Eq, Show)@@ -37,7 +37,7 @@ , U "BeatTrack" [ KR ] AR [ I "chain" (0), I "lock" (0) ] 4 , U "BeatTrack2" [ KR ] AR [ I "busindex" (0), I "numfeatures" (0), I "windowsize" (2), I "phaseaccuracy" (0.02), I "lock" (0), I "weightingscheme" (0) ] 6 , U "BiPanB2" [ AR, KR ] AR [ I "inA" (0), I "inB" (0), I "azimuth" (0), I "gain" (1) ] 3- , U "Blip" [ AR ] AR [ I "freq" (440), I "numharm" (200) ] 1+ , U "Blip" [ AR, KR ] AR [ I "freq" (440), I "numharm" (200) ] 1 , U "BrownNoise" [ AR, KR ] AR [ ] 1 , U "BufAllpassC" [ AR ] AR [ I "buf" (0), I "in" (0), I "delaytime" (0.2), I "decaytime" (1) ] 1 , U "BufAllpassL" [ AR ] AR [ I "buf" (0), I "in" (0), I "delaytime" (0.2), I "decaytime" (1) ] 1@@ -58,10 +58,11 @@ , U "BufSamples" [ KR, IR ] AR [ I "bufnum" (0) ] 1 , U "BufWr" [ AR, KR ] AR [ I "inputArray" (0), I "bufnum" (0), I "phase" (0), I "loop" (1) ] 1 , U "COsc" [ AR, KR ] AR [ I "bufnum" (0), I "freq" (440), I "beats" (0.5) ] 1+ , U "Changed" [ AR, KR ] AR [ I "input" (0), I "threshold" (0) ] 1 , U "ChaosGen" [ ] AR [ I "maxSize" (0) ] 1 , U "CheckBadValues" [ AR, KR ] AR [ I "in" (0), I "id" (0), I "post" (2) ] 1 , U "ClearBuf" [ ] IR [ I "buf" (0) ] 1- , U "Clip" [ AR, KR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1+ , U "Clip" [ AR, KR, IR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1 , U "ClipNoise" [ AR, KR ] AR [ ] 1 , U "CoinGate" [ AR, KR ] AR [ I "prob" (0), I "in" (0) ] 1 , U "CombC" [ AR, KR ] AR [ I "in" (0), I "maxdelaytime" (0.2), I "delaytime" (0.2), I "decaytime" (1) ] 1@@ -73,9 +74,9 @@ , U "ControlDur" [ IR ] AR [ ] 1 , U "ControlRate" [ IR ] AR [ ] 1 , U "Convolution" [ AR ] AR [ I "in" (0), I "kernel" (0), I "framesize" (512) ] 1- , U "Convolution2" [ AR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (0) ] 1- , U "Convolution2L" [ AR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (0), I "crossfade" (1) ] 1- , U "Convolution3" [ AR, KR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (0) ] 1+ , U "Convolution2" [ AR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (2048) ] 1+ , U "Convolution2L" [ AR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (2048), I "crossfade" (1) ] 1+ , U "Convolution3" [ AR, KR ] AR [ I "in" (0), I "kernel" (0), I "trigger" (0), I "framesize" (2048) ] 1 , U "Crackle" [ AR, KR ] AR [ I "chaosParam" (1.5) ] 1 , U "CuspL" [ AR ] AR [ I "freq" (22050), I "a" (1), I "b" (1.9), I "xi" (0) ] 1 , U "CuspN" [ AR ] AR [ I "freq" (22050), I "a" (1), I "b" (1.9), I "xi" (0) ] 1@@ -88,6 +89,8 @@ , U "Decay2" [ AR, KR ] AR [ I "in" (0), I "attackTime" (0.01), I "decayTime" (1) ] 1 , U "DecodeB2" [ AR, KR ] AR [ I "numChans" (0), I "w" (0), I "x" (0), I "y" (0), I "orientation" (0.5) ] 1 , U "DegreeToKey" [ AR, KR ] AR [ I "bufnum" (0), I "in" (0), I "octave" (12) ] 1+ , U "DelTapRd" [ AR, KR ] AR [ I "buffer" (0), I "phase" (0), I "delTime" (0), I "interp" (1) ] 1+ , U "DelTapWr" [ AR, KR ] AR [ I "buffer" (0), I "in" (0) ] 1 , U "Delay1" [ AR, KR ] AR [ I "in" (0) ] 1 , U "Delay2" [ AR, KR ] AR [ I "in" (0) ] 1 , U "DelayC" [ AR, KR ] AR [ I "in" (0), I "maxdelaytime" (0.2), I "delaytime" (0.2) ] 1@@ -106,6 +109,7 @@ , U "Done" [ KR ] AR [ I "src" (0) ] 1 , U "Dpoll" [ ] DR [ I "in" (0), I "label" (0), I "run" (1), I "trigid" (-1) ] 1 , U "Drand" [ ] DR [ I "list" (0), I "repeats" (1) ] 1+ , U "Dreset" [ ] DR [ I "in" (0), I "reset" (0) ] 1 , U "Dseq" [ ] DR [ I "list" (0), I "repeats" (1) ] 1 , U "Dser" [ ] DR [ I "list" (0), I "repeats" (1) ] 1 , U "Dseries" [ ] DR [ I "start" (1), I "step" (1), I "length" (inf) ] 1@@ -113,13 +117,15 @@ , U "Dstutter" [ ] DR [ I "n" (0), I "in" (0) ] 1 , U "Dswitch" [ ] DR [ I "list" (0), I "index" (0) ] 1 , U "Dswitch1" [ ] DR [ I "list" (0), I "index" (0) ] 1+ , U "Dunique" [ ] AR [ I "source" (0) ] 1 , U "Dust" [ AR, KR ] AR [ I "density" (0) ] 1 , U "Dust2" [ AR, KR ] AR [ I "density" (0) ] 1 , U "Duty" [ AR, KR ] AR [ I "dur" (1), I "reset" (0), I "level" (1), I "doneAction" (0) ] 1 , U "Dwhite" [ ] DR [ I "lo" (0), I "hi" (1), I "length" (inf) ] 1+ , U "Dwrand" [ ] DR [ I "list" (0), I "weights" (0), I "repeats" (1) ] 1 , U "Dxrand" [ ] DR [ I "list" (0), I "repeats" (1) ] 1- , U "DynKlang" [ AR ] AR [ I "specificationsArrayRef" (0), I "freqscale" (1), I "freqoffset" (0) ] 1- , U "DynKlank" [ AR ] AR [ I "specificationsArrayRef" (0), I "input" (0), I "freqscale" (1), I "freqoffset" (0), I "decayscale" (1) ] 1+ , U "DynKlang" [ AR, KR ] AR [ I "specificationsArrayRef" (0), I "freqscale" (1), I "freqoffset" (0) ] 1+ , U "DynKlank" [ AR, KR ] AR [ I "specificationsArrayRef" (0), I "input" (0), I "freqscale" (1), I "freqoffset" (0), I "decayscale" (1) ] 1 , U "EnvGen" [ AR, KR ] AR [ I "envelope" (0), I "gate" (1), I "levelScale" (1), I "levelBias" (0), I "timeScale" (1), I "doneAction" (0) ] 1 , U "ExpRand" [ ] IR [ I "lo" (0.01), I "hi" (1) ] 1 , U "FBSineC" [ AR ] AR [ I "freq" (22050), I "im" (1), I "fb" (0.1), I "a" (1.1), I "c" (0.5), I "xi" (0.1), I "yi" (0.1) ] 1@@ -130,7 +136,7 @@ , U "FOS" [ AR, KR ] AR [ I "in" (0), I "a0" (0), I "a1" (0), I "b1" (0) ] 1 , U "FSinOsc" [ AR, KR ] AR [ I "freq" (440), I "iphase" (0) ] 1 , U "Filter" [ ] AR [ I "maxSize" (0) ] 1- , U "Fold" [ AR, KR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1+ , U "Fold" [ AR, KR, IR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1 , U "Formant" [ AR ] AR [ I "fundfreq" (440), I "formfreq" (1760), I "bwfreq" (880) ] 1 , U "Formlet" [ AR, KR ] AR [ I "in" (0), I "freq" (440), I "attacktime" (1), I "decaytime" (1) ] 1 , U "Free" [ KR ] AR [ I "trig" (0), I "id" (0) ] 1@@ -146,10 +152,10 @@ , U "Gendy1" [ AR, KR ] AR [ I "ampdist" (1), I "durdist" (1), I "adparam" (1), I "ddparam" (1), I "minfreq" (440), I "maxfreq" (660), I "ampscale" (0.5), I "durscale" (0.5), I "initCPs" (12), I "knum" (0) ] 1 , U "Gendy2" [ AR, KR ] AR [ I "ampdist" (1), I "durdist" (1), I "adparam" (1), I "ddparam" (1), I "minfreq" (440), I "maxfreq" (660), I "ampscale" (0.5), I "durscale" (0.5), I "initCPs" (12), I "knum" (0), I "a" (1.17), I "c" (0.31) ] 1 , U "Gendy3" [ AR, KR ] AR [ I "ampdist" (1), I "durdist" (1), I "adparam" (1), I "ddparam" (1), I "freq" (440), I "ampscale" (0.5), I "durscale" (0.5), I "initCPs" (12), I "knum" (0) ] 1- , U "GrainBuf" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "sndbuf" (0), I "rate" (1), I "pos" (0), I "interp" (2), I "pan" (0), I "envbufnum" (-1) ] 1- , U "GrainFM" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "carfreq" (440), I "modfreq" (200), I "index" (1), I "pan" (0), I "envbufnum" (-1) ] 1- , U "GrainIn" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "in" (0), I "pan" (0), I "envbufnum" (-1) ] 1- , U "GrainSin" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "freq" (440), I "pan" (0), I "envbufnum" (-1) ] 1+ , U "GrainBuf" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "sndbuf" (0), I "rate" (1), I "pos" (0), I "interp" (2), I "pan" (0), I "envbufnum" (-1), I "maxGrains" (512) ] 1+ , U "GrainFM" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "carfreq" (440), I "modfreq" (200), I "index" (1), I "pan" (0), I "envbufnum" (-1), I "maxGrains" (512) ] 1+ , U "GrainIn" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "in" (0), I "pan" (0), I "envbufnum" (-1), I "maxGrains" (512) ] 1+ , U "GrainSin" [ AR ] AR [ I "numChannels" (1), I "trigger" (0), I "dur" (1), I "freq" (440), I "pan" (0), I "envbufnum" (-1), I "maxGrains" (512) ] 1 , U "GrayNoise" [ AR, KR ] AR [ ] 1 , U "HPF" [ AR, KR ] AR [ I "in" (0), I "freq" (440) ] 1 , U "HPZ1" [ AR, KR ] AR [ I "in" (0) ] 1@@ -166,11 +172,12 @@ , U "Impulse" [ AR, KR ] AR [ I "freq" (440), I "phase" (0) ] 1 , U "In" [ AR, KR ] AR [ I "bus" (0), I "numChannels" (1) ] 1 , U "InFeedback" [ AR ] AR [ I "bus" (0), I "numChannels" (1) ] 1- , U "InRange" [ AR, KR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1+ , U "InRange" [ AR, KR, IR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1 , U "InRect" [ AR, KR ] AR [ I "x" (0), I "y" (0), I "rect" (0) ] 1 , U "InTrig" [ KR ] AR [ I "bus" (0), I "numChannels" (1) ] 1 , U "Index" [ AR, KR ] AR [ I "bufnum" (0), I "in" (0) ] 1 , U "IndexInBetween" [ AR, KR ] AR [ I "bufnum" (0), I "in" (0) ] 1+ , U "IndexL" [ AR, KR ] AR [ I "bufnum" (0), I "in" (0) ] 1 , U "InfoUGenBase" [ IR ] AR [ ] 1 , U "Integrator" [ AR, KR ] AR [ I "in" (0), I "coef" (1) ] 1 , U "K2A" [ AR ] AR [ I "in" (0) ] 1@@ -222,7 +229,7 @@ , U "Line" [ AR, KR ] AR [ I "start" (0), I "end" (1), I "dur" (1), I "doneAction" (0) ] 1 , U "Linen" [ KR ] AR [ I "gate" (1), I "attackTime" (0.01), I "susLevel" (1), I "releaseTime" (1), I "doneAction" (0) ] 1 , U "ListDUGen" [ ] DR [ I "list" (0), I "repeats" (1) ] 1- , U "LocalIn" [ AR, KR ] AR [ I "numChannels" (1) ] 1+ , U "LocalIn" [ AR, KR ] AR [ I "numChannels" (1), I "default" (0) ] 1 , U "LocalOut" [ AR, KR ] AR [ I "channelsArray" (0) ] 1 , U "Logistic" [ AR, KR ] AR [ I "chaosParam" (3), I "freq" (1000), I "init" (0.5) ] 1 , U "LorenzL" [ AR ] AR [ I "freq" (22050), I "s" (10), I "r" (28), I "b" (2.667), I "h" (0.05), I "xi" (0.1), I "yi" (0), I "zi" (0) ] 1@@ -299,15 +306,15 @@ , U "Pause" [ KR ] AR [ I "gate" (0), I "id" (0) ] 1 , U "PauseSelf" [ KR ] AR [ I "in" (0) ] 1 , U "PauseSelfWhenDone" [ KR ] AR [ I "src" (0) ] 1- , U "Peak" [ AR, KR ] AR [ I "trig" (0), I "reset" (0) ] 1+ , U "Peak" [ AR, KR ] AR [ I "in" (0), I "trig" (0) ] 1 , U "PeakFollower" [ AR, KR ] AR [ I "in" (0), I "decay" (0.999) ] 1 , U "Phasor" [ AR, KR ] AR [ I "trig" (0), I "rate" (1), I "start" (0), I "end" (1), I "resetPos" (0) ] 1 , U "PinkNoise" [ AR, KR ] AR [ ] 1- , U "Pitch" [ KR ] AR [ I "in" (0), I "initFreq" (440), I "minFreq" (60), I "maxFreq" (4000), I "execFreq" (100), I "maxBinsPerOctave" (16), I "median" (1), I "ampThreshold" (0.01), I "peakThreshold" (0.5), I "downSample" (1) ] 2+ , U "Pitch" [ KR ] AR [ I "in" (0), I "initFreq" (440), I "minFreq" (60), I "maxFreq" (4000), I "execFreq" (100), I "maxBinsPerOctave" (16), I "median" (1), I "ampThreshold" (0.01), I "peakThreshold" (0.5), I "downSample" (1), I "clar" (0) ] 2 , U "PitchShift" [ AR ] AR [ I "in" (0), I "windowSize" (0.2), I "pitchRatio" (1), I "pitchDispersion" (0), I "timeDispersion" (0) ] 1 , U "PlayBuf" [ AR, KR ] AR [ I "numChannels" (0), I "bufnum" (0), I "rate" (1), I "trigger" (1), I "startPos" (0), I "loop" (0), I "doneAction" (0) ] 1 , U "Pluck" [ AR ] AR [ I "in" (0), I "trig" (1), I "maxdelaytime" (0.2), I "delaytime" (0.2), I "decaytime" (1), I "coef" (0.5) ] 1- , U "Pulse" [ AR ] AR [ I "freq" (440), I "width" (0.5) ] 1+ , U "Pulse" [ AR, KR ] AR [ I "freq" (440), I "width" (0.5) ] 1 , U "PulseCount" [ AR, KR ] AR [ I "trig" (0), I "reset" (0) ] 1 , U "PulseDivider" [ AR, KR ] AR [ I "trig" (0), I "div" (2), I "start" (0) ] 1 , U "QuadC" [ AR ] AR [ I "freq" (22050), I "a" (1), I "b" (-1), I "c" (-0.75), I "xi" (0) ] 1@@ -319,20 +326,20 @@ , U "Ramp" [ AR, KR ] AR [ I "in" (0), I "lagTime" (0.1) ] 1 , U "Rand" [ ] IR [ I "lo" (0), I "hi" (1) ] 1 , U "RandID" [ KR, IR ] AR [ I "id" (0) ] 1- , U "RandSeed" [ KR, IR ] AR [ I "trig" (0), I "seed" (56789) ] 1+ , U "RandSeed" [ AR, KR, IR ] AR [ I "trig" (0), I "seed" (56789) ] 1 , U "RecordBuf" [ AR, KR ] AR [ I "inputArray" (0), I "bufnum" (0), I "offset" (0), I "recLevel" (1), I "preLevel" (0), I "run" (1), I "loop" (1), I "trigger" (1), I "doneAction" (0) ] 1 , U "ReplaceOut" [ AR, KR ] AR [ I "bus" (0), I "channelsArray" (0) ] 1 , U "Resonz" [ AR, KR ] AR [ I "in" (0), I "freq" (440), I "bwr" (1) ] 1 , U "Ringz" [ AR, KR ] AR [ I "in" (0), I "freq" (440), I "decaytime" (1) ] 1 , U "Rotate2" [ AR, KR ] AR [ I "x" (0), I "y" (0), I "pos" (0) ] 2- , U "RunningMax" [ AR, KR ] AR [ I "trig" (0), I "reset" (0) ] 1- , U "RunningMin" [ AR, KR ] AR [ I "trig" (0), I "reset" (0) ] 1+ , U "RunningMax" [ AR, KR ] AR [ I "in" (0), I "trig" (0) ] 1+ , U "RunningMin" [ AR, KR ] AR [ I "in" (0), I "trig" (0) ] 1 , U "RunningSum" [ AR, KR ] AR [ I "in" (0), I "numsamp" (40) ] 1 , U "SOS" [ AR, KR ] AR [ I "in" (0), I "a0" (0), I "a1" (0), I "a2" (0), I "b1" (0), I "b2" (0) ] 1 , U "SampleDur" [ IR ] AR [ ] 1 , U "SampleRate" [ IR ] AR [ ] 1- , U "Saw" [ AR ] AR [ I "freq" (440) ] 1- , U "Schmidt" [ AR, KR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1+ , U "Saw" [ AR, KR ] AR [ I "freq" (440) ] 1+ , U "Schmidt" [ AR, KR, IR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1 , U "ScopeOut" [ AR, KR ] AR [ I "inputArray" (0), I "bufnum" (0) ] 1 , U "Select" [ AR, KR ] AR [ I "which" (0), I "array" (0) ] 1 , U "SendTrig" [ AR, KR ] AR [ I "in" (0), I "id" (0), I "value" (0) ] 1@@ -353,7 +360,7 @@ , U "StandardL" [ AR ] AR [ I "freq" (22050), I "k" (1), I "xi" (0.5), I "yi" (0) ] 1 , U "StandardN" [ AR ] AR [ I "freq" (22050), I "k" (1), I "xi" (0.5), I "yi" (0) ] 1 , U "Stepper" [ AR, KR ] AR [ I "trig" (0), I "reset" (0), I "min" (0), I "max" (7), I "step" (1), I "resetval" (0) ] 1- , U "StereoConvolution2L" [ AR ] AR [ I "in" (0), I "kernelL" (0), I "kernelR" (0), I "trigger" (0), I "framesize" (0), I "crossfade" (1) ] 2+ , U "StereoConvolution2L" [ AR ] AR [ I "in" (0), I "kernelL" (0), I "kernelR" (0), I "trigger" (0), I "framesize" (2048), I "crossfade" (1) ] 2 , U "SubsampleOffset" [ IR ] AR [ ] 1 , U "Sweep" [ AR, KR ] AR [ I "trig" (0), I "rate" (1) ] 1 , U "SyncSaw" [ AR, KR ] AR [ I "syncFreq" (440), I "sawFreq" (440) ] 1@@ -384,7 +391,7 @@ , U "Vibrato" [ AR, KR ] AR [ I "freq" (440), I "rate" (6), I "depth" (0.02), I "delay" (0), I "onset" (0), I "rateVariation" (0.04), I "depthVariation" (0.1), I "iphase" (0) ] 1 , U "Warp1" [ AR ] AR [ I "numChannels" (1), I "bufnum" (0), I "pointer" (0), I "freqScale" (1), I "windowSize" (0.2), I "envbufnum" (-1), I "overlaps" (8), I "windowRandRatio" (0), I "interp" (1) ] 1 , U "WhiteNoise" [ AR, KR ] AR [ ] 1- , U "Wrap" [ AR, KR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1+ , U "Wrap" [ AR, KR, IR ] AR [ I "in" (0), I "lo" (0), I "hi" (1) ] 1 , U "WrapIndex" [ AR, KR ] AR [ I "bufnum" (0), I "in" (0) ] 1 , U "XFade" [ ] AR [ I "maxSize" (0) ] 1 , U "XFade2" [ AR, KR ] AR [ I "inA" (0), I "inB" (0), I "pan" (0), I "level" (1) ] 1
hsc3-db.cabal view
@@ -1,22 +1,30 @@ Name: hsc3-db-Version: 0.8+Version: 0.9 Synopsis: Haskell SuperCollider Unit Generator Database Description: Database of SuperCollider Unit Generators License: GPL Category: Sound-Copyright: (c) Rohan Drape, 2006-2010+Copyright: (c) Rohan Drape, 2006-2011 Author: Rohan Drape Maintainer: rd@slavepianos.org Stability: Experimental Homepage: http://slavepianos.org/rd/?t=hsc3-db-Tested-With: GHC == 6.10.3+Tested-With: GHC == 6.12.1 Build-Type: Simple Cabal-Version: >= 1.6 Data-files: README+ mk/config+ mk/mk.sc+ sclang/UGenDB.sc+ sclang/Utilities.sc Library Build-Depends: base == 4.*,- hsc3 == 0.8+ hsc3 == 0.9 GHC-Options: -Wall -fwarn-tabs Exposed-modules: Sound.SC3.UGen.DB.Data++Source-Repository head+ Type: darcs+ Location: http://slavepianos.org/rd/sw/hsc3-db/
+ mk/config view
@@ -0,0 +1,2 @@++/home/rohan/share/SuperCollider/SCClassLibrary++/home/rohan/sw/hsc3-db/sclang
+ mk/mk.sc view
@@ -0,0 +1,2 @@+UGenDB.haskell;+thisProcess.shutdown;
+ sclang/UGenDB.sc view
@@ -0,0 +1,28 @@+UGenDB {+ *haskell {+ var uu_a = UGen.allSubClassesOf.sort({|a, b| a.name < b.name;});+ var ignoring = ['BasicOpUGen', 'BinaryOpUGen', 'MulAdd', 'OutputProxy', 'PackFFT', 'Poll', 'UnaryOpUGen', 'UnpackFFT', 'LocalBuf', 'SendReply'];+ var uu = uu_a.reject({|u| ignoring.includes(u.name.asSymbol); });+ Date.getDate.format("-- AUTOGENERATED: %Y-%m-%d-%Hh%M").postln;+ "module Sound.SC3.UGen.DB.Data where".postln;+ "import Sound.SC3.UGen.Rate".postln;+ "data I = I { input_name :: String, input_default :: Double } deriving (Eq, Show)".postln;+ "data U = U { ugen_name :: String, ugen_operating_rates :: [Rate], ugen_default_rate :: Rate, ugen_inputs :: [I], ugen_outputs :: Integer } deriving (Eq, Show)".postln;+ "inf :: Double".postln;+ "inf = 10 ** 8".postln;+ "rcomplex :: Double".postln;+ "rcomplex = 3".postln;+ "ugenDB :: [U]".postln;+ "ugenDB = [ ".post;+ uu[0].ugenDBHaskell.postln;+ uu.drop(1).collect({|e| + /*e.name.asSymbol.postln;*/+ " , ".post;+ e.ugenDBHaskell.postln;+ });+ " ]".postln;+ "-- Local Variables:".postln;+ "-- truncate-lines:t".postln;+ "-- End:".postln;+ }+}
+ sclang/Utilities.sc view
@@ -0,0 +1,78 @@++ String {+ toUpper {+ ^this.collect({|c| c.toUpper});+ }+}+++ Symbol {+ toUpper {+ ^this.asString.toUpper.asSymbol;+ }+}+++ Object {+ findMethodR { |n|+ /* ^this.class.findMethod(n); */+ var m = this.findMethod(n);+ if (m.notNil, {+ ^m;+ }, {+ var p = this.superclass;+ if (p.notNil, {+ ^p.findMethodR(n);+ }, {+ ^nil+ });+ });+ }+ supportsRate { |r|+ ^(this.class.findMethodR(r) != nil);+ }+ supportedRates {+ ^['ar', 'kr', 'dr', 'ir', 'new'].select({|r| this.supportsRate(r)});+ }+ inputNames { |r|+ var n = this.class.findMethodR(r).argNames;+ ^n.reject({|e| ['this','mul','add'].includes(e)});+ }+ inputDefault { |r, nm|+ var m = this.class.findMethodR(r);+ var n = m.argNames;+ var i = n.detectIndex({|e| e == nm});+ ^m.prototypeFrame[i];+ }+ inputDefaults { |r|+ var n = this.inputNames(r);+ ^n.collect({|e| e.inputDefault});+ }+ numberOfOutputs { |r|+ var n = this.new.init.size;+ if(n==0) {^1} {^n};+ }+ ugenDB {+ var nm = this.name.asString;+ var rr = this.supportedRates;+ var dr = (audio: 'AR', control: 'KR', scalar: 'IR', demand: 'DR').at(this.new.rate);+ var r = rr[0];+ var n = this.inputNames(r);+ var o = this.numberOfOutputs;+ ^[nm, rr, dr, n.collect({|e| [e.asString, this.inputDefault(r,e)]}), o]+ }+ ugenDBHaskell {+ var db = this.ugenDB;+ var rr = db[1].reject({|e| e == 'new'}).collect({|e| e.toUpper});+ var ii = db[3].collect({|e| + var nm = e[0];+ var df = if (e[1] == nil) {0.0} {e[1]};+ "I " ++ nm.asCompileString ++ " (" ++ df ++ ")";+ });+ ^"U " ++ db[0].asCompileString ++ " " ++ rr.asString ++ " " ++ db[2].asString ++ " " ++ ii.asString ++ " " ++ db[4].asString;+ }+}+++ Object {+ allSubClassesOf {+ var u = this.subclasses;+ if(u.size == 0) {^[]} {^u ++ u.collect({|e| e.allSubClassesOf}).flatten}+ }+}