packages feed

hsc3 0.15.1 → 0.21

raw patch · 1431 files changed

This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.

Files

+ Help/Graph/adc-bit-reduction.hs view
@@ -0,0 +1,21 @@+-- bit reduction (adc)+let downSample =+      let f = lfNoise2 kr 8+          nh = lfNoise2 kr 3+          src = blip ar (f * 200 + 300) (nh * 10 + 20)+          sr = mouseX kr 1000 (sampleRate * 0.1) Exponential 0.2+      in latch src (impulse ar sr 0) * 0.1+    bitSz = mouseY kr 1 24 Exponential 0.2+    bitRedux = roundTo downSample (0.5 ** bitSz)+in mce2 downSample bitRedux++-- bit reduction (adc) ; id+let downSample =+      let f = lfNoise2Id 'α' kr 8+          nh = lfNoise2Id 'β' kr 3+          src = blip ar (f * 200 + 300) (nh * 10 + 20)+          sr = mouseX kr 1000 (sampleRate * 0.1) Exponential 0.2+      in latch src (impulse ar sr 0) * 0.1+    bitSz = mouseY kr 1 24 Exponential 0.2+    bitRedux = roundTo downSample (0.5 ** bitSz)+in mce2 downSample bitRedux
+ Help/Graph/adc-down-sample.hs view
@@ -0,0 +1,13 @@+-- down sample (adc)+let f = lfNoise2 kr 8+    nh = lfNoise2 kr 3+    src = blip ar (f * 200 + 300) (nh * 10 + 20)+    sr = mouseX kr 1000 (sampleRate * 0.1) Exponential 0.2+in latch src (impulse ar sr 0) * 0.1++-- down sample (adc) ; id+let f = lfNoise2Id 'α' kr 8+    nh = lfNoise2Id 'β' kr 3+    src = blip ar (f * 200 + 300) (nh * 10 + 20)+    sr = mouseX kr 1000 (sampleRate * 0.1) Exponential 0.2+in latch src (impulse ar sr 0) * 0.1
+ Help/Graph/adc-kabelscahden.hs view
@@ -0,0 +1,25 @@+-- https://swiki.hfbk-hamburg.de/MusicTechnology/851 march 2003 (adc) / (jrhb)+let freq = 50+    sustain = 1+    amp = 0.5+    hum = let t = dust kr (7 ** lfNoise1 kr 0.3)+              h = toggleFF (coinGate 0.4 t) * rlpf (lfPulse ar freq 0 0.5 + (lfNoise1 kr 2 * 0.5 - 0.5)) 6000 0.15+              n = trig t (tRand 0 0.01 (coinGate 0.4 t)) * whiteNoise ar+              m = trig t (tRand 0 0.01 (coinGate 0.4 t)) * brownNoise ar+              k = trig t (lfNoise1 kr (mce2 4 4.2) * 0.1 + 0.11) * lfClipNoise ar (lfNoise0 kr 7 * 30 + 40)+          in distort (leakDC ((h + n + m + k) * 10) 0.995)+    e = envGen kr 1 1 0 1 RemoveSynth (Envelope [amp,amp,0] [sustain,0] [] Nothing Nothing 0)+in clip2 hum 1 * e * 0.25++-- https://swiki.hfbk-hamburg.de/MusicTechnology/851 march 2003 (adc) / (jrhb) ; id+let freq = 50+    sustain = 1+    amp = 0.5+    hum = let t = dustId 'α' kr (7 ** lfNoise1Id 'β' kr 0.3)+              h = toggleFF (coinGateId 'γ' 0.4 t) * rlpf (lfPulse ar freq 0 0.5 + (lfNoise1Id 'δ' kr 2 * 0.5 - 0.5)) 6000 0.15+              n = trig t (tRandId 'ε' 0 0.01 (coinGateId 'ζ' 0.4 t)) * whiteNoiseId 'η' ar+              m = trig t (tRandId 'θ' 0 0.01 (coinGateId 'ι' 0.4 t)) * brownNoiseId 'κ' ar+              k = trig t (lfNoise1Id 'λ' kr (mce2 4 4.2) * 0.1 + 0.11) * lfClipNoiseId 'μ' ar (lfNoise0Id 'ν' kr 7 * 30 + 40)+          in distort (leakDC ((h + n + m + k) * 10) 0.995)+    e = envGen kr 1 1 0 1 RemoveSynth (Envelope [amp,amp,0] [sustain,0] [] Nothing Nothing 0)+in clip2 hum 1 * e * 0.25
+ Help/Graph/adc-shepard-tones.hs view
@@ -0,0 +1,37 @@+-- shepard tones, alberto de campo (adc)+let interp n l r = let i = (r - l) / n in [l,l + i .. r - i]+    hanning_window n =+      let lp = pi * (-0.5)+          rp = lp + 2 * pi+          hf i = sin i * 0.5 + 0.5+      in map hf (interp n lp rp)+    freq_tbl = let amp_f i = (0.5 ** i) * 20000 in map amp_f (interp 1024 0 10)+    amp_tbl = let square x = x * x in map square (hanning_window 1024)+    b0 = asLocalBuf freq_tbl+    b1 = asLocalBuf amp_tbl+    rate = 0.1+    ratescale = 1024 / 48000 / 10 -- sample-rate+    ph = phasor ar 0 (rate * ratescale) 0 1024 0+    phases = mce (map (\n -> n * 0.1 * 1024 + ph) [0..9])+    freqs = bufRdC 1 ar b0 phases Loop+    amps = bufRdC 1 ar b1 phases Loop+in mix (sinOsc ar freqs 0 * amps) * 0.05++-- shepard tones, alberto de campo (adc) ; id+let interp n l r = let i = (r - l) / n in [l,l + i .. r - i]+    hanning_window n =+      let lp = pi * (-0.5)+          rp = lp + 2 * pi+          hf i = sin i * 0.5 + 0.5+      in map hf (interp n lp rp)+    freq_tbl = let amp_f i = (0.5 ** i) * 20000 in map amp_f (interp 1024 0 10)+    amp_tbl = let square x = x * x in map square (hanning_window 1024)+    b0 = asLocalBufId 'α' freq_tbl+    b1 = asLocalBufId 'β' amp_tbl+    rate = 0.1+    ratescale = 1024 / 48000 / 10 -- sample-rate+    ph = phasor ar 0 (rate * ratescale) 0 1024 0+    phases = mce (map (\n -> n * 0.1 * 1024 + ph) [0..9])+    freqs = bufRdC 1 ar b0 phases Loop+    amps = bufRdC 1 ar b1 phases Loop+in mix (sinOsc ar freqs 0 * amps) * 0.05
+ Help/Graph/bb-microhelix.hs view
@@ -0,0 +1,71 @@+-- batuhan bozkurt 2009 http://www.earslap.com (bb) - mce...........................+let rp = replicate+    ctrigs_ () =+        let i = mce (rp 8 (1/8) +++                     rp 8 (1/4) +++                     [dseq (drand dinf (mce2 1 2)) (mce2 (1/16) (1/16))])+            d = dxrand dinf (mceMap (* 1.25) i)+        in tDuty ar d 0 DoNothing (dwhite dinf 0.5 1) 0+    ctrigs = mce2 (ctrigs_ ()) (ctrigs_ ())+    clicks =+        let n = pinkNoise ar * decay ctrigs (0.001 * abs (lfNoise1 ar 4))+        in fold (bpf n 15000 0.9 * (25 * range 0 1 (lfNoise1 ar 8))) (-1) 1+    snd1 =+        let o = sinOsc ar (midiCps 44) 0 * 0.5 + sinOsc ar (midiCps 90) 0 * 0.6+        in lpf o (midiCps 32) * 2 + hpf (lpf (whiteNoise ar * 0.008) 12000) 2400+    hiNoise =+        let n = whiteNoise ar+            e = decay2 (ctrigs * (lfNoise1 ar 8 * 0.5 + 0.5)) 0.02 0.1 * 0.05+        in bpf (n * e) (tRand 12000 15000 ctrigs) 0.9+    trigMod = roundTo (lfNoise0 ar 8) 1+    bass =+        let t = mceChannel 0 ctrigs * trigMod+            ph = sweep ar t (2 * pi * mce2 52.8 740) + (pi/3)+            ph' = wrap ph (-pi) pi+            mean u = sum (mceChannels u) / fromIntegral (mceDegree_err u)+            o = tanh (mean (sinOsc ar 0 ph' * mce2 2 0.05))+            d = Envelope [0, 0.5, 0.4, 0] [0, 0.2, 0.01] [EnvNum (-5)] Nothing Nothing 0+            e = envGen ar (abs t) 1 0 1 DoNothing d+        in o * e * 0.25+    snd1' =+        let t = mceChannel 0 ctrigs+            d = Envelope [0, 1, 0.6, 0] [0.0001, 0.4, 0.01] [EnvNum (-4)] Nothing Nothing 0+            e = envGen ar (t * lfNoise0 ar 8) 1 0 1 DoNothing d+        in pan2 (snd1 * e) (tRand (-1) 1 t) 1+in limiter (midEQ (clicks + snd1' + hiNoise + bass) 14000 0.7 8) 1 0.01++-- batuhan bozkurt 2009 http://www.earslap.com (bb) - mce...........................+let rp = replicate+    ctrigs_ z =+        let i = mce (rp 8 (1/8) +++                     rp 8 (1/4) +++                     [dseqId (z,'α') (drandId (z,'β') dinf (mce2 1 2)) (mce2 (1/16) (1/16))])+            d = dxrandId (z,'γ') dinf (mceMap (* 1.25) i)+        in tDuty ar d 0 DoNothing (dwhiteId (z,'δ') dinf 0.5 1) 0+    ctrigs = mce2 (ctrigs_ 'a') (ctrigs_ 'a')+    clicks =+        let n = pinkNoiseId 'ε' ar * decay ctrigs (0.001 * abs (lfNoise1Id 'ζ' ar 4))+        in fold (bpf n 15000 0.9 * (25 * range 0 1 (lfNoise1Id 'η' ar 8))) (-1) 1+    snd1 =+        let o = sinOsc ar (midiCps 44) 0 * 0.5 + sinOsc ar (midiCps 90) 0 * 0.6+        in lpf o (midiCps 32) * 2 + hpf (lpf (whiteNoiseId 'θ' ar * 0.008) 12000) 2400+    hiNoise =+        let n = whiteNoiseId 'ι' ar+            e = decay2 (ctrigs * (lfNoise1Id 'κ' ar 8 * 0.5 + 0.5)) 0.02 0.1 * 0.05+        in bpf (n * e) (tRandId 'λ' 12000 15000 ctrigs) 0.9+    trigMod = roundTo (lfNoise0Id 'μ' ar 8) 1+    bass =+        let t = mceChannel 0 ctrigs * trigMod+            ph = sweep ar t (2 * pi * mce2 52.8 740) + (pi/3)+            ph' = wrap ph (-pi) pi+            mean u = sum (mceChannels u) / fromIntegral (mceDegree_err u)+            o = tanh (mean (sinOsc ar 0 ph' * mce2 2 0.05))+            d = Envelope [0, 0.5, 0.4, 0] [0, 0.2, 0.01] [EnvNum (-5)] Nothing Nothing 0+            e = envGen ar (abs t) 1 0 1 DoNothing d+        in o * e * 0.25+    snd1' =+        let t = mceChannel 0 ctrigs+            d = Envelope [0, 1, 0.6, 0] [0.0001, 0.4, 0.01] [EnvNum (-4)] Nothing Nothing 0+            e = envGen ar (t * lfNoise0Id 'ν' ar 8) 1 0 1 DoNothing d+        in pan2 (snd1 * e) (tRandId 'ξ' (-1) 1 t) 1+in limiter (midEQ (clicks + snd1' + hiNoise + bass) 14000 0.7 8) 1 0.01
+ Help/Graph/cr-lucier.hs view
@@ -0,0 +1,78 @@+-- Alvin Lucier, "Music on a Long Thin Wire, Simulated" (Chandrasekhar Ramakrishnan)+let freq = control kr "freq" 60+    blocksize = recip controlRate+    mk_dt f = recip f - blocksize+    string_delay = mk_dt freq+    pk1_pos = 0.1 -- pickup one position+    src_pos = 0.3 -- source position+    pk2_pos = 0.9 -- pickup two postion+    max_delay = 1.0 -- maximum delay time (corresponds to a length = c * s)+    mk_delay i r = lpz1 (delayC i max_delay (r * string_delay))+    mk_allpass i r dt = lpz1 (allpassC i max_delay (r * string_delay) dt)+    drv = localIn 1 ar 0 -- driver (source + data stored in the string)+    pk1_R = mk_delay drv (src_pos - pk1_pos)+    pk1_L = mk_allpass (pk1_R * negate 1) (pk1_pos * 2) (rand 0.001 0.11)+    pk2_L = mk_delay pk1_L (pk2_pos - pk1_pos) * 0.99+    stringL = mk_delay pk2_L (1.0 - pk2_pos)+    pk2_R = mk_allpass (stringL * negate 1) (1.0 - pk2_pos) (2 + rand 0.001 0.11) * 0.99+    stringR = mk_delay pk2_R (pk2_pos - src_pos)+    source =+        let s = sinOsc ar 220 0 * 0.01+            a = amplitude kr drv 0.01 0.01 * 11+            p = pulse ar (60 + a) 0.5 * 0.1+            f = rlpf (s + p) 320 0.05+            e = 1.0 - min (amplitude kr drv 0.01 0.01) 1.0+        in normalizer f 0.7 0.01 * e+    l_out = localOut (source * 0.2 + stringR)+    outL = pk1_L + pk1_R+    outR = pk2_L + pk2_R+in mrg [mce2 outL outR, drv, source, l_out]++-- Alvin Lucier, "Music on a Long Thin Wire, Simulated" (Chandrasekhar Ramakrishnan) ; id+let freq = control kr "freq" 60+    blocksize = recip controlRate+    mk_dt f = recip f - blocksize+    string_delay = mk_dt freq+    pk1_pos = 0.1 -- pickup one position+    src_pos = 0.3 -- source position+    pk2_pos = 0.9 -- pickup two postion+    max_delay = 1.0 -- maximum delay time (corresponds to a length = c * s)+    mk_delay i r = lpz1 (delayC i max_delay (r * string_delay))+    mk_allpass i r dt = lpz1 (allpassC i max_delay (r * string_delay) dt)+    drv = localIn 1 ar 0 -- driver (source + data stored in the string)+    pk1_R =+        let i = drv+            r = src_pos - pk1_pos+        in mk_delay i r+    pk1_L =+        let i = pk1_R * negate 1+            r = pk1_pos * 2+            dt = randId 'α' 0.001 0.11+        in mk_allpass i r dt+    pk2_L =+        let i = pk1_L+            r = pk2_pos - pk1_pos+        in mk_delay i r * 0.99+    stringL =+        let i = pk2_L+            r = 1.0 - pk2_pos+        in mk_delay i r+    pk2_R =+        let i = stringL * negate 1+            r = 1.0 - pk2_pos+            dt = 2 + randId 'β' 0.001 0.11+        in mk_allpass i r dt * 0.99+    stringR =+        let i = pk2_R+            r = pk2_pos - src_pos+        in mk_delay i r+    source =+        let s = sinOsc ar 220 0 * 0.01+            p = pulse ar (60 + amplitude kr drv 0.01 0.01 * 11) 0.5 * 0.1+            f = rlpf (s + p) 320 0.05+            e = 1.0 - min (amplitude kr drv 0.01 0.01) 1.0+        in normalizer f 0.7 0.01 * e+    l_out = localOut (source * 0.2 + stringR)+    outL = pk1_L + pk1_R+    outR = pk2_L + pk2_R+in mrg [mce2 outL outR, drv, source, l_out]
+ Help/Graph/dm-shift-register.hs view
@@ -0,0 +1,55 @@+-- https://sccode.org/1-590 (dm)+let shift_register_f n tr x =+      let buf = localBuf 1 n+          count = pulseCount tr 0+      in mrg2+         (demand tr 0 (mceReverse (dbufrd buf (mceMap (+ count) (mce [1 .. n])) Loop)))+         (demand tr 0 (dbufwr buf count x Loop))+    amp = 0.1+    ip = impulse kr (1/16) 0+    rt = tChoose ip (mce [3,5,10])+    trs = tChoose ip (mce [0,2,-2,7,-5])+    tr1 = trig1 (cuspL ar (rt * 3) 1 1.9 0.0) 0.001+    tr4 = pulseDivider tr1 4 0+    oct = demand tr4 0 (drand dinf (mce [12,-12]))+    note = demand tr1 0 (dseq dinf (mce [42,46,51,54,59,63,66] + oct + trs)) -- scramble+    chord = shift_register_f 5 tr1 (midiCps note)+    sig = pmOsc ar+          (vibrato ar chord 6 0.02 0 0 0.04 0.1 0.0 0.0)+          (urange 1.01 2.01 (lfPulse kr (1/8) 0 0.5) * chord)+          (envGen kr tr1 1 0 1 DoNothing (envelope [3,3,0] [0, 0.2] [EnvNum (-4)]))+          0+    cmp = mix (sig * ampCompA kr chord 0 0.32 1 * amp)+in xFade2+   (mce2 cmp cmp)+   (gVerb (bpf cmp (midiCps 90) 1) 50 8 0.5 0.5 15 0 0.7 0.5 300)+   0.2+   1++-- https://sccode.org/1-590 (dm) ; id+let shift_register_f n tr x =+      let buf = localBufId 'α' 1 n+          count = pulseCount tr 0+      in mrg2+         (demand tr 0 (mceReverse (dbufrdId 'γ' buf (mceMap (+ count) (mce [1 .. n])) Loop)))+         (demand tr 0 (dbufwrId 'β' buf count x Loop))+    amp = 0.1+    ip = impulse kr (1/16) 0+    rt = tChooseId 'δ' ip (mce [3,5,10])+    trs = tChooseId 'ε' ip (mce [0,2,-2,7,-5])+    tr1 = trig1 (cuspL ar (rt * 3) 1 1.9 0.0) 0.001+    tr4 = pulseDivider tr1 4 0+    oct = demand tr4 0 (drandId 'ζ' dinf (mce [12,-12]))+    note = demand tr1 0 (dseqId 'η' dinf (mceMap (+ trs) (mce [42,46,51,54,59,63,66])) + oct) -- scramble+    chord = shift_register_f 5 tr1 (midiCps note)+    sig = pmOsc ar+          (vibratoId 'θ' ar chord 6 0.02 0 0 0.04 0.1 0.0 0.0)+          (urange 1.01 2.01 (lfPulse kr (1/8) 0 0.5) * chord)+          (envGen kr tr1 1 0 1 DoNothing (envelope [3,3,0] [0, 0.2] [EnvNum (-4)]))+          0+    cmp = mix (sig * ampCompA kr chord 0 0.32 1 * amp)+in xFade2+   (mce2 cmp cmp)+   (gVerb (bpf cmp (midiCps 90) 1) 50 8 0.5 0.5 15 0 0.7 0.5 300)+   0.2+   1
+ Help/Graph/ds-sos-bell.hs view
@@ -0,0 +1,45 @@+-- https://github.com/supercollider-quarks/SynthDefPool/blob/master/pool/sos_bell.scd (ds)+let f (_,g,_,_,z,o,_,_,p,_,_) =+      let mce_mean x = sum (mceChannels x) / fromIntegral (mceDegree_err x)+          freq = unitCps p / 2+          amp = z * g * 16+          pan = o * 2 - 1+          -- Stretched harmonic series+          s1 = sinOsc ar (mce [2,3,4.1,5.43,6.8,8.21] * freq) 0 * mce [1,0.9,0.8,0.7,0.6,0.5] * 0.1+          s2 = let e_dat = Envelope [0,1,0.3,0.2,0] [0,0.3,0.3,0.3] [] Nothing Nothing 0+               in s1 * envGen ar g 1 0 1 DoNothing e_dat+          -- A bit of FM adds warble+          s3 = s2 * (lfTri ar (X.randN 6 1.0 1.8) 1 * 0.3 + 0.7)+          -- Mix down the partials in the main sound+          s4 = mce_mean s3+          strike = let e_dat = Envelope [0,1,0.2,0.1,0] [0,0.01,0,0.04] [] Nothing Nothing 0+                       e =  envGen ar g 1 0 1 DoNothing e_dat+                   in sinOsc ar (lfNoise1 ar (freq * 36) * 100 + (freq * 8 )) 1 * 0.1 * e+          hum = let e_dat = Envelope [0,0.05,0.05,0] [0.5,0.5,1] [] Nothing Nothing 0+                    e = envGen ar g 1 0 1 DoNothing e_dat+                in mce_mean (sinOsc ar (mce2 (freq * 1.01) (freq * 0.47)) 0 * e)+      in pan2 (s4 + strike + hum) pan amp+in mix (voicer 16 f) * control kr "gain" 1++-- https://github.com/supercollider-quarks/SynthDefPool/blob/master/pool/sos_bell.scd (ds) ; id+let f (c,g,_,_,z,o,_,_,p,_,_) =+      let mce_mean x = sum (mceChannels x) / fromIntegral (mceDegree_err x)+          freq = unitCps p / 2+          amp = z * g * 16+          pan = o * 2 - 1+          -- Stretched harmonic series+          s1 = sinOsc ar (mce [2,3,4.1,5.43,6.8,8.21] * freq) 0 * mce [1,0.9,0.8,0.7,0.6,0.5] * 0.1+          s2 = let e_dat = Envelope [0,1,0.3,0.2,0] [0,0.3,0.3,0.3] [] Nothing Nothing 0+               in s1 * envGen ar g 1 0 1 DoNothing e_dat+          -- A bit of FM adds warble+          s3 = s2 * (lfTri ar (X.randNId 6 (c,'α') 1.0 1.8) 1 * 0.3 + 0.7)+          -- Mix down the partials in the main sound+          s4 = mce_mean s3+          strike = let e_dat = Envelope [0,1,0.2,0.1,0] [0,0.01,0,0.04] [] Nothing Nothing 0+                       e =  envGen ar g 1 0 1 DoNothing e_dat+                   in sinOsc ar (lfNoise1Id (c,'β') ar (freq * 36) * 100 + (freq * 8 )) 1 * 0.1 * e+          hum = let e_dat = Envelope [0,0.05,0.05,0] [0.5,0.5,1] [] Nothing Nothing 0+                    e = envGen ar g 1 0 1 DoNothing e_dat+                in mce_mean (sinOsc ar (mce2 (freq * 1.01) (freq * 0.47)) 0 * e)+      in pan2 (s4 + strike + hum) pan amp+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/es-tw-570012853274615808.hs view
@@ -0,0 +1,19 @@+-- https://twitter.com/sluyterrific_sc/status/570012853274615808 (es) ; edit=rd+let dup f = mce2 (f ()) (f ())+    -- this is not (of course) as written but sounds nicely....+    greyhole_no_reorder i = let (p,q) = unmce2 i in X.greyholeRaw p q+    t = dup (\_ -> dust2 ar 9)+    o = 0.1+    a = lfNoise2 ar o * 9 + 9+    s = varSaw ar (tExpRand 9 5000 t) 0 0.5 * decay t 1+in greyhole_no_reorder s a 0 o (lfNoise2 ar 1) (lfNoise2 ar 1 + 1) 2 a++-- https://twitter.com/sluyterrific_sc/status/570012853274615808 (es) ; edit=rd ; id+let dup (z1,z2) f = mce2 (f z1) (f z2)+    -- this is not (of course) as written but sounds nicely....+    greyhole_no_reorder i = let (p,q) = unmce2 i in X.greyholeRaw p q+    t = dup ('α','β') (\z -> dust2Id z ar 9)+    o = 0.1+    a = lfNoise2Id 'γ' ar o * 9 + 9+    s = varSaw ar (tExpRandId 'δ' 9 5000 t) 0 0.5 * decay t 1+in greyhole_no_reorder s a 0 o (lfNoise2Id 'ε' ar 1) (lfNoise2Id 'ζ' ar 1 + 1) 2 a
+ Help/Graph/f0-1-4Q6-p.hs view
@@ -0,0 +1,14 @@+-- http://sccode.org/1-4Q6 (f0)+let f (_,g,_,y,z,o,_,_,p,px,_) =+      let normalise x = map (/ (maximum x)) x+          amps = normalise [1,0.67,1,1.8,2.67,1.67,1.46,1.33,1.33,1,1.33]+          durs = [1,0.9,0.65,0.55,0.325,0.35,0.25,0.2,0.15,0.1,0.075]+          frqs = [0.56,0.56,0.92,0.92,1.19,1.7,2,2.74,3,3.76,4.07]+          dets = [0,1,0,1.7,0,0,0,0,0,0,0]+          fn i =+            let shp = let cv = EnvNum (-4.5)+                      in envPerc_c 0.005 ((y + 1) * 6 * durs!!i) (amps!!i) (cv,cv)+                env = envGen ar g (latch z g) 0 1 DoNothing shp+            in sinOsc ar (midiCps (p * 127 + px) * frqs!!i + dets!!i) 0 * env * g+      in pan2 (mixFill 11 fn) (o * 2 - 1) 1+in mix (voicer 16 f) * control kr "gain" 0.75
+ Help/Graph/f0-2012-04-19.hs view
@@ -0,0 +1,7 @@+-- https://www.listarc.bham.ac.uk/lists/sc-users/msg17536.html (f0)+let s0 = lfSaw ar 10 0 * 0.01+    t0 = lfTri ar (mce2 5 6 * 0.1) 0+    t1 = lfTri kr 0.1 0 * 0.05 + 0.05+    s1 = limiter (brf s0 t0 1) 1 0.01+    o = combN s1 0.1 (roundTo t1 0.01) 1+in o * 0.1
+ Help/Graph/f0-pkt-00.hs view
@@ -0,0 +1,9 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/490 (f0)+let sosc fr = sinOsc ar fr 0+    f0 = mce3 100 200 300 + sosc (mce3 0.11 0.22 0.33)+    ph0 = sosc (mce3 0.1 0.2 0.3) * 2 * pi+    a0 = 0.1 + sosc (mce3 0.01 0.02 0.03) * 0.05+    i = sinOsc ar f0 ph0 * a0+    w = sosc (sosc (sosc 0.13 * 5 + 6) * 8 + 50)+    s = splay i w 0.7 (sosc 1.2 * 0.6) True+in mix (mceTranspose (gVerb s 20 5 1 0.5 25 0 1 1 30))
+ Help/Graph/f0-pkt-07.hs view
@@ -0,0 +1,10 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/490 (f0)+let param n =+      let f g z = take n (iterate g z)+      in zip4 (f (* 4) 2) (f (/ 2) (1/2)) (f (* 4) 1) (f (* 4) 2)+    gen f0 (m,f1,l,r) = sinOsc ar f0 0 * m + linExp (sinOsc ar f1 0) (-1) 1 l r+    pkt n =+      let c = foldl gen 1 (param n)+          o = sinOsc ar c 0 * 0.1+      in gVerb (leakDC o 0.995) 16 8 0.75 0.5 15 1 0.7 0.5 16 * 0.1+in pkt 12
+ Help/Graph/f0-pkt-26.hs view
@@ -0,0 +1,16 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/490 (f0)+let n = 8+    pkt i =+      let t = i / constant n+          a = abs (varSaw ar 0.02 t 0.5 * 7.5)+          b = varSaw ar 0.16 t (2/3) * a + 300+          c = varSaw ar 0.064 t 0.5 * 25 + 50+          d = varSaw ar 0.012 t 0.75 * c + 200+          e = varSaw ar 0.024 t 0.25 * 0.475 + 0.5+          f = varSaw ar (100 + i) t e+          g = varSaw ar 0.048 0 0.5 * 25 + 150+          h = varSaw ar ((i + 1) * g) t (1/3) * 150+          o = sinOsc ar h (f * pi) * d + b+          z = leakDC (varSaw ar o t 0.5) 0.995+      in pan2 z (varSaw ar 0.02 t 0.5) 1+in mixFill n pkt * (0.25 / constant n)
+ Help/Graph/f0-pkt-28.hs view
@@ -0,0 +1,18 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/490 (f0)+let n = 28+    pkt i =+      let a = lfSaw ar ((i + 1) * 5) 0 * 0.5 * pi+          b = sinOsc ar ((i + 1) * 0.001) 0 * 0.5+          c = max (lfSaw ar (0.2 + b) (i / constant n) * 0.4) 0+          d = sinOsc ar 0.03 (i + 1) * 0.5 + 1+          e = sinOsc ar (200 + i) 0 * d+          f = sinOsc ar 0.04 (i + 2) * 0.5 + 1+          g = sinOsc ar (400 + i) 0 * f+          h = sinOsc ar 0.05 (i + 3) * 0.5 + 1+          j = sinOsc ar (800 + i) 0 * h+          k = linExp i 0 (constant n - 1) 70 1500+          z = sinOsc ar k a * c * e * g * j+          l = linLin i 0 (constant n - 1) (-0.925) 0.925+      in pan2 z l (1 / constant n)+    y = limiter (leakDC (mixFill n pkt) 0.995) 1 0.01+in gVerb y 3 5 0.2 0.8 20 0.1 0.7 0.5 300 * 0.2
+ Help/Graph/f0-red-frik.hs view
@@ -0,0 +1,25 @@+-- red_frik (f0)+let red tr n =+      let o1 = fSinOsc kr (tRand 0.3 5 tr) 0 * tRand 0 0.5 tr + tRand 0.49 0.56 tr+          o2 = fSinOsc kr o1 0 * tRand 0.3 0.6 tr + tRand 0.3 0.5 tr+      in rhpf n (tRand 0.3 3 tr) o2 * 0.1+    n = mceFill 2 (\_ -> brownNoise ar)+    tr = impulse kr 0.1 0+in red tr n * 0.1++-- red_frik (f0) ; monad+let red tr n = do+      r1 <- tRandM 0.3 3 tr+      r2 <- tRandM 0.3 5 tr+      r3 <- tRandM 0 0.5 tr+      r4 <- tRandM 0.49 0.56 tr+      r5 <- tRandM 0.3 0.6 tr+      r6 <- tRandM 0.3 0.5 tr+      let o1 = fSinOsc kr r2 0 * r3 + r4+          o2 = fSinOsc kr o1 0 * r5 + r6+      return (rhpf n r1 o2 * 0.1)+    red_frik_m = do+      n <- replicateM 2 (brownNoiseM ar)+      let tr = impulse kr 0.1 0+      red tr (mce n)+in uid_st_eval red_frik_m * 0.1
+ Help/Graph/f0-tw-0454598285861617665.hs view
@@ -0,0 +1,7 @@+-- https://twitter.com/redFrik/status/454598285861617665 (f0)+let b = mce [9,8 .. 1]+    c = lfTri ar (3 ** lfTri ar (1 / b) (b / 9)) 0+    d = lfTri ar (1 / b) 0 `modE` 1 / 9 + 0.01+    f = 2 ** roundE (lfTri ar (b / 99) 0) * 99 * b+    o = grainSin 2 c d f 0 (-1) 512+in splay (tanh o) 1 1 0 True / 2
+ Help/Graph/f0-tw-0456384156159574016.hs view
@@ -0,0 +1,5 @@+-- https://twitter.com/redFrik/status/456384156159574016 (f0)+let a = 1 / mce [3,12,4,1,6,2]+    s = lag3 (sinOsc ar a 0) (abs (sinOsc ar (2.67 ** a) 0)) * 99+    f = ((sinOsc ar ((1 / a) / 9) a `greater_than` 0) * 20 + 99) / a+in splay (sinOsc ar (hpf (ringz s f 1) 440) 0) 1 1 0 True * 0.25
+ Help/Graph/f0-tw-0839296011982024704.hs view
@@ -0,0 +1,7 @@+-- https://twitter.com/redFrik/status/839296011982024704+let a x = lfSaw ar x 0+    t = a (mce [0.5,0.6])+    f = (a 5 * a 0.015 + 1) * 98+    m = (2 ** a 4 `roundTo` 0.5) * 99+    g = grainFM 1 t 16 f m (2 ** a (1 / mce [8,9]) * 8) 0 (-1) 512+in tanh (g / 2) * 0.25
+ Help/Graph/f0-tw-1105496695637454848.hs view
@@ -0,0 +1,12 @@+-- f0 ; https://twitter.com/redFrik/status/1105496695637454848+let b = mce [1 .. 15] / 151+    w = ceil (varSaw kr b b (1 / 5.15) + 1.5)+    s = select ((ceil (varSaw kr (1 / 15) (1 / 5) b * 5) + 5) / 5) (mce [51 * 1.5, 51, 151])+    x = lag s b+    y = varSaw kr (5 + b) 0 0.5+    z = varSaw kr b b b * (b / 5) + mce [1.5, 5, 1]+    m = varSaw kr (5 - b) b b * 5 + 5+    o = varSaw ar ((w * x + y) * z) b ((varSaw kr b 0 0.5 + 5) / 15) * (m `greater_than` 1.515)+    f = 1515 ** (varSaw kr ((1 - b) / 5) 0 0.5 / 15 + 1 + b)+    rq = 1.5 ** varSaw kr b 0 0.5 / 5+in splay (bLowPass o f rq) 1 1 0 True / 5
+ Help/Graph/f0-tw-1125557217086857216.hs view
@@ -0,0 +1,17 @@+-- https://twitter.com/redFrik/status/1125557217086857216 (f0) ; id+let scl = [0, 2.94, 4.98, 7.02, 9.96] -- pythagorean+    a = lfTri+    b = (mce [-7 .. 6] + 0.7) * 2/666+    m = degreeToKey (asLocalBuf scl) ((a kr b b * a kr b 0 * 9 + 9) `modE` 32) 12 + 24+    o = varSaw ar (midiCps m) 0 ((a kr b 0 + 1) / 2) * ampComp kr m 440 (1/3) * a kr b b * b * 9+    s = rlpf o (lag2 m ((1 / b) `modE` 1) * 3) 1+in tanh (splay (allpassN s 0.3 (0.2 - b) 3) 1 1 0 True)++-- https://twitter.com/redFrik/status/1125557217086857216 (f0) ; id+let scl = [0, 2.94, 4.98, 7.02, 9.96] -- pythagorean+    a = lfTri+    b = (mce [-7 .. 6] + 0.7) * 2/666+    m = degreeToKey (asLocalBufId 'α' scl) ((a kr b b * a kr b 0 * 9 + 9) `modE` 32) 12 + 24+    o = varSaw ar (midiCps m) 0 ((a kr b 0 + 1) / 2) * ampComp kr m 440 (1/3) * a kr b b * b * 9+    s = rlpf o (lag2 m ((1 / b) `modE` 1) * 3) 1+in tanh (splay (allpassN s 0.3 (0.2 - b) 3) 1 1 0 True)
+ Help/Graph/f0-tw-1136928201886904320.hs view
@@ -0,0 +1,11 @@+-- https://twitter.com/redFrik/status/1136928201886904320 (f0)+let gt = greater_than+    f a i =+      let b = mce [4,2,1,3,5]+          c = roundTo (a ar (1/b) 0 * b) (a ar (b/9) 0 `gt` 0)+          o = sinOscFB ar (c ** 2 * ((a ar 0.02 i `gt` 0) + 1 * 50)) (a ar (c/9) 0 `modE` 1)+          s = o * max (a ar (1/b * a ar (b/99) i) 0) 0 * a ar 0.01 i+          x = allpassC s 1 (wrap c 0.5 1) 2+          y = bpf x (i * 99 + 400) 0.001 * (a ar 0.04 i + 1 * 9)+      in splay (x + y) 1 1 0 True / 3+in sum (zipWith f [lfTri,lfSaw,lfPar] [0,1,2]) / 3
+ Help/Graph/f0-tw-1138498427241861122.hs view
@@ -0,0 +1,14 @@+-- https://twitter.com/redFrik/status/1138498427241861122 (f0)+let f = sqrt 9+    b = mce2 f 9.999+    e = pitchShift+    a = sinOscFB+    d = max (a ar (b/99) 0) 0+    t1 = ugen_if (a ar (a ar (9/999) 0) 0 `greater_than` a ar (9/99) 0) f (9/b)+    t2 = ugen_if (a ar (9/99) 0 `less_than` a ar (99/9999) 0) (b/9) f+    f1 = lag (9.9 * b * t1 * t2) 0.1+    s1 = a ar f1 d * a ar (b/9) 0 * d+    c = e s1 (9 / b) (9 / sqrt b) (b / 999) (b / 99)+    s2 = gVerb (c * d * d * d) 99 9 (9/999) 0.5 15 1 0.7 0.5 300+    s3 = s2 / 9 + e c (f/9) (f/9) 0 0+in mix (mceTranspose (hpf (splay s3 1 1 0 True) 9 / 9))
+ Help/Graph/f0-tw-1210118661022867458.hs view
@@ -0,0 +1,21 @@+-- f0 ; https://twitter.com/redFrik/status/1210118661022867458+let b = mce (map recip [2 .. 7])+    d = 1 / 48+    g = cos (cos 0)+    l = mce [0,-16,0,-16,0,0,-16,0,-16,0,-16,0,0,0,-16,-16,47,0,-16,0,-16,0,-16,0,0,-16,0,0,-16,0,0,0,0,0,-5,-16,-16,-15]+    f = duty ar b 0 DoNothing (dseq dinf (l + 48))+    o = sinOscFB ar f (max (sinOsc ar d 0) 0) * sin (cos 0)+    c = sinOsc ar 0 (pi ** o)+    p = pitchShift c g (recip b) d d * b+in leakDC (splay (c + p) 1 1 0 True) 0.995 * g++-- f0 ; https://twitter.com/redFrik/status/1210118661022867458 ; id+let b = mce (map recip [2 .. 7])+    d = 1 / 48+    g = cos (cos 0)+    l = mce [0,-16,0,-16,0,0,-16,0,-16,0,-16,0,0,0,-16,-16,47,0,-16,0,-16,0,-16,0,0,-16,0,0,-16,0,0,0,0,0,-5,-16,-16,-15]+    f = duty ar b 0 DoNothing (dseqId 'α' dinf (l + 48))+    o = sinOscFB ar f (max (sinOsc ar d 0) 0) * sin (cos 0)+    c = sinOsc ar 0 (pi ** o)+    p = pitchShift c g (recip b) d d * b+in leakDC (splay (c + p) 1 1 0 True) 0.995 * g
+ Help/Graph/f0-tw-1254441448327479299.hs view
@@ -0,0 +1,57 @@+-- f0 <https://twitter.com/redFrik/status/1254441448327479299>+let b = [1,3,5,8,10]+    e = [3,2/3,4,3/2,2]+    c = 0.021+    d = lfTri ar (mce b / 999) 0 `modE` 1+    m = lfTri ar (mce b * c) 0+    l = m * 7 + 20 + dseq dinf (mce b `modE` m * 5 + 6)+    j = duty ar (mce e / (12 ** m)) 0 DoNothing l+    f = midiCps (degreeToKey (asLocalBuf b) j 12)+    y = decay2 (impulse ar (mce [2/3,1.5,3,1.5,3]) 0) c d * d+    o = sinOscFB ar f ((lfTri ar (c / mce b) 0 + 1) / 3) * y+in freeVerb (splay o 1 1 0 True) 0.1 1 0.5 * 0.2++-- f0 <https://twitter.com/redFrik/status/1254441448327479299> ; id+let b = [1,3,5,8,10]+    e = [3,2/3,4,3/2,2]+    c = 0.021+    d = lfTri ar (mce b / 999) 0 `modE` 1+    m = lfTri ar (mce b * c) 0+    l = m * 7 + 20 + dseqId 'α' dinf (mce b `modE` m * 5 + 6)+    j = duty ar (mce e / (12 ** m)) 0 DoNothing l+    f = midiCps (degreeToKey (asLocalBufId 'β' b) j 12)+    y = decay2 (impulse ar (mce [2/3,1.5,3,1.5,3]) 0) c d * d+    o = sinOscFB ar f ((lfTri ar (c / mce b) 0 + 1) / 3) * y+in freeVerb (splay o 1 1 0 True) 0.1 1 0.5 * 0.2++-- rd (edit) ; f0 <https://twitter.com/redFrik/status/1254441448327479299>+let b = [1,3,5,8,10]+    e = [3,2/3,4,3/2,2]+    c = 0.021+    d = lfTri ar (mce b / 999) 0 `modE` 1+    m = lfTri ar (mce b * c) 0+    l = m * 7 + 20 + dseq dinf (mce b `modE` m * 5 + 6)+    j = duty ar (mce e / (12 ** m)) 0 DoNothing l+    k = degreeToKey (asLocalBuf b) j 12+    o = sinOscFB ar (midiCps k) (lfTri ar (((c / mce b) + 1) / 3) 1 * d)+    r = freeVerb (splay o 1 1 0 True) 0.1 1 0.5 * 0.2+    p = out 90 (a2k k)+in mrg2 r p++-- rd (edit) ; f0 <https://twitter.com/redFrik/status/1254441448327479299> ; id+let b = [1,3,5,8,10]+    e = [3,2/3,4,3/2,2]+    c = 0.021+    d = lfTri ar (mce b / 999) 0 `modE` 1+    m = lfTri ar (mce b * c) 0+    l = m * 7 + 20 + dseqId 'α' dinf (mce b `modE` m * 5 + 6)+    j = duty ar (mce e / (12 ** m)) 0 DoNothing l+    k = degreeToKey (asLocalBufId 'β' b) j 12+    o = sinOscFB ar (midiCps k) (lfTri ar (((c / mce b) + 1) / 3) 1 * d)+    r = freeVerb (splay o 1 1 0 True) 0.1 1 0.5 * 0.2+    p = out 90 (a2k k)+in mrg2 r p++---- ; drawings+UI.ui_sc3_scope 2 0 (2 ^ 14) 0 "audio" 0+UI.ui_sc3_ctl_plot 1200 5 90 1200 (1/25) 5
+ Help/Graph/f0-tw-1338987643057688579.hs view
@@ -0,0 +1,9 @@+-- f0 <https://twitter.com/redFrik/status/1338987643057688579>+let b = mce [8..18]+    x = varSaw ar (mce [18.1,81.8,1.81] + b) 1 (varSaw ar (b/81) 0 0.5)+    t = varSaw ar (8/1.818) (mce [1,8/18]) 0.5+    d = (varSaw ar (b/181.8) 0 0.5 `in_exprange` (1.81/818,1.8/181.8)) `roundTo` (1.81/818)+    c = varSaw ar (1/8) (1/b) 0.5 + 8.18 * 1.8+    z = varSaw ar (1/81.8) 0 0.5 `in_range` (1.8 ** (-1),8.1/8.18)+    p = (pluck x t (1.8/181.8) d c z * (varSaw ar (1.8/b) 0 0.5) / 1.8)+in hpf (splay p 1 1 0 True) (18/1.81)
+ Help/Graph/f0-tw-1343283697840226307.hs view
@@ -0,0 +1,20 @@+-- f0 <https://twitter.com/redFrik/status/1343283697840226307>+let b = mce [2..12] / 12+    f = mce [136.1, 163.3, 181.4, 204.1, 244.9, 272.1, 326.5, 362.8, 408.2, 489.8, 544.2]+    z = mceFill 11 (\_ -> whiteNoise ar) * ((lfTri ar b 0 + 1) / 2) + brownNoise ar+    t = lfTri ar (121 ** lfTri ar ((2 / 121) * b) 0) 0+    d = (lag2 ((1 / 212) `greater_than` lfTri ar (1/212.1) 0) (2 / b) / 12 * 1.2 + 1.2) / f+    p = pluck z t (2 / 121) d (1 / 2 * 12 / 1.2) ((lfTri ar (b/12) 0 + 1) / 2)+in splay (hpf p 12) 1 (1 / 2.1 / 2) 0 True++-- f0 <https://twitter.com/redFrik/status/1343283697840226307> ; id+let b = mce [2..12] / 12+    f = mce [136.1, 163.3, 181.4, 204.1, 244.9, 272.1, 326.5, 362.8, 408.2, 489.8, 544.2]+    z = mceFillInt 11 (\e -> whiteNoiseId ('α',e) ar) * ((lfTri ar b 0 + 1) / 2) + brownNoiseId 'β' ar+    t = lfTri ar (121 ** lfTri ar ((2 / 121) * b) 0) 0+    d = (lag2 ((1 / 212) `greater_than` lfTri ar (1/212.1) 0) (2 / b) / 12 * 1.2 + 1.2) / f+    p = pluck z t (2 / 121) d (1 / 2 * 12 / 1.2) ((lfTri ar (b/12) 0 + 1) / 2)+in splay (hpf p 12) 1 (1 / 2.1 / 2) 0 True++---- ; drawings+UI.ui_sc3_scope 2 0 (2 ^ 14) 0 "audio" 0
+ Help/Graph/f0-tw-1367808902457397250.hs view
@@ -0,0 +1,14 @@+-- f0 <https://twitter.com/redFrik/status/1367808902457397250>+-- there is a subtle error in this translation i cannot see+-- the only differences appears to be the shared (impulse ar 0 0) node and the ordering at sum3+let rat = [76.1, 76.1, 64, 57, 38.1, 85.4, 32, 114, 42.7, 47.9, 95.9]+    f i =+      let i_ = constant i+          f0 = (rat !! i) * (sinOsc ar (1 / 16) 0 `greater_than` 0 * 2 + 6 - (sinOsc ar (sinOsc ar (1 / 32) i_) 0 / 20))+          z = sinOsc ar f0 0 / 9+          x = varLag_env (floorE (sinOsc ar (1 / 64) 0 * 6 + 6)) 0.1 (EnvNum 0) Nothing+          y = varLag_env (sinOsc ar (sinOsc ar (1 / 4) (i_ / 11 * pi) `less_than` 0 * 2) 0 * 0.1) 0.01 (EnvNum (sinOsc ar 0.01 i_)) Nothing+          dly = (i_ + x) `modE` 11 / 33 + 0.1 + y+          dcy = sinOsc ar (1 / 9) 0 + 1+      in combC z 0.5 dly dcy+in tanh (splay (mce (map f [0 .. 10])) 1 1 0 True)
+ Help/Graph/f0-tw-15eN.hs view
@@ -0,0 +1,5 @@+-- f0 ; https://sccode.org/1-5eN+let s = gbmanN ar (mce2 2300 1150) 1.2 2.1+    f0 = pulse ar 4 (mce2 1 2 / 8) + (lfPulse ar (1/8) 0 0.5 / 5 + 1)+    f1 = lfSaw ar f0 0 + 2+in X.glitchRHPF s f1 1 * 0.05
+ Help/Graph/f0-tw0011.hs view
@@ -0,0 +1,6 @@+-- tw 0011 (f0) ; https://twitter.com/redFrik/status/23182604046+let s o i = sinOsc ar ((mce2 (constant i) (constant i + 0.0001)) ** 2 * f o (i - 1)) (f o (i - 1) * 0.0001) * f o (i - 1)+    f o i = if i > 0 then s o i else o+in f 60 6 / 60++---- note ; this graph has 48 UGens ; c.f. scd graph which has 1950
+ Help/Graph/f0-tw0014.hs view
@@ -0,0 +1,12 @@+-- http://fredrikolofsson.com/f0blog/?q=node/478 (f0)+let a = sinOscFB ar+    k = 1/9+    f i = let a0 = a (i+1) k * 999+              a1 = a k 1 * k+              a2 = a a0 k * a1+              a3 = a 0.1 3+              a4 = a a2 a3 * ((i+2) * 999)+              a5 = a k k+          in a a4 a5 * k+    s = sum (map f [0..9])+in mce2 s s * 0.1
+ Help/Graph/f0-tw0020.hs view
@@ -0,0 +1,12 @@+-- http://fredrikolofsson.com/f0blog/?q=node/478 (f0)+let a n = lfPulse ar n 0 0.5+    b = mce [1..4]+    a1 = (a (b/32) + 1) / 8+    a2 = (a a1 + 1) * b+    a3 = a (b/64)+    a4 = a (a (b/8)) * 2 + b+    a5 = a (4/b)+    a6 = a a2+    a7 = a ((a6 + ((mix a3 + a5) * a4)) * 100)+    s = mix a7 / 8+in mce2 s s * 0.1
+ Help/Graph/f0-tw0028.hs view
@@ -0,0 +1,22 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0) ; slow to start...+let fib = 0 : scanl (+) 1 fib+    sc3_fib k = take k (drop 1 fib)+    n = map ((* 99) . (`mod` 8)) (sc3_fib 16)+    p = dseq dinf (dshuf 8 (mce (map fromInteger n)))+    q = combN (duty ar (1/8) 0 DoNothing p) 4 4 16+    o = lfTri ar q 0 / 4+    f = lfTri kr (1/16) 0 * 2e3 + 3e3+in pan2 (moogFF o f 2 0) 0 0.5++-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0) ; slow to start... ; id+let fib = 0 : scanl (+) 1 fib+    sc3_fib k = take k (drop 1 fib)+    n = map ((* 99) . (`mod` 8)) (sc3_fib 16)+    p = dseqId 'α' dinf (dshufId 'β' 8 (mce (map fromInteger n)))+    q = combN (duty ar (1/8) 0 DoNothing p) 4 4 16+    o = lfTri ar q 0 / 4+    f = lfTri kr (1/16) 0 * 2e3 + 3e3+in pan2 (moogFF o f 2 0) 0 0.5++---- ;+sc3_fib 16 == [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987]
+ Help/Graph/f0-tw0030.hs view
@@ -0,0 +1,6 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0)+let a i j k l = lfPar ar i j * k + l+    f = a 1 0 5 (a (mce2 0.05 0.04) 0 50 160 `roundTo` 50)+    w = a 0.2 0 0.5 (a 3 0 0.2 0.5)+    o = varSaw ar f 0 w / 8+in gVerb o 80 3 0.5 0.5 15 1 0.7 0.5 300 * 0.1
+ Help/Graph/f0-tw0033.hs view
@@ -0,0 +1,17 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0)+let f = roundE (lfPar ar (1/14) 0) * 20 + 80+    a = pulse ar (mce [1..4]) 0.35+    n = mceFill 4 (\_ -> brownNoise ar) * a+    z i = mce2 ((i + 1) * f) ((i * f) + (i + 1 / 3))+    o = lfPar ar (mce (map z [0..3])) 0+    (s1,s2) = unmce2 (splay ((o `greater_than` n) / 3) 1 1 0 True)+in (s1 + s2) * 0.1++-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0) ; id+let f = roundE (lfPar ar (1/14) 0) * 20 + 80+    a = pulse ar (mce [1..4]) 0.35+    n = mce (map (flip brownNoiseId ar) ['α','β','γ','δ']) * a+    z i = mce2 ((i + 1) * f) ((i * f) + (i + 1 / 3))+    o = lfPar ar (mce (map z [0..3])) 0+    (s1,s2) = unmce2 (splay ((o `greater_than` n) / 3) 1 1 0 True)+in (s1 + s2) * 0.1
+ Help/Graph/f0-tw0041.hs view
@@ -0,0 +1,5 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0)+let s = sweep ar (localIn' 6 ar) 1+    i = impulse ar (mce [1,0.749,6,12,3,4]) 0+    o = sinOsc ar (1 / runningMax s i) 0+in mrg [tanh (splay o 1 1 0 True) * 0.05,localOut o]
+ Help/Graph/f0-tw0045.hs view
@@ -0,0 +1,6 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/537 (f0)+let a i j k l = sinOsc ar i j * k + l+    f = a (a 0.11 0 1 0) 0 1 0+    p_f = a (95 * a 0.01 0 1 1) 0 (a 0.005 0 50 0) 100+    p = a p_f (a (mce2 98 97) 0 1 0) (pi + a 0.0005 0 1 0) 0+in tanh (a f p 1 0) * 0.1
+ Help/Graph/f0-tw0049.hs view
@@ -0,0 +1,7 @@+-- https://www.listarc.bham.ac.uk/lists/sc-users/msg18379.html (f0)+let t = 0+    o0 = lfSaw ar 3 0 * 9 + 99+    s0 = sweep ar t (mce [3..9]) `modE` o0+    s1 = sweep ar t (mce [33,32..3]) `modE` 128 .&. s0+    o1 = sinOsc ar (midiCps (s1 + 33)) 0 * pi+in splay (sinOsc ar 9 o1) 1 1 0 True / 12
+ Help/Graph/f0-tw0051.hs view
@@ -0,0 +1,8 @@+-- http://sccode.org/1-4Qy (f0)+let ascii_u = mce . map (constant . fromEnum)+    i = a (ascii_u "sunday")+    f = a (9 / ascii_u "slow") * 400 + 500+    w = a (7 / ascii_u "coding") + 1.1+    a = saw ar+    l = splay (bBandPass i f w / 5) 1 1 0 True+in gVerb l 10 3 0.5 0.5 15 1 0.7 0.5 300 * 0.2
+ Help/Graph/f0-tw0077.hs view
@@ -0,0 +1,7 @@+-- http://sccode.org/1-4Qy (f0)+let a = sinOsc ar+    f = a (1 / mce2 5 6) 0 + mce2 798 912+    p = (a (1 / 16) 0 * 19 + 99) * a (mce2 9 8) 0+    m = a (a 6 0 * a 0.009 0) 0+    b = a f p * m+in tanh (a (mce2 201 301) b) * 0.1
+ Help/Graph/f0-tw0084.hs view
@@ -0,0 +1,6 @@+-- http://sccode.org/1-4Qy (f0)+let a = saw ar+    f = a (mce [5,7..15] * 19) * 99 + 199+    g = a (mce [1,3..13] * 29) * 199 + 299+    w = a (mce [3,5..11] * (a 3 * 2 + 3)) * 299 + 399+in splay (formant ar f g w) 1 1 0 True / 9
+ Help/Graph/f0-tw0120.hs view
@@ -0,0 +1,8 @@+-- http://sccode.org/1-4Qy (f0)+let a = lfTri+    z = a kr (1 / mce2 7 8) 0 * a kr (1 / 9) 0 * 99+    l = midiCps (mce [60 .. 79])+    f = select z l+    w = a kr (1 / mce2 3 4) 0 `modE` 1+    o = varSaw ar f 0 w+in combN o 1 (1 / mce2 5 6) 8 / 8
+ Help/Graph/f0-tw0121.hs view
@@ -0,0 +1,7 @@+-- http://sccode.org/1-4Qy (f0)+let a = sinOsc+    z = a kr (1 / mce2 8 7) 0 * a kr (1 / 30) 0 * 9+    l = midiCps (mce [56,62 .. 98])+    m = a ar (1 / mce2 4 3) 0+    o = a ar (select z l) 0 * m+in tanh (combN o 1 (1 / mce2 6 5) 9) * 0.1
+ Help/Graph/f0-tw0125.hs view
@@ -0,0 +1,9 @@+-- http://sccode.org/1-4Qy (f0)+let g = control kr "amp" 0.15+    a = sinOsc ar+    f = a (1 / mce [8,9]) 0 * 4 + mce [400,202]+    u = (a (1/9) 0 + 1) / 88+    d = (a (1/8) 0 + 1) / 99+    i = inFeedback 1 (mce [1,0])+    p = combC (lagUD i u d) 1 0.08 9+in a f p * g
+ Help/Graph/f0-tw0134.hs view
@@ -0,0 +1,12 @@+-- http://sccode.org/1-4Qy (f0) (requires -w 512)+let mean l = sum l / fromIntegral (length l)+    a = lfSaw ar+    n' = 50+    n = constant n'+    z i = let o1 = a ((i + 1) / mce [3,4]) 0+              o2 = a ((i + 1) / 8) 0 + 1+              f0 = o1 `greater_than` o2 * (n / 2) + n+              m = a ((i + 1) / n) (i / (n / 2))+              o3 = blip ar f0 (i + mce [2,3]) * m+          in ringz o3 ((i + 1) * (n * 2 - 1)) 0.1+in mean (map z [0 .. n']) / 10
+ Help/Graph/f0-tw0220.hs view
@@ -0,0 +1,13 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/617 (f0)+let c = inFeedback 1 0+    b = clearBuf (localBuf 1 90000)+    g = tGrains 2 (sinOsc ar 3 0) b (c + 3) 2 12 0 0.1 4+    r = recordBuf ar b 0 1 0 1 Loop 1 DoNothing c+in mrg2 (hpf (sinOsc ar 99 (c * 6) / 9 + g) 9 * 0.75) r++-- http://www.fredrikolofsson.com/f0blog/?q=node/617 (f0) ; id+let c = inFeedback 1 0+    b = clearBuf (localBufId 'α' 1 90000)+    g = tGrains 2 (sinOsc ar 3 0) b (c + 3) 2 12 0 0.1 4+    r = recordBuf ar b 0 1 0 1 Loop 1 DoNothing c+in mrg2 (hpf (sinOsc ar 99 (c * 6) / 9 + g) 9 * 0.75) r
+ Help/Graph/f0-tw0224.hs view
@@ -0,0 +1,13 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/617 (f0)+let c = 200000+    b = clearBuf (localBuf 2 c)+    d = bufRd 2 ar b (sinOsc ar (mce2 2 3 * 9) 0 * c) NoLoop LinearInterpolation+    w = bufWr b (abs (sinOsc ar (mce2 99 145) 0) * c) Loop (sinOsc ar (3 / mce2 2 3) 0 / 3)+in mrg2 (d * 0.1) w++-- http://www.fredrikolofsson.com/f0blog/?q=node/617 (f0) ; id+let c = 200000+    b = clearBuf (localBufId 'α' 2 c)+    d = bufRd 2 ar b (sinOsc ar (mce2 2 3 * 9) 0 * c) NoLoop LinearInterpolation+    w = bufWr b (abs (sinOsc ar (mce2 99 145) 0) * c) Loop (sinOsc ar (3 / mce2 2 3) 0 / 3)+in mrg2 (d * 0.1) w
+ Help/Graph/f0-tw0225.hs view
@@ -0,0 +1,5 @@+-- http://www.fredrikolofsson.com/f0blog/?q=node/617 (f0)+let b = mce [1..8] * 99+    o = blip ar (b / 2 + lfSaw kr ((-8) / b) 1 * 99) (b / 4 + (lfSaw kr (1 / b) 1 * 99))+    c = combN (o * sinOsc ar (8 / b) (lfSaw ar (99 / b) 0)) 0.2 0.2 1+in sin (splay c 1 1 0 True) * 0.1
+ Help/Graph/jar-1-4Qx.hs view
@@ -0,0 +1,6 @@+-- http://sccode.org/1-4Qx (jar)+let f = lfCub kr 9.1 0 * 100 + mce [200,300,400,500]+    g = lfCub kr (1 / mce [2,3,5,7]) 0 * 0.5 + lfCub kr 9 0+    h = lfCub kr (1/2) 0 * 0.4 + 0.5+    s = lfCub ar f 0 * lag (g `greater_than` h) 0.1+in splay s 1 0.075 0 True
+ Help/Graph/jar-rk_20120422.hs view
@@ -0,0 +1,19 @@+-- rukano; Apr 22, 2012; Re: Epic Pads (jar)+let freq_f _ = midiCps (lchoose [60,64,65,67]) * (lfNoise2 kr 1 * 0.011 + 1)+    freq = mceFill 24 freq_f+    gen = lfSaw ar freq 0 * 0.1+    fmod = lfCub kr (1/12) 0 `in_range` (1,mouseX kr 2 16 Linear 0.2)  -- modulate filter with mouse+    rqmod = lfNoise2 kr (1/8) `in_range` (0.1,1)+    sig = rlpf gen (freq * fmod) rqmod+    amp = mouseY kr 0 0.25 Linear 0.2+in splay sig 1 1 0 True * amp++-- rukano; Apr 22, 2012; Re: Epic Pads (jar) ; id+let freq_f z = midiCps (lchooseId z [60,64,65,67]) * (lfNoise2Id z kr 1 * 0.011 + 1)+    freq = mce (map freq_f (take 24 ['α'..]))+    gen = lfSaw ar freq 0 * 0.1+    fmod = lfCub kr (1/12) 0 `in_range` (1,mouseX kr 2 16 Linear 0.2)  -- modulate filter with mouse+    rqmod = lfNoise2Id 'β' kr (1/8) `in_range` (0.1,1)+    sig = rlpf gen (freq * fmod) rqmod+    amp = mouseY kr 0 0.25 Linear 0.2+in splay sig 1 1 0 True * amp
+ Help/Graph/jh-4157.hs view
@@ -0,0 +1,27 @@+-- jh ; <https://scsynth.org/t/auditory-illusion-with-exponentially-spaced-frequencies/4157>+mix (sinOsc ar (300 * mce (map (4 **) (take 200 [0, 0.002 ..]))) 0 * 0.02)++-- jh ; <https://scsynth.org/t/auditory-illusion-with-exponentially-spaced-frequencies/4157> ; doppler+splay (sinOsc ar (120 * mce (map (2 **) (take 100 [0, 0.002 ..]))) 0) 1 0.1 0 True++-- jh ; <https://scsynth.org/t/auditory-illusion-with-exponentially-spaced-frequencies/4157> ; doppler-formants+splay (saw ar (120 * mce (map (2 **) (take 100 [0, 0.002 ..])))) 1 0.1 0 True++-- sinosc ; <https://scsynth.org/t/auditory-illusion-with-exponentially-spaced-frequencies/4157> ; rd (edit)+let k = 100 -- 200 ; c.f. 12 25 50 100 200 400 600 800+    b = 2 -- 4 ; c.f. 2, 3, 4+    n = 0.02 -- 0.002 ; c.f. 0.002 0.004 0.01 0.05 0.1 0.125+    f0 = 120 -- 300 ; c.f. 120 180 240+    fMul = map (b **) (take k [0, n ..])+in splay (sinOsc ar (mce fMul * f0) 0) 1 0.1 0 True++-- sinosc ; <https://scsynth.org/t/auditory-illusion-with-exponentially-spaced-frequencies/4157> ; rd (edit)+let k = 160+    t = impulse ar 0.1 0+    sinosc f = sin (phasor ar t (f * sampleDur) 0 1 0 * 2 * pi)+    b = tRand 2 2.25 t+    n = tRand 0.002 0.02 t+    f0 = tRand 90 180 t+    fMul = map (b **) (take k [0, n ..])+    e = envGen ar t 1 0 1 DoNothing (envPerc 1 10)+in splay (sinosc (mce fMul * f0)) 1 0.1 0 True * e
+ Help/Graph/jl-1-9.hs view
@@ -0,0 +1,13 @@+-- http://sccode.org/1-9 (jl)+let n = 956 -- 0+    k = 99 -- 1+    a = hpf (pinkNoise ar * 0.005) 10 * line kr 0 1 9 DoNothing+    f i = ringz (a * lfNoise1 kr (0.05 + rand 0 0.1)) (55 * (i + n) + 60) 0.2+in tanh (gVerb (mixFill k f) 70 99 0.5 0.5 15 1 0.7 0.5 300)++-- http://sccode.org/1-9 (jl) ; id+let n = 956 -- 0+    k = 98 -- 1+    a = hpf (pinkNoiseId 'α' ar * 0.005) 10 * line kr 0 1 9 DoNothing+    f (z,i) = ringz (a * lfNoise1Id z kr (0.05 + randId z 0 0.1)) (55 * (i + n) + 60) 0.2+in tanh (gVerb (sum (map f (zip ['β' ..] [0 .. k]))) 70 99 0.5 0.5 15 1 0.7 0.5 300)
+ Help/Graph/jl-bitwise.hs view
@@ -0,0 +1,7 @@+-- bitwise ; a0f253ff89f6b244ea29a1e431dd9e5df5571a8b (jl)+let t = pulseCount (impulse ar 8e3 0) 0+    s = ((((t * 15) .&. (t .>>. 5)) .|.+          ((t *  5) .&. (mce2 (t .>>. 3) (t .>>. 4))) .|.+          ((t *  2) .&. (t .>>. 9)) .|.+          ((t *  8) .&. (t .>>. 11))) - 3) `modE` 256+in tanh (hpf (((s / 127) - 1) * 3) 20) * 0.02
+ Help/Graph/jl-dark-sea-horns.hs view
@@ -0,0 +1,15 @@+-- http://sccode.org/1-j#c51 (jl)+let n = lfNoise1+    x = localIn' 2 ar+    a = tanh (sinOsc ar 65 (x * lfNoise1 ar 0.1 * 3) * lfNoise1 ar 3 * 6)+    f i = allpassN i 0.3 (X.randN 2 0.1 0.3) 5+    o = tanh (iter 9 f a)+in mrg2 (o * 0.2) (localOut o)++-- http://sccode.org/1-j#c51 (jl) ; id+let n = lfNoise1Id+    x = localIn' 2 ar+    a = tanh (sinOsc ar 65 (x * n 'α' ar 0.1 * 3) * n 'β' ar 3 * 6)+    f z i = allpassN i 0.3 (X.randNId 2 (z,'γ') 0.1 0.3) 5+    o = tanh (useqId 'δ' 9 f a)+in mrg2 (o * 0.2) (localOut o)
+ Help/Graph/jl-jl-1-Z.hs view
@@ -0,0 +1,8 @@+-- http://sccode.org/1-Z (jl)+let a = lag (impulse kr 8 0) 0.1+    b = crackle ar (lag (abs (lfSaw kr 3 0)) 0.1 * 1.8)+    c = a * b+    d = lag (impulse kr 2 0 + impulse kr 4 0.5) 0.1+    e = blip ar 4.9 7 * 0.4+    f = d * e+in tanh (c + gVerb f 1 1 0.5 0.5 15 1 0.7 0.5 300 * 5) * 0.5
+ Help/Graph/jl-pwm-crossfade.hs view
@@ -0,0 +1,15 @@+-- http://sccode.org/1-L (jl)+let urangeMce u = let [u0,u1] = mceChannels u in urange u0 u1+    n = mce [400,500,450,376,600]+    d = 1/20+    f = demand (impulse kr d (mce2 0 0.5)) 0 (dseq dinf n)+    f_ = urangeMce f (lfPulse kr 8 0 (range 0 1 (lfTri kr d 1)))+in lpf (saw ar (max 376 f_ * mce2 1 0.99) * 0.5) 8000 * 0.1++-- http://sccode.org/1-L (jl) ; id+let urangeMce u = let [u0,u1] = mceChannels u in urange u0 u1+    n = mce [400,500,450,376,600]+    d = 1/20+    f = demand (impulse kr d (mce2 0 0.5)) 0 (dseqId 'α' dinf n)+    f_ = urangeMce f (lfPulse kr 8 0 (range 0 1 (lfTri kr d 1)))+in lpf (saw ar (max 376 f_ * mce2 1 0.99) * 0.5) 8000 * 0.1
+ Help/Graph/jl-rain-thunder.hs view
@@ -0,0 +1,23 @@+-- http://sccode.org/1-e (jl)+let d0 = lpf (dust2 ar (lfNoise1 kr 0.2 `in_range` (40,50))) 7000+    n0 = pinkNoise ar * (0.08 + lfNoise1 kr 0.3 * 0.02) + d0+    e0 = line kr 0 1 10 DoNothing+    p0 = tanh (3 * gVerb (hpf n0 400) 250 100 0.25 0.5 15 0.3 0.7 0.5 300 * e0)+    lfNoise1C r f = clip (lfNoise1 r f) 0 1+    n1 = pinkNoise ar * ((lfNoise1C kr 3 * lfNoise1C kr 2) ** 1.8)+    f1 = linExp (lfNoise1 kr 1) (-1) 1 100 2500+    e1 = line kr 0 0.7 30 DoNothing+    p1 = gVerb (tanh (lpf (10 * hpf n1 20) f1)) 270 30 0.7 0.5 15 0.5 0.7 0.5 300 * e1+in limiter (p0 + p1) 1 0.01 * 0.2++-- http://sccode.org/1-e (jl) ; id+let d0 = lpf (dust2Id 'γ' ar (lfNoise1Id 'δ' kr 0.2 `in_range` (40,50))) 7000+    n0 = pinkNoiseId 'α' ar * (0.08 + lfNoise1Id 'β' kr 0.3 * 0.02) + d0+    e0 = line kr 0 1 10 DoNothing+    p0 = tanh (3 * gVerb (hpf n0 400) 250 100 0.25 0.5 15 0.3 0.7 0.5 300 * e0)+    lfNoise1C e r f = clip (lfNoise1Id e r f) 0 1+    n1 = pinkNoiseId 'ε' ar * ((lfNoise1C 'ζ' kr 3 * lfNoise1C 'η' kr 2) ** 1.8)+    f1 = linExp (lfNoise1Id 'θ' kr 1) (-1) 1 100 2500+    e1 = line kr 0 0.7 30 DoNothing+    p1 = gVerb (tanh (lpf (10 * hpf n1 20) f1)) 270 30 0.7 0.5 15 0.5 0.7 0.5 300 * e1+in limiter (p0 + p1) 1 0.01 * 0.2
+ Help/Graph/jmcc-aleatoric-quartet.hs view
@@ -0,0 +1,38 @@+-- aleatoric quartet (jmcc) #7+let base_mn = 66 -- control kr "note" 66+    amp = 0.07 -- control kr "amp" 0.07+    density = mouseX kr 0.01 1 Linear 0.1+    dmul = recip density * 0.5 * amp+    dadd = amp - dmul+    rapf i = allpassN i 0.05 (mce2 (rand 0 0.05) (rand 0 0.05)) 1+    mk_f _ = let m = lfNoise0 kr (lchoose [1, 0.5, 0.25]) * 7 + base_mn + rand (-30) 30+             in midiCps (lag (roundTo m 1) 0.2)+    mk_s n = let x = pinkNoise ar * max 0 (lfNoise1 kr 8 * dmul + dadd)+             in pan2 (combL x 0.02 (recip (mk_f n)) 3) (rand2 1) 1+    g = iter 5 rapf (mixFill 4 mk_s)+in leakDC g 0.995++-- aleatoric quartet (jmcc) #7 ; monadic+let aleatoric_quartet_m = do+      let base_mn = 66 -- control kr "note" 66+          amp = 0.07 -- control kr "amp" 0.07+          density = mouseX kr 0.01 1 Linear 0.1+          dmul = recip density * 0.5 * amp+          dadd = amp - dmul+          rapf i = do r <- replicateM 2 (randM 0 0.05)+                      return (allpassN i 0.05 (mce r) 1)+          mk_f = do r0 <- lchooseM [1, 0.5, 0.25]+                    r1 <- randM (-30) 30+                    n0 <- lfNoise0M kr r0+                    let m = n0 * 7 + base_mn + r1+                        m' = lag (roundTo m 1) 0.2+                    return (midiCps m')+          mk_s = do f <- fmap recip mk_f+                    r <- randM (-1) 1+                    x <- do n0 <- pinkNoiseM ar+                            n1 <- lfNoise1M kr 8+                            return (n0 * max 0 (n1 * dmul + dadd))+                    return (pan2 (combL x 0.02 f 3) r 1)+      g <- chainM 5 rapf =<< fmap sum (sequence (replicate 4 mk_s))+      return (leakDC g 0.995)+in uid_st_eval aleatoric_quartet_m
+ Help/Graph/jmcc-alien-froggies.hs view
@@ -0,0 +1,20 @@+-- alien froggies (jmcc) #1 ; texture=overlap,0.25,0.5,5,inf+let alien_froggies_n r =+      let r' = fold (r * exp (linRand (-0.2) 0.2 0)) 1 30+          o = formant ar r' (expRand 200 3000) (rand 0 9 * r' + r')+      in o * 0.05+in alien_froggies_n 11++-- alien froggies (jmcc) #1 ; texture=overlap,0.25,0.5,5,inf ; id+let alien_froggies_n r =+      let r' = fold (r * exp (linRandId 'α' (-0.2) 0.2 0)) 1 30+          o = formant ar r' (expRandId 'β' 200 3000) (randId 'γ' 0 9 * r' + r')+      in o * 0.05+in alien_froggies_n 11++-- alien froggies (jmcc) #1 ; event control+let f (_,g,x,y,z,o,rx,_,_,_,_) =+      let r = fold (11 * exp (x * 0.4 - 0.2)) 1 30+          s = formant ar r (linExp y 0 1 200 3000) (rx * 9 * r + r)+      in pan2 s (o * 2 - 1) (0.5 * z * g)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-alien-meadow.hs view
@@ -0,0 +1,9 @@+-- alien meadow (jmcc) #6 ; texture=overlap,2,6,6,inf+let b = rand 0 5000+    f = sinOsc ar (rand 0 20) 0 * b * 0.1 + b+in pan2 (sinOsc ar f 0) (rand2 1) (sinOsc ar (rand 0 20) 0 * 0.05 + 0.05)++-- alien meadow (jmcc) #6 ; texture=overlap,2,6,6,inf ; id+let b = randId 'α' 0 5000+    f = sinOsc ar (randId 'β' 0 20) 0 * b * 0.1 + b+in pan2 (sinOsc ar f 0) (randId 'γ' (-1) 1) (sinOsc ar (randId 'δ' 0 20) 0 * 0.05 + 0.05)
+ Help/Graph/jmcc-analog-bubbles-mouse.hs view
@@ -0,0 +1,17 @@+-- analog bubbles with mouse control (jmcc) #3+let y = mouseY kr 0.1 10 Exponential 0.2 {- lfo 1 rate -}+    x = mouseX kr 2 40 Exponential 0.2  {- lfo 2 rate -}+    o2 = lfSaw kr x 0 * (-3) + 80 {- depth & offset in semitones -}+    o1 = lfSaw kr y 0 * 24 + o2 {- depth in semitones, offset is lfo_2 -}+    f = midiCps o1 {- convert to frequency -}+    s = sinOsc ar f 0 * 0.04+in combN s 0.2 0.2 4 {- echoing sine wave -}++-- analog bubbles (jmcc) #1 ; C-cC-v c.f. hsc3-ui-region+let f1 = control_m kr "f1" 0.4 (0.1,16,"exp")+    f2 = control_m kr "f2" 8.0 (0.1,16,"exp")+    dt = control_m kr "dt" 0.90375 (0.5,2,"lin")+    o = lfSaw kr (mce2 f2 (f2 * dt)) 0 * 3 + 80+    f = lfSaw kr f1 0 * 24 + o+    s = sinOsc ar (midiCps f) 0 * 0.04+in combN s 0.2 0.2 4
+ Help/Graph/jmcc-analog-bubbles.hs view
@@ -0,0 +1,5 @@+-- analog bubbles (jmcc) #1+let o = lfSaw kr (mce2 8 7.23) 0 * 3 + 80+    m = lfSaw kr 0.4 0 * 24 + o+    s = sinOsc ar (midiCps m) 0 * 0.04+in combN s 0.2 0.2 4 * 0.1
+ Help/Graph/jmcc-analogue-daze.hs view
@@ -0,0 +1,33 @@+-- ; analogue daze (jmcc) #3+let dsequ s tr = demand tr 0 (dseq dinf (mce s))+    patternList = [55,63,60,63,57,65,62,65]+    f octave clockRate pwmrate fltrate =+        let trg = impulse kr clockRate 0+            freq = map (midiCps .  (+ (12 * octave))) patternList+            sq = dsequ freq trg+            pwm = sinOsc kr pwmrate (rand 0 (2 * pi)) * 0.4 + 0.5+            cf = sinOsc kr fltrate (rand 0 (2 * pi)) * 1400 + 2000+        in rlpf (lfPulse ar (lag sq 0.05) 0 pwm * 0.1) cf (1/15)+    a = lfNoise0 ar (lfNoise1 kr 0.3 * 6000 + 8000) * (mce2 0.07 0.08)+    x = decay (impulse ar 2 0) 0.15 * a+    g = mce [f 1 8 0.31 0.2,f 0 2 0.13 0.11] + x+    z = 0.4 * (combN g 0.375 0.375 5 + mceReverse g)+    e = envLinen 2 56 2 1+in z * envGen kr 1 1 0 1 RemoveSynth e++-- ; analogue daze (jmcc) #3 ; id+let dsequId k s tr = demand tr 0 (dseqId k dinf (mce s))+    patternList = [55,63,60,63,57,65,62,65]+    f k octave clockRate pwmrate fltrate =+        let trg = impulse kr clockRate 0+            freq = map (midiCps .  (+ (12 * octave))) patternList+            sq = dsequId 'α' freq trg+            pwm = sinOsc kr pwmrate (randId (k,'β') 0 (2 * pi)) * 0.4 + 0.5+            cf = sinOsc kr fltrate (randId (k,'γ') 0 (2 * pi)) * 1400 + 2000+        in rlpf (lfPulse ar (lag sq 0.05) 0 pwm * 0.1) cf (1/15)+    a = lfNoise0Id 'δ' ar (lfNoise1Id 'ε' kr 0.3 * 6000 + 8000) * (mce2 0.07 0.08)+    x = decay (impulse ar 2 0) 0.15 * a+    g = mce [f 'ζ' 1 8 0.31 0.2,f 'η' 0 2 0.13 0.11] + x+    z = 0.4 * (combN g 0.375 0.375 5 + mceReverse g)+    e = envLinen 2 56 2 1+in z * envGen kr 1 1 0 1 RemoveSynth e
+ Help/Graph/jmcc-babbling-brook.hs view
@@ -0,0 +1,18 @@+-- babbling brook (jmcc) #Sc3+let b f m a g _ = let n3 = lpf (brownNoise ar) f * m + a+                      n4 = onePole (brownNoise ar) 0.99+                  in rhpf n4 n3 0.03 * g+    x = mceFill 2 (b 14 400 500 0.006)+    y = mceFill 2 (b 20 800 1000 0.010)+in x + y++-- babbling brook (jmcc) #Sc3+uid_st_eval (do+  let b f m a g = do n1 <- brownNoiseM ar+                     n2 <- brownNoiseM ar+                     let n3 = lpf n2 f * m + a+                         n4 = onePole n1 0.99+                     return (rhpf n4 n3 0.03 * g)+  x <- replicateM 2 (b 14 400 500 0.006)+  y <- replicateM 2 (b 20 800 1000 0.010)+  return (mce x + mce y))
+ Help/Graph/jmcc-bach-prelude.hs view
@@ -0,0 +1,16 @@+-- jmcc <https://soundcloud.com/soundaspureform/bach-prelude>+let p1 = [[60,64,67,72,76],[60,62,69,74,77],[59,62,67,74,77],[60,64,67,72,76]+         ,[60,64,69,76,81],[60,62,66,69,74],[59,62,67,74,79],[59,60,64,67,72]+         ,[57,60,64,67,72],[50,57,62,66,72],[55,59,62,67,71],[55,58,64,67,73]+         ,[53,57,62,69,74],[53,56,62,65,71],[52,55,60,67,72],[52,53,57,60,65]+         ,[50,53,57,60,65],[43,50,55,59,65],[48,52,55,60,64],[48,55,58,60,64]+         ,[41,53,57,60,64],[42,48,57,60,63],[44,53,59,60,62],[43,53,55,59,62]+         ,[43,52,55,60,64],[43,50,55,60,65],[43,50,55,59,65],[43,51,57,60,66]+         ,[43,52,55,60,67],[43,50,55,60,65],[43,50,55,59,65],[36,48,55,58,64]]+    p2 = [[36,48,53,57,60,65,60,57,60,57,53,57,53,50,53,50]+         ,[36,47,67,71,74,77,74,71,74,71,67,71,62,65,64,62]+         ,replicate 16 60]+    p = concatMap (concat . replicate 2 . (\x -> x ++ drop 2 x)) p1 ++ concat p2+    tr = impulse kr 5 0+    freq = demand tr 0 (dseq 1 (mce (map midiCps p)))+in pan2 (freeVerb (lpf (saw ar (lag freq 0.03)) 1000) 0.3 0.5 0.35) 0 0.2
+ Help/Graph/jmcc-berlin-1977.hs view
@@ -0,0 +1,47 @@+-- berlin 1977 (jmcc) #4+let dsequ sq tr = demand tr 0 (dseq dinf (mce sq))+    dsequR sq tr = demand tr 0 (dshuf dinf (mce sq))+    clock_rate = mouseX kr 5 20 Exponential 0.2 {- mouse x controls clock rate -}+    clock_time = 1 / clock_rate+    clock = impulse kr clock_rate 0 {- sequencer trigger -}+    patternList = [55,60,63,62,60,67,63,58]+    note = dsequ patternList clock {- midi note pattern sequencer -}+    clock_16 = pulseDivider clock 16 0 {- divide clock by 16 -}+    note' = dsequR [-12,-7,-5,0,2,5] clock_16 + note {- transpose somewhat randomly -}+    freq = midiCps note' {- convert midi note to cycles per second -}+    env = decay2 clock (0.05 * clock_time) (2 * clock_time)+    amp = env * 0.1 + 0.02 {- amplitude envelope -}+    filt = env * (fSinOsc kr 0.17 0 * 800) + 1400 {- filter frequency -}+    pw = sinOsc kr 0.08 (mce2 0 (0.5 * pi)) * 0.45 + 0.5 {- pulse width LFO(s) -}+    s = pulse ar freq pw * amp+in combN (rlpf s filt 0.15) 0.2 (mce2 0.2 0.17) 1.5++-- berlin 1977 (jmcc) #4 ; id+let dsequId z sq tr = demand tr 0 (dseqId z dinf (mce sq))+    dsequRId z sq tr = demand tr 0 (dshufId z dinf (mce sq))+    clock_rate = mouseX kr 5 20 Exponential 0.2 {- mouse x controls clock rate -}+    clock_time = 1 / clock_rate+    clock = impulse kr clock_rate 0 {- sequencer trigger -}+    patternList = [55,60,63,62,60,67,63,58]+    note = dsequId 'α' patternList clock {- midi note pattern sequencer -}+    clock_16 = pulseDivider clock 16 0 {- divide clock by 16 -}+    note' = dsequRId 'β' [-12,-7,-5,0,2,5] clock_16 + note {- transpose somewhat randomly -}+    freq = midiCps note' {- convert midi note to cycles per second -}+    env = decay2 clock (0.05 * clock_time) (2 * clock_time)+    amp = env * 0.1 + 0.02 {- amplitude envelope -}+    filt = env * (fSinOsc kr 0.17 0 * 800) + 1400 {- filter frequency -}+    pw = sinOsc kr 0.08 (mce2 0 (0.5 * pi)) * 0.45 + 0.5 {- pulse width LFO(s) -}+    s = pulse ar freq pw * amp+in combN (rlpf s filt 0.15) 0.2 (mce2 0.2 0.17) 1.5++-- berlin 1977 (jmcc) #4 ; event-control+let f (_,w,_,y,z,_,_,_,p,_,_) =+      let freq = unitCps p+          env = decay2 (trig w controlDur) (0.05 * y) (2 * y)+          amp = env * z + 0.02+          filt = env * (fSinOsc kr 0.17 0 * 800) + 1400 {- filter frequency -}+          pw = sinOsc kr 0.08 (mce2 0 (0.5 * pi)) * 0.45 + 0.5 {- pulse width LFO(s) -}+          s = pulse ar freq pw * amp+      in combN (rlpf s filt 0.15) 0.2 (mce2 0.2 0.17) 1.5 * lagUD w 0 (2 + y)+in mix (voicer 16 f) * control kr "gain" 1+
+ Help/Graph/jmcc-birdies.hs view
@@ -0,0 +1,17 @@+-- birdies (jmcc) #6 ; texture=overlap,7,4,4,inf+let p1 = lfPulse kr (0.4 + rand 0 1) 0 (rand 0 0.8 + 0.1) * (rand 0 3 + 4) + 2+    p2 = lfPulse kr (0.4 + rand 0 1) 0 (rand 0 0.8 + 0.1) * (rand 0 3 + 4)+    p3 = lfPulse kr (0.2 + rand 0 0.5) 0 0.4 * 0.02+    sw = lfSaw kr (p1 + p2) 0 * (- (1000 + rand 0 800)) + (4000 + rand2 1200)+    freq = lag sw 0.05+    amp = lag p3 0.3+in pan2 (sinOsc ar freq 0 * amp) (rand2 1) 1++-- birdies (jmcc) #6 ; texture=overlap,7,4,4,inf ; id+let p1 = lfPulse kr (0.4 + randId 'α' 0 1) 0 (randId 'β' 0 0.8 + 0.1) * (randId 'γ' 0 3 + 4) + 2+    p2 = lfPulse kr (0.4 + randId 'δ' 0 1) 0 (randId 'ε' 0 0.8 + 0.1) * (randId 'ζ' 0 3 + 4)+    p3 = lfPulse kr (0.2 + randId 'η' 0 0.5) 0 0.4 * 0.02+    sw = lfSaw kr (p1 + p2) 0 * (- (1000 + randId 'θ' 0 800)) + (4000 + rand2Id 'ι' 1200)+    freq = lag sw 0.05+    amp = lag p3 0.3+in pan2 (sinOsc ar freq 0 * amp) (rand2Id 'κ' 1) 1
+ Help/Graph/jmcc-birds.hs view
@@ -0,0 +1,30 @@+-- birds (jmcc)+let node _ = let f = rand 94.0 102.0 + lag (lfSaw ar (7 + rand2 1.5) (rand 0 1) * rand 11 15) 0.1+                 a = lfPulse kr (1.0 / rand 12 15.6) (rand 0 1) 0.16 * 0.05+                 b = sinOsc ar (midiCps f) (rand 0 1) * a+             in rotate2 b (silent 1) (rand2 1)+    apfr i = allpassL i 0.07 (rand 0 0.06) (rand 0.7 2.0)+    d = mixFill 6 node+    w = iter 12 apfr d+in d * 0.7 + w * 0.3++-- birds (jmcc) ; monad+uid_st_eval (do+  let node = do r1 <- randM 94.0 102.0+                r2 <- randM (-1.5) 1.5+                r3 <- randM 0.0 1.0+                r4 <- randM 11.0 15.0+                r5 <- randM 0.0 1.0+                r6 <- randM 12.0 15.6+                r7 <- randM 0.0 1.0+                r8 <- randM (-1.0) 1.0+                let f = r1 + lag (lfSaw ar (7 + r2) r3 * r4) 0.1+                    a = lfPulse kr (1.0 / r6) r7 0.16 * 0.05+                    b = sinOsc ar (midiCps f) r5 * a+                return (rotate2 b (silent 1) r8)+      apf_r i = do r1 <- randM 0.0 0.06+                   r2 <- randM 0.7 2.0+                   return (allpassL i 0.07 r1 r2)+  d <- return . sum =<< sequence (replicate 6 node)+  w <- chainM 12 apf_r d+  return (d * 0.7 + w * 0.3))
+ Help/Graph/jmcc-blips.hs view
@@ -0,0 +1,21 @@+-- blips 001 (jmcc) #Sc3d1.5 ; texture=overlap,2,1,12,inf+let mk _ =+      let f = xLine kr (expRand 0.25 400) (expRand 0.25 400) 4 DoNothing+          nh = xLine kr (expRand 2 100) (expRand 2 100) 4 DoNothing+      in blip ar f nh+    pp = iter 6 (\x -> allpassN x 0.05 (mce2 (rand 0 0.05) (rand 0 0.05)) 4) . distort+in pp (rand 0 1 <** 0.8 * pan2 (mk () * mk ()) (line kr (rand2 1) (rand2 1) 4 DoNothing) 0.3)++-- blips 001 (jmcc) #Sc3d1.5 ; texture=overlap,2,1,12,inf ; id+let mk z =+      let f = xLine kr (expRandId (z,'α') 0.25 400) (expRandId (z,'β') 0.25 400) 4 DoNothing+          nh = xLine kr (expRandId (z,'γ') 2 100) (expRandId (z,'δ') 2 100) 4 DoNothing+      in blip ar f nh+    s =+      let c = randId 'ε' 0 1 <** 0.8+          o = mk 'ζ' * mk 'η'+      in c * pan2 o (line kr (rand2Id 'θ' 1) (rand2Id 'ι' 1) 4 DoNothing) 0.3+    pp =+      let f z x = allpassN x 0.05 (mce2 (randId (z,'κ') 0 0.05) (randId (z,'λ') 0 0.05)) 4+      in Sound.Sc3.Common.Base.compose_l (map f (id_seq 6 'μ')) . distort+in pp s
+ Help/Graph/jmcc-bouncing-objects.hs view
@@ -0,0 +1,25 @@+-- bouncing objects (jmcc) #2 ; texture=spawn,1,inf+let imp_frq = xLine kr (5 + rand (-2) 2) 600 4 DoNothing+    imp_amp = xLine kr 0.09 0.000009 4 DoNothing+    imp = impulse ar imp_frq 0 * imp_amp+    exc = decay imp 0.001+    flt_frq = X.randN 4 400 8400+    flt_amp = X.randN 4 0 1+    flt_rtm = X.randN 4 0.01 0.11+    flt = klank exc 1 0 1 (klankSpec_mce flt_frq flt_amp flt_rtm)+    loc = pan2 flt (rand (-1) 1) 1+    e = Envelope [1,1,0] [3,0.001] (replicate 2 EnvLin) Nothing Nothing 0+in loc * envGen kr 1 1 0 1 RemoveSynth e++-- bouncing objects (jmcc) #2 ; texture=spawn,1,inf ; id+let imp_frq = xLine kr (5 + randId 'α' (-2) 2) 600 4 DoNothing+    imp_amp = xLine kr 0.09 0.000009 4 DoNothing+    imp = impulse ar imp_frq 0 * imp_amp+    exc = decay imp 0.001+    flt_frq = X.randNId 4 'β' 400 8400+    flt_amp = X.randNId 4 'γ' 0 1+    flt_rtm = X.randNId 4 'δ' 0.01 0.11+    flt = klank exc 1 0 1 (klankSpec_mce flt_frq flt_amp flt_rtm)+    loc = pan2 flt (randId 'ε' (-1) 1) 1+    e = Envelope [1,1,0] [3,0.001] (replicate 2 EnvLin) Nothing Nothing 0+in loc * envGen kr 1 1 0 1 RemoveSynth e
+ Help/Graph/jmcc-bowed-string.hs view
@@ -0,0 +1,57 @@+-- bowed string (jmcc) ; texture=overlap,5,2,12,inf+let root = 5+    scale = map (+ root) [0,2,4,5,7,9,11]+    oct = [24,36,48,60,72,84]+    f = midiCps (lchoose scale + lchoose oct)+    x = mce2 (brownNoise ar) (brownNoise ar) * 0.007 * max 0 (lfNoise1 kr (expRand 0.125 0.5) * 0.6 + 0.4)+    geom n i z = mce (take n (iterate (* z) i))+    iota n i z = mce (take n (iterate (+ z) i))+    d = klankSpec_mce (iota 12 f f) (geom 12 1 (rand 0.7 0.9)) (X.randN 12 1.0 3.0)+    k = klank x 1 0 1 d+in softClip (k * 0.1)++-- bowed string (jmcc) ; texture=overlap,5,2,12,inf ; monad+uid_st_eval (do+  let root = 5+      scale = map (+ root) [0,2,4,5,7,9,11]+      oct = [24,36,48,60,72,84]+  n0 <- replicateM 2 (brownNoiseM ar)+  r0 <- expRandM 0.125 0.5+  r1 <- randM 0.7 0.9+  r2 <- X.randNM 12 1.0 3.0+  f <- midiCps `fmap` (Control.Monad.liftM2 (+) (lchooseM scale) (lchooseM oct))+  n1 <- lfNoise1M kr r0+  let x = mce n0 * 0.007 * max 0 (n1 * 0.6 + 0.4)+      geom n i z = mce (take n (iterate (* z) i))+      iota n i z = mce (take n (iterate (+ z) i))+      d = klankSpec_mce (iota 12 f f) (geom 12 1 r1) r2+      k = klank x 1 0 1 d+  return (softClip (k * 0.1)))++-- bowed string (jmcc) ; event control+let f (_,g,_,y,z,_,_,_,p,_,_) =+      let n0 = mce2 (brownNoise ar) (brownNoise ar)+          r0 = expRand 0.125 0.5+          r1 = rand 0.7 0.9+          r2 = X.randN 12 1.0 3.0+          fq = unitCps p+          exc = n0 * 0.005 * z * lagUD g (y * 0.1) (y * 4)+          geom n i m = mce (take n (iterate (* m) i))+          iota n i m = mce (take n (iterate (+ m) i))+          d = klankSpec_mce (iota 12 fq fq) (geom 12 1 r1) r2+      in softClip (dynKlank exc 1 0 1 d)+in mix (voicer 16 f) * control kr "gain" 0.75++-- bowed string (jmcc) ; event control ; id+let f (c,g,_,y,z,_,_,_,p,_,_) =+      let n0 = mce2 (brownNoiseId (c,'α') ar) (brownNoiseId (c,'β') ar)+          r0 = expRandId (c,'γ') 0.125 0.5+          r1 = randId (c,'δ') 0.7 0.9+          r2 = X.randNId 12 (c,'ε') 1.0 3.0+          fq = unitCps p+          exc = n0 * 0.005 * z * lagUD g (y * 0.1) (y * 4)+          geom n i m = mce (take n (iterate (* m) i))+          iota n i m = mce (take n (iterate (+ m) i))+          d = klankSpec_mce (iota 12 fq fq) (geom 12 1 r1) r2+      in softClip (dynKlank exc 1 0 1 d)+in mix (voicer 16 f) * control kr "gain" 0.75
+ Help/Graph/jmcc-clustered-sines.hs view
@@ -0,0 +1,19 @@+-- clustered sines (jmcc) #2 ; texture=xfade,4,4,inf+let cs _ =+      let n = 80+          f1 = rand 100 1100+          f2 = 4 * f1+          sp = let y = mceFill n (\_ -> f1 + rand 0 f2)+               in klangSpec_mce y (mceMap (f1 /) y) (mceFill n (const 0))+      in klang ar 1 0 sp * (0.3 / fromIntegral n)+in mceFill 2 cs++-- clustered sines (jmcc) #2 ; texture=xfade,4,4,inf ; id+let cs z =+      let n = 80+          f1 = randId 'α' 100 1100+          f2 = 4 * f1+          sp = let y = map (\zz -> f1 + randId (z,zz) 0 f2) (id_seq n 'β')+               in klangSpec y (map (f1 /) y) (replicate n 0)+      in klang ar 1 0 sp * (0.3 / fromIntegral n)+in mce (map cs (id_seq 2 'δ'))
+ Help/Graph/jmcc-coolant.hs view
@@ -0,0 +1,13 @@+-- coolant (jmcc) #2 ; texture=overlap,4,4,2,inf+let p = 10+    spec freq = let n = mceFill p (const 1) in klankSpec_mce freq n n+    gen _ = klank (onePole (brownNoise ar * 0.0015) 0.95) 1 0 1 (spec (X.randN p 40 2400))+in mceFill 2 gen++-- coolant (jmcc) #2 ; texture=overlap,4,4,2,inf ; id+let p = 10+    s = onePole (mceFillId 'α' 2 (\z _ -> brownNoiseId z ar * 0.0015)) 0.95+    n = mceFill p (const 1)+    s1 = klankSpec_mce (X.randNId p 'β' 40 2400) n n+    s2 = klankSpec_mce (X.randNId p 'γ' 40 2400) n n+in klank s 1 0 1 (mceTranspose (mce2 s1 s2))
+ Help/Graph/jmcc-cymbalism-accelerando.hs view
@@ -0,0 +1,25 @@+-- cymbalism accelerando (jmcc) #2 ; texture=overlap,4,4,4,inf+let y _ = let f1 = rand 500 2500+              f = mceFill 15 (\_ -> rand f1 (f1 + rand 0 8000))+              rt = mceFill 15 (\_ -> rand 1 5)+        in klankSpec_mce f (mceFill 15 (const 1)) rt+    z = mceFill 2 y+    w = whiteNoise ar * 0.02+    tf = xLine kr (linRand 0.5 4.5 0) (rand 0.5 35.5) 12 DoNothing+    t = impulse ar tf 0+    s = decay t 0.004 * w+in klank s 1 0 1 (mceTranspose z)++-- cymbalism accelerando (jmcc) #2 ; texture=overlap,4,4,4,inf ; id+let enumFromN e i = let j = fromEnum e in [j .. j + i]+    y n = let f1 = randId n 500 2500+              f2 = randId n 0 8000+              f = map (\e -> randId e f1 (f1 + f2)) (enumFromN n 15)+              rt = map (\e -> randId e 1 5) (enumFromN n 15)+        in klankSpec f (replicate 15 1) rt+    z = mce2 (y 'α') (y 'β')+    w = whiteNoiseId 'γ' ar * 0.02+    tf = xLine kr (linRandId 'δ' 0.5 4.5 0) (randId 'ε' 0.5 35.5) 12 DoNothing+    t = impulse ar tf 0+    s = decay t 0.004 * w+in klank s 1 0 1 (mceTranspose z)
+ Help/Graph/jmcc-cymbalism.hs view
@@ -0,0 +1,52 @@+-- cymbalism (jmcc) #2 ; texture=overlap,3,6,6,inf+let p = 15+    spec _ = let f1 = rand 500 2500+                 f = mceFill p (\_ -> rand f1 (f1 + rand 0 8000))+                 rt = mceFill p (\_ -> rand 1 5)+             in klankSpec_mce f (mceFill p (const 1)) rt+    t = impulse ar (rand 0.5 3.5) 0+    s = whiteNoise ar * decay t 0.004 * 0.03+in mceFill 2 (\n -> klank s 1 0 1 (spec n))++-- cymbalism (jmcc) #2 ; texture=overlap,3,6,6,inf ; monad+uid_st_eval (do+  let p = replicate 15+  f1 <- randM 500 2500+  f2 <- randM 0 8000+  let y = do f <- sequence (p (randM f1 (f1 + f2)))+             rt <- sequence (p (randM 1 5))+             return (klankSpec f (p 1) rt)+  z <- replicateM 2 y+  n <- fmap (* 0.03) (whiteNoiseM ar)+  tf <- randM 0.5 3.5+  let t = impulse ar tf 0+      s = decay t 0.004 * n+  return (klank s 1 0 1 (mceTranspose (mce z))))++-- cymbalism (jmcc) #2 ; event control+let f (_,g,x,y,z,_,_,_,_,_,_) =+      let mk_spc _ =+            let f1 = x * 2000 + 500+                f3 = mceFill 15 (\_ -> tRand f1 (f1 + rand 0 8000) g)+                rt = mceFill 15 (\_ -> tRand 1 5 g)+            in klankSpec_mce f3 (mceFill 15 (const 1)) rt+          spc = mceFill 2 mk_spc+          whn = whiteNoise ar * z * 0.1+          sig = decay (trig g controlDur) (y * 0.01) * whn+      in dynKlank sig 1 0 1 (mceTranspose spc)+in mix (voicer 16 f) * control kr "gain" 1++-- cymbalism (jmcc) #2 ; event control ; id+let f (c,g,x,y,z,_,_,_,_,_,_) =+      let enumFromN e i = let j = fromEnum e in [j .. j + i]+          mk_spc n =+            let f1 = x * 2000 + 500+                f2 = randId (c,n) 0 8000+                f3 = map (\e -> tRandId (c,e) f1 (f1 + f2) g) (enumFromN n 15)+                rt = map (\e -> tRandId (c,e) 1 5 g) (enumFromN n 15)+            in klankSpec f3 (replicate 15 1) rt+          spc = mce2 (mk_spc 'α') (mk_spc 'β')+          whn = whiteNoiseId (c,'γ') ar * z * 0.1+          sig = decay (trig g controlDur) (y * 0.01) * whn+      in dynKlank sig 1 0 1 (mceTranspose spc)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-data-space.hs view
@@ -0,0 +1,26 @@+-- data space (jmcc) #2 ; texture=overlap,1,6,4,inf+let p0 = lfPulse kr (rand0 200) 0 (rand0 1)+    p1 = lfPulse kr (rand0 40) 0 (rand0 1) * rand0 8000 + rand0 2000+    p2 = lfPulse kr (rand0 20) 0 (rand0 1)+    p3 = lfPulse kr (rand0 4) 0 (rand0 1) * rand0 8000 + rand0 2000+    p4 = lfPulse kr (rand0 20) 0 (rand0 1)+    p5 = lfPulse kr (rand0 4) 0 (rand0 1) * rand0 8000 + rand0 2000+    f = p0 * p1 + p2 * p3 + p4 * p5+    dt = rand 0.15 0.35+    o = lfPulse ar f 0 0.5 * 0.04+    l = lfNoise0 kr (rand0 3) * 0.8+in combL (pan2 o l 1) dt dt 3++-- data space (jmcc) #2 ; texture=overlap,1,6,4,inf ; id+let r e = randId e 0+    p0 = lfPulse kr (r 'α' 200) 0 (r 'β' 1)+    p1 = lfPulse kr (r 'γ' 40) 0 (r 'δ' 1) * r 'ε' 8000 + r 'ζ' 2000+    p2 = lfPulse kr (r 'η' 20) 0 (r 'θ' 1)+    p3 = lfPulse kr (r 'ι' 4) 0 (r 'κ' 1) * r 'λ' 8000 + r 'μ'  2000+    p4 = lfPulse kr (r 'ν' 20) 0 (r 'ξ' 1)+    p5 = lfPulse kr (r 'ο' 4) 0 (r 'π' 1) * r 'ρ' 8000 + r 'σ'  2000+    f = p0 * p1 + p2 * p3 + p4 * p5+    dt = randId 'τ' 0.15 0.35+    o = lfPulse ar f 0 0.5 * 0.04+    l = lfNoise0Id 'υ' kr (r 'φ' 3) * 0.8+in combL (pan2 o l 1) dt dt 3
+ Help/Graph/jmcc-deep-trip.hs view
@@ -0,0 +1,21 @@+-- deep trip (jmcc) #9 ; texture=overlap,4,12,4,inf+let f = midiCps (lfNoise1 kr (rand 0 0.3) * 60 + 70)+    a'' = sinOsc kr (rand 0 40) 0 * 0.1+    a' = max 0 (lfNoise1 kr (rand 0 8) * a'')+    a = lfNoise2 ar (f * rand 0 0.5) * a'+    z = sinOsc ar f 0 * a+    s = pan2 z (lfNoise1 kr (rand 0 5)) 1+    c0 = combN s 0.5 (X.randN 2 0.3 0.5) 20+    c1 = combN s 0.5 (X.randN 2 0.3 0.5) 20+in s + c0 + c1++-- deep trip (jmcc) #9 ; texture=overlap,4,12,4,inf ; id+let f = midiCps (lfNoise1Id 'α' kr (randId 'β' 0 0.3) * 60 + 70)+    a'' = sinOsc kr (randId 'γ' 0 40) 0 * 0.1+    a' = max 0 (lfNoise1Id 'δ' kr (randId 'ε' 0 8) * a'')+    a = lfNoise2Id 'ζ' ar (f * randId 'η' 0 0.5) * a'+    z = sinOsc ar f 0 * a+    s = pan2 z (lfNoise1Id 'θ' kr (randId 'ι' 0 5)) 1+    c0 = combN s 0.5 (X.randNId 2 'κ' 0.3 0.5) 20+    c1 = combN s 0.5 (X.randNId 2 'λ' 0.3 0.5) 20+in s + c0 + c1
+ Help/Graph/jmcc-demanding-studies.hs view
@@ -0,0 +1,23 @@+-- demanding studies (jmcc)+let s1 = drand dinf (mce [72, 75, 79, 82])+    s2 = drand 1 (mce [82, 84, 86])+    s3 = dseq dinf (mce [72, 75, 79, s2])+    x = mouseX kr 5 13 Linear 0.2+    tr = impulse kr x 0+    f = demand tr 0 (mce2 (midiCps (s1 - 12)) (midiCps s3))+    o1 = sinOsc ar (f + mce2 0 0.7) 0+    o2 = saw ar (f + mce2 0 0.7) * 0.3+    o3 = cubed (distort (log (distort (o1 + o2))))+in o3 * 0.1++-- demanding studies (jmcc) ; id+let s1 = drandId 'α' dinf (mce [72, 75, 79, 82])+    s2 = drandId 'β' 1 (mce [82, 84, 86])+    s3 = dseqId 'γ' dinf (mce [72, 75, 79, s2])+    x = mouseX kr 5 13 Linear 0.2+    tr = impulse kr x 0+    f = demand tr 0 (mce2 (midiCps (s1 - 12)) (midiCps s3))+    o1 = sinOsc ar (f + mce2 0 0.7) 0+    o2 = saw ar (f + mce2 0 0.7) * 0.3+    o3 = cubed (distort (log (distort (o1 + o2))))+in o3 * 0.1
+ Help/Graph/jmcc-filter-input.hs view
@@ -0,0 +1,5 @@+-- filter input (jmcc) #5 ; warning=feedback+let rQ = mouseY kr 0.01 1 Exponential 0.2 {- bandwidth ratio = 1/Q -}+    cf = mouseX kr 100 12000 Exponential 0.2 {- cutoff freq -}+    sg = soundIn (mce2 0 1) * 0.4 * sqrt rQ {- attenuate to offset resonance -}+in rlpf sg cf rQ
+ Help/Graph/jmcc-harmonic-swimming.hs view
@@ -0,0 +1,21 @@+-- harmonic swimming (jmcc) #1+let a = 0.02+    f = 50+    p = 20+    l = line kr 0 (- a) 60 DoNothing+    o h = let r = X.randN 2 2 8+              n = lfNoise1 kr r+              e = max 0 (n * a + l)+          in fSinOsc ar (f * (h + 1)) 0 * e+in mixFill p o++-- harmonic swimming (jmcc) #1 ; id+let a = 0.02+    f = 50+    p = 20::Int+    l = line kr 0 (- a) 60 DoNothing+    o h = let r = X.randNId 2 h 2 8+              n = lfNoise1Id h kr r+              e = max 0 (n * a + l)+          in fSinOsc ar (f * (fromIntegral h + 1)) 0 * e+in sum (map o [0 .. p - 1])
+ Help/Graph/jmcc-harmonic-tumbling.hs view
@@ -0,0 +1,19 @@+-- harmonic tumbling (jmcc) #1+let f = 80+    p = 10+    t = xLine kr (mce2 10 11) 0.1 60 DoNothing+    o h = let n = dust kr t+              r = rand 0.25 0.5+              e = decay2 (n * 0.02) 0.005 r+          in fSinOsc ar (f * (h + 1)) 0 * e+in mixFill p o++-- harmonic tumbling (jmcc) #1 ; id+let f = 80+    p = 10::Int+    t = xLine kr (mce2 10 11) 0.1 60 DoNothing+    o z = let n = dustId z kr t+              r = randId z 0.25 0.5+              e = decay2 (n * 0.02) 0.005 r+          in fSinOsc ar (f * (constant z + 1)) 0 * e+in sum (map o [0 .. p])
+ Help/Graph/jmcc-hell-is-busy.hs view
@@ -0,0 +1,16 @@+-- hell is busy (jmcc) #1 ; texture=overlap,4,4,8,inf+let o = fSinOsc ar (400 + rand 0 2000) 0+    a = lfPulse kr (1 + rand 0 10.0) 0 (rand 0 0.7) * 0.04+in pan2 (o * a) (rand (-1) 1) 1++-- hell is busy (jmcc) #1 ; texture=overlap,4,4,8,inf ; id+let o = fSinOsc ar (400 + randId 'α' 0 2000) 0+    a = lfPulse kr (1 + randId 'β' 0 10.0) 0 (randId 'γ' 0 0.7) * 0.04+in pan2 (o * a) (randId 'δ' (-1) 1) 1++-- hell is busy (jmcc) #1 ; event control+let f (_,g,x,y,z,o,rx,_,_,_,_) =+      let s1 = fSinOsc ar (400 + x * 2000) 0+          s2 = lfPulse kr (1 + y * 10) 0 (rx * 0.7)+      in pan2 (s1 * s2 * 0.35) (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-impulse-sequencer.hs view
@@ -0,0 +1,25 @@+-- impulse sequencer (jmcc) SC2+let dsequ s tr = demand tr 0 (dseq dinf (mce s))+    t = impulse ar 8 0 {- single sample impulse as trigger -}+    c_sq = dsequ [1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0] t * t {- clave rhythm -}+    c = decay2 c_sq 0.001 0.3 * fSinOsc ar 1700 0 * 0.1+    d_sq = dsequ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0] t * t+    d = decay2 d_sq 0.001 0.3 * fSinOsc ar 2400 0 * 0.04+    n_sq = dsequ [1.0, 0.1, 0.1, 1.0, 0.1, 1.0, 0.1, 0.1] t * t {- noise drum -}+    n = decay2 n_sq 0.001 0.25 * brownNoise ar * 0.1+    b_sq = dsequ [1,0,0.2,0,0.2,0,0.2,0] t * t {- bass drum -}+    b = decay2 b_sq 0.001 0.5 * fSinOsc ar 100 0 * 0.2+in c + d + n + b++-- impulse sequencer (jmcc) SC2 ; id+let dsequId z s tr = demand tr 0 (dseqId z dinf (mce s))+    t = impulse ar 8 0 {- single sample impulse as trigger -}+    c_sq = dsequId 'α' [1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0] t * t {- clave rhythm -}+    c = decay2 c_sq 0.001 0.3 * fSinOsc ar 1700 0 * 0.1+    d_sq = dsequId 'β' [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0] t * t+    d = decay2 d_sq 0.001 0.3 * fSinOsc ar 2400 0 * 0.04+    n_sq = dsequId 'γ' [1.0, 0.1, 0.1, 1.0, 0.1, 1.0, 0.1, 0.1] t * t {- noise drum -}+    n = decay2 n_sq 0.001 0.25 * brownNoiseId 'δ' ar * 0.1+    b_sq = dsequId 'ε' [1,0,0.2,0,0.2,0,0.2,0] t * t {- bass drum -}+    b = decay2 b_sq 0.001 0.5 * fSinOsc ar 100 0 * 0.2+in c + d + n + b
+ Help/Graph/jmcc-landon-rose.hs view
@@ -0,0 +1,27 @@+-- landon rose (jmcc) #8+let nt =+      [[32,43,54, 89]+      ,[10,34,80,120]+      ,[67,88,90,100]+      ,[76,88,99,124]]+    fr = map (map midi_to_cps) nt+    nd e f =+      let p = klankSpec f (replicate 4 1) (replicate 4 3)+          x = e * pinkNoise ar * mce2 0.0011 0.0012+      in klank x 1 0 1 p+    env i = abs (sinOsc ar (1 / 8) ((i / 2) * pi))+in sum (zipWith nd (map env [0 .. 3]) fr)++-- landon rose (jmcc) #8 ; id+let nt =+      [[32,43,54, 89]+      ,[10,34,80,120]+      ,[67,88,90,100]+      ,[76,88,99,124]]+    fr = map (map midi_to_cps) nt+    nd z e f =+      let p = klankSpec f (replicate 4 1) (replicate 4 3)+          x = e * pinkNoiseId z ar * mce2 0.0011 0.0012+      in klank x 1 0 1 p+    env i = abs (sinOsc ar (1 / 8) ((constant i / 2) * pi))+in sum (zipWith3 nd "αβγδ" (map env [0 .. 3]) fr)
+ Help/Graph/jmcc-lfo-modulation.hs view
@@ -0,0 +1,5 @@+-- lfo modulation (jmcc) #1+let o = fSinOsc kr 0.05 0 * 80 + 160+    p = fSinOsc kr (mce2 0.6 0.7) 0 * 3600 + 4000+    s = rlpf (lfPulse ar o 0 0.4 * 0.05) p 0.2+in combL s 0.3 (mce2 0.2 0.25) 2
+ Help/Graph/jmcc-lots-o-sines.hs view
@@ -0,0 +1,15 @@+-- lots-o-sins (jmcc) #2 ; texture=xfade,4,4,inf+let n = 60 {- n sines in each channel (twice as many during cross-fade) -}+    mk_k x = mceFill n (const x)+    o1 = klang ar 1 0 (klangSpec_mce (X.randN n 40 10000) (mk_k 1) (mk_k 0))+    o2 = klang ar 1 0 (klangSpec_mce (X.randN n 40 10000) (mk_k 1) (mk_k 0))+in mce2 o1 o2 * (0.1 / constant n)++-- lots-o-sins (jmcc) #2 ; texture=xfade,4,4,inf ; id+let n = 60 {- n sines in each channel (twice as many during cross-fade) -}+    f0 = X.randNId n 'α' 40 10000+    f1 = X.randNId n 'β' 40 10000+    mk_k x = mce (replicate n x)+    o1 = klang ar 1 0 (klangSpec_mce f0 (mk_k 1) (mk_k 0))+    o2 = klang ar 1 0 (klangSpec_mce f1 (mk_k 1) (mk_k 0))+in mce2 o1 o2 * (0.1 / constant n)
+ Help/Graph/jmcc-metal-plate.hs view
@@ -0,0 +1,35 @@+-- metal plate (jmcc) #4+let+    sr = 48000+    n = 4 {- number of delay lines -}+    maxdt = ceiling (sr * 0.03) {- maximum delay time -}+    buf = mceFill n (\_ -> clearBuf (localBuf 1 maxdt)) {- buffers for delay lines -}+    tap_tm = mceFill n (\_ -> rand 0.015 0.03) {- random tap times -}+    exc_freq = mouseY kr 10 8000 Linear 0.2+    exc_trig = impulse ar 0.5 0 * 0.2+    exc = decay2 exc_trig 0.01 0.2 * lfNoise2 ar exc_freq {- excitation -}+    del = tap 1 ar buf tap_tm {- delay line taps -}+    flt_freq = mouseX kr 10 5000 Linear 0.2+    flt = lpf del flt_freq * 0.98 {- tap filters -}+    wr = recordBuf ar buf 0 1 0 1 Loop 1 DoNothing (mce1 (flt + exc)) {- write to delay lines -}+in mrg2 (mix flt) wr++-- metal plate (jmcc) #4 ; id+let+    enumFromN e i = let j = fromEnum e in [j .. j + i]+    sr = 48000+    n = 4 :: Int {- number of delay lines -}+    maxdt = ceiling (sr * 0.03) {- maximum delay time -}+    mk_buf k = clearBuf (localBufId k 1 maxdt)+    buf = map mk_buf [0 .. n - 1] {- buffers for delay lines -}+    tap_tm = map (\z -> randId ('α',z) 0.015 0.03) (enumFromN 'β' n) {- random tap times -}+    exc_freq = mouseY kr 10 8000 Linear 0.2+    exc_trig = impulse ar 0.5 0 * 0.2+    exc = decay2 exc_trig 0.01 0.2 * lfNoise2Id 'γ' ar exc_freq {- excitation -}+    del = zipWith (tap 1 ar) buf tap_tm {- delay line taps -}+    flt_freq = mouseX kr 10 5000 Linear 0.2+    flt = map (\i -> lpf i flt_freq * 0.98) del {- tap filters -}+    wr_f b f = recordBuf ar b 0 1 0 1 Loop 1 DoNothing (f + exc)+    wr = zipWith wr_f buf flt {- write to delay lines -}+in mrg2 (sum flt) (mce wr)+
+ Help/Graph/jmcc-modal-space.hs view
@@ -0,0 +1,77 @@+-- modal space (jmcc) #8 ; local buffer+let ms1 n r =+      let b = asLocalBuf [0,2,3.2,5,7,9,10] {- dorian scale -}+          x = mouseX kr 0 15 Linear 0.1 {- mouse indexes into scale -}+          k = degreeToKey b x 12 {- 12 notes per octave -}+          o = sinOsc ar (midiCps (r + k + n * 0.04)) 0 * 0.1+          t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+          f = midiCps (sinOsc kr 0.1 0 * 10 + r)+          d = rlpf t f 0.1 * 0.1+          m = o + d+      in combN m 0.31 0.31 2 + m+in ms1 (lfNoise1 kr 3) 48 + ms1 (lfNoise1 kr 3) 72 * 0.25++-- modal space (jmcc) #8 ; local buffer ; id+let ms1 n r =+      let b = asLocalBufId 'α' [0,2,3.2,5,7,9,10] {- dorian scale -}+          x = mouseX kr 0 15 Linear 0.1 {- mouse indexes into scale -}+          k = degreeToKey b x 12 {- 12 notes per octave -}+          o = sinOsc ar (midiCps (r + k + n * 0.04)) 0 * 0.1+          t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+          f = midiCps (sinOsc kr 0.1 0 * 10 + r)+          d = rlpf t f 0.1 * 0.1+          m = o + d+      in combN m 0.31 0.31 2 + m+in ms1 (lfNoise1Id 'β' kr 3) 48 + ms1 (lfNoise1Id 'γ' kr 3) 72 * 0.25++-- modal space (jmcc) #8 ; event control+let f (_,g,x,y,z,_,_,_,_,_,_) =+      let ms1 n r =+            let b = asLocalBuf [0,2,3.2,5,7,9,10] {- dorian scale -}+                k = degreeToKey b (x * 25) 12 {- 12 notes per octave -}+                o = sinOsc ar (midiCps (r + k + n * y * 0.08)) 0 * 0.1+                t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+                d = rlpf t (midiCps (sinOsc kr 0.1 0 * 10 + r)) 0.1 * 0.1+                m = o + d+            in combN m 0.31 0.31 2 + m+          ms = ms1 (lfNoise1 kr 3) 48 + ms1 (lfNoise1 kr 3) 72+      in ms * z * lagUD g 0.2 2+in mix (voicer 16 f) * control kr "gain" 1++-- modal space (jmcc) #8 ; event control ; id+let f (c,g,x,y,z,_,_,_,_,_,_) =+      let ms1 n r =+            let b = asLocalBufId 'α' [0,2,3.2,5,7,9,10] {- dorian scale -}+                k = degreeToKey b (x * 25) 12 {- 12 notes per octave -}+                o = sinOsc ar (midiCps (r + k + n * y * 0.08)) 0 * 0.1+                t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+                d = rlpf t (midiCps (sinOsc kr 0.1 0 * 10 + r)) 0.1 * 0.1+                m = o + d+            in combN m 0.31 0.31 2 + m+          ms = ms1 (lfNoise1Id (c,'β') kr 3) 48 + ms1 (lfNoise1Id (c,'γ') kr 3) 72+      in ms * z * lagUD g 0.2 2+in mix (voicer 16 f) * control kr "gain" 1++-- modal space (jmcc) #8 ; event control ; modeless+let f (_,g,_,y,z,_,_,_,p,_,_) =+      let ms1 n r =+            let o = sinOsc ar (midiCps (p * 127 + r + n * y * 0.08)) 0 * 0.1+                t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+                d = rlpf t (midiCps (sinOsc kr 0.1 0 * 10 + r)) 0.1 * 0.1+                m = o + d+            in combN m 0.31 0.31 2 + m+          ms = ms1 (lfNoise1 kr 3) 0 + ms1 (lfNoise1 kr 3) 24+      in ms * z * lagUD g (y * 0.05 + 0.01) (y * 2 + 1)+in mix (voicer 16 f) * control kr "gain" 1++-- modal space (jmcc) #8 ; event control ; modeless ; id+let f (c,g,_,y,z,_,_,_,p,_,_) =+      let ms1 n r =+            let o = sinOsc ar (midiCps (p * 127 + r + n * y * 0.08)) 0 * 0.1+                t = lfPulse ar (midiCps (mce2 48 55)) 0 0.15+                d = rlpf t (midiCps (sinOsc kr 0.1 0 * 10 + r)) 0.1 * 0.1+                m = o + d+            in combN m 0.31 0.31 2 + m+          ms = ms1 (lfNoise1Id (c,'β') kr 3) 0 + ms1 (lfNoise1Id (c,'γ') kr 3) 24+      in ms * z * lagUD g (y * 0.05 + 0.01) (y * 2 + 1)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-moto-rev.hs view
@@ -0,0 +1,4 @@+-- moto rev (jmcc) #1+let f = sinOsc kr 0.2 0 * 10 + 21+    s = lfPulse ar f (mce2 0 0.1) 0.1+in clip2 (rlpf s 100 0.1) 0.4
+ Help/Graph/jmcc-narrow-band-filtered-crackle-noise.hs view
@@ -0,0 +1,27 @@+-- narrow band filtered crackle noise (jmcc) #2 ; texture=spawn,2,inf+let e = envLinen 2 5 2 1+    rf1 = rand 0 2000 + 80+    rf2 = rf1 + (rand2 0.2 * rf1)+    rf = xLine kr rf1 rf2 9 DoNothing+    c = crackle ar (1.97 + rand 0 0.03) * 0.15+in pan2 (resonz c rf 0.2) (rand2 1) (envGen ar 1 1 0 1 RemoveSynth e)++-- narrow band filtered crackle noise (jmcc) #2 ; texture=spawn,2,inf ; id+let e = envLinen 2 5 2 1+    rf1 = randId 'α' 0 2000 + 80+    rf2 = rf1 + (rand2Id 'β' 0.2 * rf1)+    rf = xLine kr rf1 rf2 9 DoNothing+    c = crackle ar (1.97 + randId 'γ' 0 0.03) * 0.15+in pan2 (resonz c rf 0.2) (rand2Id 'δ' 1) (envGen ar 1 1 0 1 RemoveSynth e)++-- narrow band filtered crackle noise (jmcc) #2 ; event control+let f (_,g,_,y,z,o,_,_,p,_,_) =+      let cr = crackle ar (1.97 + rand 0 0.03)+      in pan2 (resonz cr (unitCps p) (0.2 - y * 0.2)) (o * 2 - 1) (z * 10 * g)+in mix (voicer 16 f) * control kr "gain" 1++-- narrow band filtered crackle noise (jmcc) #2 ; event control ; id+let f (c,g,_,y,z,o,_,_,p,_,_) =+      let cr = crackle ar (1.97 + randId (c,'γ') 0 0.03)+      in pan2 (resonz cr (unitCps p) (0.2 - y * 0.2)) (o * 2 - 1) (z * 10 * g)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-noise-burst-sweep.hs view
@@ -0,0 +1,15 @@+-- noise burst sweep (jmcc) #6 ; texture=overlap,4,2,4,inf+let n = mce2 (whiteNoise ar) (whiteNoise ar)+    lfoRate = rand (-1) 1 + mouseX kr 10 60 Exponential 0.2+    amp = max 0 (lfSaw kr lfoRate (-1))+    cfreq = mouseY kr 400 8000 Exponential 0.2+    freq = sinOsc kr 0.2 0 * cfreq + (1.05 * cfreq)+in resonz (n * amp) freq 0.1++-- noise burst sweep (jmcc) #6 ; texture=overlap,4,2,4,inf ; id+let n = mce2 (whiteNoiseId 'α' ar) (whiteNoiseId 'β' ar)+    lfoRate = randId 'γ' (-1) 1 + mouseX kr 10 60 Exponential 0.2+    amp = max 0 (lfSaw kr lfoRate (-1))+    cfreq = mouseY kr 400 8000 Exponential 0.2+    freq = sinOsc kr 0.2 0 * cfreq + (1.05 * cfreq)+in resonz (n * amp) freq 0.1
+ Help/Graph/jmcc-phase-modulation.hs view
@@ -0,0 +1,16 @@+-- phase modulation with slow beats (jmcc) #6 texture=overlap,4,4,4,inf+let x = mouseX kr 100 6000 Exponential 0.2 {- random freq of new events -}+    y = mouseY kr 0 2 Linear 0.2 {- modulation index -}+    ph = iter 3 (\i -> let f = rand 0 x in fSinOsc ar (mce [f,f + rand2 1]) 0 * y + i) 0+    freq = rand 0 x+in sinOsc ar (mce [freq, freq + rand2 1]) ph * 0.1++-- phase modulation with slow beats (jmcc) #6 texture=overlap,4,4,4,inf ; id+let nrec n f st = if n > 0 then nrec (n - 1) f (f st) else st+    x = mouseX kr 100 6000 Exponential 0.2 {- random freq of new events -}+    y = mouseY kr 0 2 Linear 0.2 {- modulation index -}+    o (e,a) = let f = randId e 0 x+              in (succ e,fSinOsc ar (mce [f,f + rand2Id 'α' 1]) 0 * y + a)+    ph = snd (nrec 3 o ('β',0))+    freq = randId 'γ' 0 x+in sinOsc ar (mce [freq, freq + rand2Id 'δ' 1]) ph * 0.1
+ Help/Graph/jmcc-plucked-strings.hs view
@@ -0,0 +1,31 @@+-- plucked strings (jmcc)+let dt _ = 1 / midiCps (floorE (rand 60 90))+    i _ = let s0 = impulse ar (rand 2 2.2) 0 * 0.3+              s1 = dust ar 0.5 * 0.3+              s2 = impulse ar (sinOsc kr (rand 0.05 0.15) (rand 0 (pi * 2)) * 5 + 5.2) 0 * 0.3+          in select (iRand 0 2) (mce [s0,s1,s2])+    s n = let dt' = dt n+              t = decay (i n) 0.1 * pinkNoise ar * 0.1+          in pan2 (combL t dt' dt' 4) (rand2 1) 1+in mixFill 5 s++-- plucked strings (jmcc) ; monad+uid_st_eval (do+  let dt = do r0 <- randM 60 90+              return (1 / midiCps (floorE r0))+      i = do r0 <- randM 2 2.2+             n0 <- dustM ar 0.5+             r1 <- randM 0.05 0.15+             r2 <- randM 0 (pi * 2)+             r3 <- iRandM 0 2+             let s0 = impulse ar r0 0 * 0.3+                 s1 = n0 * 0.3+                 s2 = impulse ar (sinOsc kr r1 r2 * 5 + 5.2) 0 * 0.3+             return (select r3 (mce [s0,s1,s2]))+      s = do n0 <- pinkNoiseM ar+             r1 <- randM (-1) 1+             im <- i+             dt' <- dt+             let t = decay im 0.1 * n0 * 0.1+             return (pan2 (combL t dt' dt' 4) r1 1)+  fmap sum (sequence (replicate 5 s)))
+ Help/Graph/jmcc-police-state.hs view
@@ -0,0 +1,23 @@+-- police state (jmcc) #2+let nd _ = let f = sinOsc kr (rand 0.02 0.12) (rand 0 (pi * 2)) * rand 0 600 + rand 700 1300+           in pan2 (sinOsc ar f 0 * lfNoise2 ar (rand 80 120) * 0.1) (rand2 1) 1+    e = lfNoise2 ar (mceFill 2 (\_ -> lfNoise2 kr 0.4) * 90 + 620) * lfNoise2 kr (mce2 0.3 0.301) * 0.15 + 0.18+in combL (mixFill 4 nd + e) 0.3 0.3 3++-- police state (jmcc) #2 ; monad+uid_st_eval (do+  let nd = do r0 <- randM 0.02 0.12+              r1 <- randM 0 (pi * 2)+              r2 <- randM 0 600+              r3 <- randM 700 1300+              r4 <- randM (-1) 1+              r5 <- randM 80 120+              n0 <- lfNoise2M ar r5+              let f = sinOsc kr r0 r1 * r2 + r3+              return (pan2 (sinOsc ar f 0 * n0 * 0.1) r4 1)+  ns <- replicateM 4 nd+  n0 <- replicateM 2 (lfNoise2M kr 0.4)+  n1 <- lfNoise2M ar (mce n0 * 90 + 620)+  n2 <- lfNoise2M kr (mce2 0.3 0.301)+  let e = n1 * (n2 * 0.15 + 0.18)+  return (combL (mix (mce ns) + e) 0.3 0.3 3))
+ Help/Graph/jmcc-pond-life.hs view
@@ -0,0 +1,27 @@+-- pond life (jmcc) #1 ; texture=overlap,8,8,4,inf+let f0 = 20 + rand 0 30+    f1 = fSinOsc kr f0 0 * rand 100 400 + linRand 500 2500 0+    a = lfPulse kr (3 / rand 1 9) 0 (rand 0.2 0.5) * 0.04+in pan2 (sinOsc ar f1 0 * a) (rand (-1) 1) 0.5++-- pond life (jmcc) #1 ; texture=overlap,8,8,4,inf ; id+let f0 = 20 + randId 'α' 0 30+    f1 = fSinOsc kr f0 0 * randId 'β' 100 400 + linRandId 'γ' 500 2500 0+    a = lfPulse kr (3 / randId 'δ' 1 9) 0 (randId 'ε' 0.2 0.5) * 0.04+in pan2 (sinOsc ar f1 0 * a) (randId 'ζ' (-1) 1) 0.5++-- pond life (jmcc) #1 ; event control+let f (_,g,x,y,z,o,rx,ry,_,_,_) =+      let f0 = 20 + tRand 0 (rx * 30) g+          f1 = fSinOsc kr f0 0 * linLin x 0 1 100 400 + linLin y 0 1 500 2500+          a = lfPulse kr (3 / linLin ry 0 1 1 9) 0 (rand 0.2 0.5)+      in pan2 (sinOsc ar f1 0 * a * 0.25) (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 1++-- pond life (jmcc) #1 ; event control ; id+let f (c,g,x,y,z,o,rx,ry,_,_,_) =+      let f0 = 20 + tRandId 'α' 0 (rx * 30) g+          f1 = fSinOsc kr f0 0 * linLin x 0 1 100 400 + linLin y 0 1 500 2500+          a = lfPulse kr (3 / linLin ry 0 1 1 9) 0 (randId (c,'β') 0.2 0.5)+      in pan2 (sinOsc ar f1 0 * a * 0.25) (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-pulsing-bottles.hs view
@@ -0,0 +1,15 @@+-- pulsing bottles (jmcc) #2 ; texture=overlap,4,4,4,maxBound+let r _ = resonz (whiteNoise ar * lfPulse kr (rand 4 14) 0 0.25 * rand 0 0.7) (rand 400 7400) 0.01+    s _ = sinOsc kr (rand 0.1 0.5) (rand 0 (pi * 2))+  in mixFill 6 (\n -> pan2 (r n) (s n) 1)++-- pulsing bottles (jmcc) #2 ; texture=overlap,4,4,4,maxBound ; id+let r z = let n = whiteNoiseId z ar+              r0 = randId z 4 14+              r1 = randId z 0 0.7+              r2 = randId z 400 7400+          in resonz (n * lfPulse kr r0 0 0.25 * r1) r2 0.01+    s z = let f = randId z 0.1 0.5+              p = randId z 0 (pi * 2)+          in sinOsc kr f p+in sum (zipWith3 pan2 (map r (id_seq 6 'α')) (map s (id_seq 6 'β')) (repeat 1))
+ Help/Graph/jmcc-rails.hs view
@@ -0,0 +1,21 @@+-- rails (jmcc) #2 ; texture=overlap,3,2,4,inf+let n = 20 {- resonant modes -}+    e = dust ar 100 * 0.04 {- excitation -}+    f = xLine kr 3000 300 8 DoNothing {- sweep filter down -}+    l = line kr (rand2 1) (rand2 1) 8 DoNothing {- sweep pan -}+    r = X.linRandN n 200 3200 0+    a = mceFill n (const 1)+    t = X.randN n 0.2 1.2 {- ring times -}+    k = klank (resonz e f 0.2) 1 0 1 (klankSpec_mce r a t)+in pan2 k l 1++-- rails (jmcc) #2 ; texture=overlap,3,2,4,inf ; id+let n = 20 {- resonant modes -}+    e = dustId 'α' ar 100 * 0.04 {- excitation -}+    f = xLine kr 3000 300 8 DoNothing {- sweep filter down -}+    l = line kr (rand2Id 'β' 1) (rand2Id 'γ' 1) 8 DoNothing {- sweep pan -}+    r = map (\z -> 200 + linRandId z 0 3000 0) (id_seq n 'δ')+    a = replicate n 1+    t = map (\z -> 0.2 + randId z 0 1) (id_seq n 'ε')  {- ring times -}+    k = klank (resonz e f 0.2) 1 0 1 (klankSpec r a t)+in pan2 k l 1
+ Help/Graph/jmcc-random-panning-sines.hs view
@@ -0,0 +1,13 @@+-- random panning sines (jmcc) #4 ; texture=overlap,8,8,2,inf+let nd _ = pan2 (fSinOsc ar (linRand 80 2000 0) 0) (lfNoise1 kr (rand 0.8 1.2)) (lfNoise1 kr (rand 0.82 0.98))+in mixFill 8 nd * (0.4 / 8)++-- random panning sines (jmcc) #4 ; texture=overlap,8,8,2,inf ; monad+uid_st_eval (do+  let nd = do r0 <- linRandM 80 2000 0+              let o = fSinOsc ar r0 0+              l <- lfNoise1M kr =<< randM 0.8 1.2+              a <- lfNoise1M kr =<< randM 0.82 0.98+              return (pan2 o l a)+  r <- replicateM 8 nd+  return (mix (mce r) * (0.4 / 8)))
+ Help/Graph/jmcc-random-pulsations.hs view
@@ -0,0 +1,22 @@+-- random pulsations (jmcc) #1 ; texture=spawn,1.25,inf+let e = envLinen 2 5 2 0.02+    o1 = fSinOsc ar (rand 0 2000) 0 * envGen kr 1 1 0 1 DoNothing e+    o2 = sinOsc ar (linRand 8 88 0) 0+    o3 = sinOsc kr (rand 0.3 0.8) (rand 0 (2 * pi)) * 0.7+in pan2 (o1 `amClip` o2) o3 1++-- random pulsations (jmcc) #1 ; texture=spawn,1.25,inf ; id+let e = envLinen 2 5 2 0.02+    o1 = fSinOsc ar (randId 'α' 0 2000) 0 * envGen kr 1 1 0 1 DoNothing e+    o2 = sinOsc ar (linRandId 'β' 8 88 0) 0+    o3 = sinOsc kr (randId 'γ' 0.3 0.8) (randId 'δ' 0 (2 * pi)) * 0.7+in pan2 (o1 `amClip` o2) o3 1++-- random pulsations (jmcc) #1 ; event control+let f (_,g,x,y,z,o,rx,_,_,_,_) =+      let e = envLinen 2 5 2 0.02+          o1 = fSinOsc ar (x * 2000) 0 * envGen kr g 1 0 1 DoNothing e+          o2 = sinOsc ar (y * 80 + 8) 0+          o3 = sinOsc kr (o * 0.5 + 0.3) (rx * 2 * pi) * 0.7+      in pan2 (o1 `amClip` o2) o3 (z * 5 * lagUD g 0 12)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-random-sine-waves.hs view
@@ -0,0 +1,14 @@+-- random sine waves (jmcc) #1 ; texture=overlap,2,5,12,inf+let o = fSinOsc ar (rand 0 2000) 0 * 0.02+in pan2 o (rand2 1) 1++-- random sine waves (jmcc) #1 ; texture=overlap,2,5,12,inf ; id+let f = randId 'α' 0 2000+    o = fSinOsc ar f 0 * 0.02+in pan2 o (randId 'β' (-1) 1) 1++-- random sine waves (jmcc) #1 ; event control+let f (_,g,x,_,z,o,_,_,_,_,_) =+      let s = fSinOsc ar (x * 2000) 0+      in pan2 s (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 0.25
+ Help/Graph/jmcc-resonant-dust.hs view
@@ -0,0 +1,13 @@+-- resonant dust (jmcc) #2 ; texture=overlap,5,2,9,inf+let rf = let st = rand 80 2080+             en = st + (rand2 0.5 * st)+         in xLine kr st en 9 DoNothing+    d = dust ar (rand 50 850) * 0.3+in pan2 (resonz d rf 0.1) (rand (-1) 1) 1++-- resonant dust (jmcc) #2 ; texture=overlap,5,2,9,inf ; id+let rf = let st = randId 'α' 80 2080+             en = st + (randId 'β' (-0.5) 0.5 * st)+         in xLine kr st en 9 DoNothing+    d = dustId 'γ' ar (randId 'δ' 50 850) * 0.3+in pan2 (resonz d rf 0.1) (randId 'ε' (-1) 1) 1
+ Help/Graph/jmcc-resonators-harmonic-series.hs view
@@ -0,0 +1,57 @@+-- resonators harmonic series (jmcc) #2 ; texture=xfade,1,7,inf+let nharm = 12+    spec _ = let rat = [1.0,1.125,1.25,1.333,1.5,1.667,1.875,2.0,2.25,2.5,2.667,3.0,3.333,3.75,4.0]+                 freq = lchoose rat * 120+                 series n i j = case n of {0 -> []; _ -> i : series (n - 1) (i + j) j}+             in klankSpec_mce+                (mce (series nharm freq freq) + X.randN nharm (-0.5) 0.5)+                (mceFill nharm (\i -> 1 / (i + 1)))+                (X.randN nharm 0.5 4.5)+    gen n = klank (brownNoise ar * 0.001) 1 0 1 (spec n)+in mceFill 2 gen++-- resonators harmonic series (jmcc) #2 ; texture=xfade,1,7,inf ; id+let series n i j = case n of {0 -> []; _ -> i : series (n - 1) (i + j) j}+    enumFromN e i = let j = fromEnum e in [j .. j + i]+    nharm = 12+    noise = brownNoiseId 'α' ar * 0.001+    rat = [1.0,1.125,1.25,1.333,1.5,1.667,1.875,2.0,2.25,2.5,2.667,3.0,3.333,3.75,4.0]+    freq = lchooseId 'β' rat * 120+    resFreqs = zipWith (+)+               (series nharm freq freq)+               (map (\z -> rand2Id ('γ',z) 0.5) (enumFromN 'δ' nharm))+    spec = klankSpec+           resFreqs+           (map (\i -> 1 / (constant i + 1)) [0 .. nharm - 1])+           (map (\z -> randId ('ε',z) 0.5 4.5) (enumFromN 'ζ' nharm))+in Protect.uclone_all 'η' 2 (klank noise 1 0 1 spec)++-- resonators harmonic series (jmcc) #2 ; event control+let f (_,g,_,y,z,o,rx,_,p,_,_) =+      let nharm = 12+          spec _ = let freq = unitCps p+                       series n i j = case n of {0 -> []; _ -> i : series (n - 1) (i + j) j}+                   in klankSpec_mce+                      (mce (series nharm freq freq) + (X.randN nharm (-0.5) 0.5) * rx)+                      (mceFill nharm (\i -> 1 / (i + (2 * y))))+                      (X.randN nharm 0.5 4.5)+          gen n = dynKlank (brownNoise ar * 0.001) 1 0 1 (spec n)+      in pan2 (mceFill 2 gen)  (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 1++-- resonators harmonic series (jmcc) #2 ; event control ; id+let f (c,g,_,y,z,o,rx,ry,p,_,_) =+      let series n i j = case n of {0 -> []; _ -> i : series (n - 1) (i + j) j}+          enumFromN e i = let j = fromEnum e in [j .. j + i]+          nharm = 12+          noise = brownNoiseId (c,'α') ar * 0.001+          freq = unitCps p+          resFreqs = zipWith (+)+                     (series nharm freq freq)+                     (map (\k -> rand2Id (c,'γ',k) 0.5 * rx) (enumFromN 'δ' nharm))+          spec = klankSpec+            resFreqs+            (map (\i -> 1 / (constant i + (2 * y))) [0 .. nharm - 1])+            (map (\k -> randId (c,'ε',k) 0.5 4.5 * (0.5 + ry)) (enumFromN 'ζ' nharm))+      in pan2 (Protect.uclone_all 'η' 2 (dynKlank noise 1 0 1 spec)) (o * 2 - 1) (z * g)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-reverberated-sine-percussion.hs view
@@ -0,0 +1,23 @@+-- reverberated sine percussion (jmcc) #3+let s = mixFill 6 (\_ -> resonz (dust ar (2 / 6) * 50) (200 + rand 0 3000) 0.003)+    y = mix (combL (delayN s 0.048 0.48) 0.1 (lfNoise1 kr (X.randN 5 0 0.1) * 0.04 + 0.05) 15)+    x = iter 4 (\i -> allpassN i 0.05 (X.randN 2 0 0.05) 1) y+in s + x * 0.2++-- reverberated sine percussion (jmcc) #3 ; monad+uid_st_eval (do+  let d = 6+      c = 5+      a = 4+      s_ = do n <- dustM ar (2 / constant d)+              r <- randM 0 3000+              return (resonz (n * 50) (200 + r) 0.003)+      x_ i = do r <- X.randNM 2 0 0.05+                return (allpassN i 0.05 r 1)+  s <- fmap sum (sequence (replicate d s_))+  y <- do let z = delayN s 0.048 0.48+          r <- X.randNM c 0 0.1+          n <- lfNoise1M kr r+          return (mix (combL z 0.1 (n * 0.04 + 0.05) 15))+  x <- chainM a x_ y+  return (s + x * 0.2))
+ Help/Graph/jmcc-ring-modulated-klank.hs view
@@ -0,0 +1,17 @@+-- ring modulated klank (jmcc) #2 ; texture=overlap,4,4,4,inf+let p = 8+    k = let sp = klankSpec_mce (X.randN p 100 10000)+                               (mceFill p (const 1))+                               (X.randN p 0.2 1)+        in klank (dust ar 20 * 0.02) 1 0 1 sp+    f = lfNoise2 kr (rand 0.1 0.4) * 200 + rand 350 400+in pan2 (sinOsc ar f 0 * k) (rand (-1) 1) 1++-- ring modulated klank (jmcc) #2 ; texture=overlap,4,4,4,inf ; id+let p = 8+    k = let sp = klankSpec_mce (X.randNId p 'α' 100 10000)+                               (mce (replicate p 1))+                               (X.randNId p 'α' 0.2 1)+        in klank (dustId 'α' ar 20 * 0.02) 1 0 1 sp+    f = lfNoise2Id 'α' kr (randId 'α' 0.1 0.4) * 200 + randId 'α' 350 400+in pan2 (sinOsc ar f 0 * k) (randId 'α' (-1) 1) 1
+ Help/Graph/jmcc-sample-and-hold-liquidities.hs view
@@ -0,0 +1,26 @@+-- sample and hold liquidities (jmcc) #4+let r = mouseX kr 1 200 Exponential 0.1+    t = recip r+    c = impulse kr r 0 * 0.4+    cf = mouseY kr 100 8000 Exponential 0.1+    f = latch (whiteNoise kr * cf * 0.5 + cf) c+    p = latch (whiteNoise kr) c+    i = pan2 (sinOsc ar f 0 * decay2 c (t * 0.1) (t * 0.9)) p 1+in combN i 0.3 0.3 2++-- sample and hold liquidities (jmcc) #4 ; id+let r = mouseX kr 1 200 Exponential 0.1+    t = recip r+    c = impulse kr r 0 * 0.4+    cf = mouseY kr 100 8000 Exponential 0.1+    f = latch (whiteNoiseId 'α' kr * cf * 0.5 + cf) c+    p = latch (whiteNoiseId 'β' kr) c+    i = pan2 (sinOsc ar f 0 * decay2 c (t * 0.1) (t * 0.9)) p 1+in combN i 0.3 0.3 2++-- sample and hold liquidities (jmcc) #4 ; event control+let f (_,g,_,y,z,o,_,_,p,px,_) =+      let env = decay2 (trig g controlDur * z * 2) (0.01 + y * 0.1) (0.5 + y * 0.4)+          sig = pan2 (sinOsc ar (midiCps (p * 127 + px)) 0 * env) (o * 2 - 1) 1+      in sig + combN sig 0.3 0.3 2+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-saucer-base.hs view
@@ -0,0 +1,14 @@+-- saucer base (jmcc) #6 ; texture=overlap,2,6,4,inf+let b = rand 0 1000+    c = rand 0 5000+    o = sinOsc ar (sinOsc ar (rand 0 20) 0 * b + (1.1 * b)) 0 * c + (1.1 * c)+in pan2 (sinOsc ar o 0 * 0.1) (rand2 1) 1++-- saucer base (jmcc) #6 ; texture=overlap,2,6,4,inf ; id+let a = randId 'α' 0 20+    b = randId 'β' 0 1000+    c = randId 'γ' 0 5000+    p = randId 'δ' (-1) 1+    o = sinOsc ar a 0 * b + (1.1 * b)+    o' = sinOsc ar o 0 * c + (1.1 * c)+in pan2 (sinOsc ar o' 0 * 0.1) p 1
+ Help/Graph/jmcc-sawed-cymbals.hs view
@@ -0,0 +1,14 @@+-- sawed cymbals (jmcc) #9 ; texture=overlap,4,4,6,inf+let y _ = let f1 = rand 500 2500+              f = mceFill 15 (\_ -> rand f1 (f1 + rand 0 8000))+          in klankSpec_mce f (mceConst 15 1) (X.randN 15 2 6)+    fS = xLine kr (rand 0 600) (rand 0 600) 12 DoNothing+in klank (lfSaw ar fS 0 * 0.0005) 1 0 1 (mceTranspose (mceFill 2 y))++-- sawed cymbals (jmcc) #9 ; texture=overlap,4,4,6,inf ; id+let y z _ = let f1 = randId (z,'α') 500 2500+                f = listFillId 'γ' 15 (\z' _ -> randId (z','δ') f1 (f1 + randId (z','β') 0 8000))+                rt = listFillId 'ε' 15 (\z' _ -> randId (z','ζ') 2 6)+            in klankSpec f (replicate 15 1) rt+    fS = xLine kr (randId 'θ' 0 600) (randId 'ι' 0 600) 12 DoNothing+in klank (lfSaw ar fS 0 * 0.0005) 1 0 1 (mceTranspose (mceFillId 'η' 2 y))
+ Help/Graph/jmcc-scratchy.hs view
@@ -0,0 +1,7 @@+-- scratchy (jmcc) #1+let n = mceFill 2 (\_ -> brownNoise ar * 0.5 - 0.49)+in rhpf (max n 0 * 20) 5000 1++-- scratchy (jmcc) #1 ; id+let n = mce (map (\z -> brownNoiseId z ar * 0.5 - 0.49) (id_seq 2 'α'))+in rhpf (max n 0 * 20) 5000 1
+ Help/Graph/jmcc-sidereal-time.hs view
@@ -0,0 +1,21 @@+-- sidereal time (jmcc) #9 ; texture=overlap,4,4,6,inf+let p = 15+    i = let y _ = klankSpec_mce (X.expRandN p 100 6000) (mceConst p 1) (X.randN p 2 6)+        in mceFill 2 y+    f = xLine kr (expRand 40 300) (expRand 40 300) 12 DoNothing+    t = let e = lfNoise2 kr (rand 0 8)+        in lfPulse ar f 0 (rand 0.1 0.9) * 0.002 * max 0 e+    o = distort (klank t 1 0 1 (mceTranspose i)) * 0.1+in combN o 0.6 (rand 0.1 0.6) 8 + mceReverse o++-- sidereal time (jmcc) #9 ; texture=overlap,4,4,6,inf ; id+let p = 15+    i = let y z _ = let fr = X.expRandNId p (z,'β') 100 6000+                        rt = X.randNId p (z,'δ') 2 6+                    in klankSpec_mce fr (mceConst p 1) rt+        in mceFillId 'ε' 2 y+    f = xLine kr (expRandId 'ζ' 40 300) (expRandId 'η' 40 300) 12 DoNothing+    t = let e = lfNoise2Id 'θ' kr (randId 'ι' 0 8)+        in lfPulse ar f 0 (randId 'κ' 0.1 0.9) * 0.002 * max 0 e+    o = distort (klank t 1 0 1 (mceTranspose i)) * 0.1+in combN o 0.6 (randId 'λ' 0.1 0.6) 8 + mceReverse o
+ Help/Graph/jmcc-snare-909.hs view
@@ -0,0 +1,37 @@+-- snare-909 (jmcc)+let x = mouseX kr 1 4 Linear 0.2+    y = mouseY kr 0.25 0.75 Exponential 0.2+    tr = impulse kr (3 * x) 0+    n = whiteNoise ar+    v = tRand 0.25 1.0 tr+    e a b = envGen ar tr 1 0 1 DoNothing (envPerc a b)+    e1 = e 0.0005 0.055+    e2 = e 0.0005 0.075+    e3 = e 0.0005 0.4+    e4 = e 0.0005 0.283+    t1 = lfTri ar 330 0+    t2 = lfTri ar 185 0+    x1 = lpf n 7040 * 0.1 + v+    x2 = hpf x1 523+    m1 = t1 * e1 * 0.25 + t2 * e2 * 0.25+    m2 = x1 * e3 * 0.20 + x2 * e4 * 0.20+in pan2 (m1 + m2) 0 y++-- snare-909 (jmcc) ; id+let x = mouseX kr 1 4 Linear 0.2+    y = mouseY kr 0.25 0.75 Exponential 0.2+    tr = impulse kr (3 * x) 0+    n = whiteNoiseId 'α' ar+    v = tRandId 'β' 0.25 1.0 tr+    e a b = envGen ar tr 1 0 1 DoNothing (envPerc a b)+    e1 = e 0.0005 0.055+    e2 = e 0.0005 0.075+    e3 = e 0.0005 0.4+    e4 = e 0.0005 0.283+    t1 = lfTri ar 330 0+    t2 = lfTri ar 185 0+    x1 = lpf n 7040 * 0.1 + v+    x2 = hpf x1 523+    m1 = t1 * e1 * 0.25 + t2 * e2 * 0.25+    m2 = x1 * e3 * 0.20 + x2 * e4 * 0.20+in pan2 (m1 + m2) 0 y
+ Help/Graph/jmcc-spe.hs view
@@ -0,0 +1,28 @@+-- spe (jmcc)+let rapf i = allpassN i 0.05 (X.randN 2 0 0.05) 4+    src = let t = impulse kr 9 0+              e = envGen kr t 0.1 0 1 DoNothing (envPerc 0.1 1)+              s = mce [00,03,02,07+                      ,08,32,16,18+                      ,00,12,24,32]+              f = midiCps (demand t 0 (dseq dinf s) + 32)+              rq = midiCps (lfNoise1 kr 1 * 36 + 110)+          in rlpf (lfSaw ar f 0 * e) rq 0.1+in iter 4 rapf src++-- spe (jmcc) ; monad+uid_st_eval (do+  let rapf i = do r <- replicateM 2 (randM 0 0.05)+                  return (allpassN i 0.05 (mce r) 4)+      src = do let t = impulse kr 9 0+                   e = envGen kr t 0.1 0 1 DoNothing (envPerc 0.1 1)+                   s = mce [00,03,02,07+                           ,08,32,16,18+                           ,00,12,24,32]+               n <- lfNoise1M kr 1+               m <- dseqM dinf s+               let f = midiCps (demand t 0 m + 32)+                   o = lfSaw ar f 0 * e+                   rq = midiCps (n * 36 + 110)+               return (rlpf o rq 0.1)+  chainM 4 rapf =<< src)
+ Help/Graph/jmcc-sprinkler-mouse.hs view
@@ -0,0 +1,11 @@+-- sprinkler mouse (jmcc) #1+let n = whiteNoise ar+    f = mouseX kr 0.2 50 Linear 0.2+    t = lfPulse kr f 0 0.25 * 0.1+in bpz2 (n * t)++-- sprinkler mouse (jmcc) #1 ; id+let n = whiteNoiseId 'α' ar+    f = mouseX kr 0.2 50 Linear 0.2+    t = lfPulse kr f 0 0.25 * 0.1+in bpz2 (n * t)
+ Help/Graph/jmcc-sprinkler.hs view
@@ -0,0 +1,12 @@+-- sprinkler (jmcc) #1+let f = lfPulse kr 0.09 0 0.16 * 10 + 7+    t = lfPulse kr f 0 0.25 * 0.1+    n = whiteNoise ar+in bpz2 (n * t)++-- sprinkler (jmcc) #1 ; id+let f = lfPulse kr 0.09 0 0.16 * 10 + 7+    t = lfPulse kr f 0 0.25 * 0.1+    n = whiteNoiseId 'α' ar+in bpz2 (n * t)+
+ Help/Graph/jmcc-strummable-guitar.hs view
@@ -0,0 +1,45 @@+-- strummable guitar (jmcc) #11+let strummable_guitar_str sc ix =+      let k = constant ix+          x = mouseX kr 0 1 Linear 0.2+          t = abs (hpz1 (x `greater_than` (0.25 + k * 0.1)))+          e = decay t 0.05+          n = pinkNoise ar * e+          dt = 1 / midiCps sc+          s = combL n dt dt 4+      in pan2 s (k * 0.2 - 0.5) 1+    scale = [52,57,62,67,71,76]+    strs = sum (zipWith strummable_guitar_str scale [0..])+in leakDC (lpf strs 12000) 0.995++-- strummable guitar (jmcc) #11 ; id+let strummable_guitar_str sc (ix,z) =+      let k = constant ix+          x = mouseX kr 0 1 Linear 0.2+          t = abs (hpz1 (x `greater_than` (0.25 + k * 0.1)))+          e = decay t 0.05+          n = pinkNoiseId z ar * e+          dt = 1 / midiCps sc+          s = combL n dt dt 4+      in pan2 s (k * 0.2 - 0.5) 1+    scale = [52,57,62,67,71,76]+    strs = sum (zipWith strummable_guitar_str scale (zip [0..] ['α'..]))+in leakDC (lpf strs 12000) 0.995++-- strummable guitar (jmcc) #11 ; event control+let f (_,g,_,y,z,o,_,_,p,_,_) =+      let e = decay (trig g controlDur) 0.05+          n = pinkNoise ar * e+          dt = 1 / unitCps p+          s = combL n dt dt ((y + 1) * 3)+      in pan2 s (o * 2 - 1) (0.5 + latch z g)+in leakDC (lpf (mix (voicer 16 f)) 12000) 0.995 * control kr "gain" 1++-- strummable guitar (jmcc) #11 ; event control ; id+let f (c,g,_,y,z,o,_,_,p,_,_) =+      let e = decay (trig g controlDur) 0.05+          n = pinkNoiseId c ar * e+          dt = 1 / unitCps p+          s = combL n dt dt ((y + 1) * 3)+      in pan2 s (o * 2 - 1) (0.5 + latch z g)+in leakDC (lpf (mix (voicer 16 f)) 12000) 0.995 * control kr "gain" 1
+ Help/Graph/jmcc-strummable-silk.hs view
@@ -0,0 +1,53 @@+-- strummable silk (jmcc) #11+let x = mouseX kr 0 1 Linear 0.2+    strummable_guitar_str ix =+      let n = 15+          k = constant ix+          tr = abs (hpz1 (x `greater_than` (0.25 + k * 0.07)))+          e = decay (impulse ar 14 0 * lag (trig tr 1) 0.2 * 0.01) 0.04+          freq0 = midiCps (([-2,0,3,5,7,10,12,15] !! ix) + 60)+          freq = mce (map ((*) freq0) [1 .. constant n + 1])+          param = klankSpec_mce freq (mce (replicate n 1)) (X.randN n 0.3 1)+      in pan2 (klank (pinkNoise ar * e) 1 0 1 param) (k * 0.2 - 0.5) 1+    strs = sum (map strummable_guitar_str [0..7])+    r_allpass i = allpassN i 0.1 (X.randN 2 0 0.05) 4+in iter 6 r_allpass (leakDC (lpf strs 12000) 0.995)++-- strummable silk (jmcc) #11 ; id+let x = mouseX kr 0 1 Linear 0.2+    strummable_guitar_str (ix,z) =+      let n = 15+          k = constant ix+          tr = abs (hpz1 (x `greater_than` (0.25 + k * 0.07)))+          e = decay (impulse ar 14 0 * lag (trig tr 1) 0.2 * 0.01) 0.04+          freq0 = midiCps (([-2,0,3,5,7,10,12,15] !! ix) + 60)+          freq = mce (map ((*) freq0) [1 .. constant n + 1])+          param = klankSpec_mce freq (mce (replicate n 1)) (X.randNId n z 0.3 1)+      in pan2 (klank (pinkNoiseId z ar * e) 1 0 1 param) (k * 0.2 - 0.5) 1+    strs = sum (map strummable_guitar_str (zip [0..7] ['α'..]))+    r_allpass z i = allpassN i 0.1 (X.randNId 2 (z,'ζ') 0 0.05) 4+    rev = useqId 'λ' 6 r_allpass+in rev (leakDC (lpf strs 12000) 0.995)++-- strummable silk (jmcc) #11 ; event control+let f (_,g,_,y,z,o,_,_,p,_,_) =+      let n = 15+          e = decay (impulse ar (linExp y 0 1 11 19) 0 * (z * 2 + lag (trig g 1) 0.2) * 0.04) 0.04+          plk = pinkNoise ar * e+          freq = mce (map ((*) (unitCps p)) [1 .. constant n + 1])+          param = klankSpec_mce freq (mce (replicate n 1)) (X.randN n 0.3 1)+      in pan2 (dynKlank plk 1 0 1 param) (o * 2 - 1) z+    r_allpass i = allpassN i 0.1 (X.randN 2 0 0.05) 4+in iter 6 r_allpass (leakDC (lpf (mix (voicer 16 f)) 12000) 0.995) * control kr "gain" 1++-- strummable silk (jmcc) #11 ; event control ; id+let f (c,g,_,y,z,o,_,_,p,_,_) =+      let n = 15+          e = decay (impulse ar (linExp y 0 1 11 19) 0 * (z * 2 + lag (trig g 1) 0.2) * 0.04) 0.04+          plk = pinkNoiseId c ar * e+          freq = mce (map ((*) (unitCps p)) [1 .. constant n + 1])+          param = klankSpec_mce freq (mce (replicate n 1)) (X.randNId n c 0.3 1)+      in pan2 (dynKlank plk 1 0 1 param) (o * 2 - 1) z+    r_allpass z i = allpassN i 0.1 (X.randNId 2 (z,'ζ') 0 0.05) 4+    rev = useqId 'λ' 6 r_allpass+in rev (leakDC (lpf (mix (voicer 16 f)) 12000) 0.995) * control kr "gain" 1
+ Help/Graph/jmcc-sweepy-noise.hs view
@@ -0,0 +1,15 @@+-- sweepy noise (jmcc) #6+let n = mce2 (whiteNoise ar) (whiteNoise ar)+    lfoDepth = mouseY kr 200 8000 Exponential 0.1+    lfoRate = mouseX kr 4 60 Exponential 0.1+    freq = lfSaw kr lfoRate 0 * lfoDepth + (lfoDepth * 1.2)+    filtered = rlpf (n * 0.03) freq 0.1+in combN filtered 0.3 0.3 2 + filtered++-- sweepy noise (jmcc) #6 ; id+let n = mce2 (whiteNoiseId 'α' ar) (whiteNoiseId 'β' ar)+    lfoDepth = mouseY kr 200 8000 Exponential 0.1+    lfoRate = mouseX kr 4 60 Exponential 0.1+    freq = lfSaw kr lfoRate 0 * lfoDepth + (lfoDepth * 1.2)+    filtered = rlpf (n * 0.03) freq 0.1+in combN filtered 0.3 0.3 2 + filtered
+ Help/Graph/jmcc-swept-resonant-noise.hs view
@@ -0,0 +1,55 @@+-- swept resonant noise (jmcc) #2 ; texture=overlap,4,5,5,inf+let flt src _ =+      let p = 10+          spec = klankSpec_mce+                 (X.linRandN p 80 10080 0)+                 (mce (replicate p 1))+                 (X.randN p 0.5 2.5)+      in klank src 1 0 1 spec+    n = whiteNoise ar * 0.007+    f = midiCps (fSinOsc kr (rand 0.1 0.3) 0 * rand 0 24 + rand 36 84)+    sw = resonz n f 0.1+in mceFill 2 (flt sw)++-- swept resonant noise (jmcc) #2 ; texture=overlap,4,5,5,inf ; id+let flt src z =+      let p = 10+          spec = klankSpec_mce+                 (X.linRandNId p z 80 10080 0)+                 (mce (replicate p 1))+                 (X.randNId p z 0.5 2.5)+      in klank src 1 0 1 spec+    n = whiteNoiseId 'α' ar * 0.007+    f = midiCps (fSinOsc kr (randId 'β' 0.1 0.3) 0 * randId 'γ' 0 24 + randId 'δ' 36 84)+    sw = resonz n f 0.1+in mce (map (flt sw) ['ε','ζ'])++-- swept resonant noise (jmcc) #2 ; event control+let f (_,g,x,y,z,_,_,_,_,_,_) =+      let flt src _ =+            let np = 10+                spec = klankSpec_mce+                  ((x + 0.5) * X.linRandN np 80 10080 0)+                  (mce (replicate np 1))+                  (X.randN np 0.5 2.5)+            in dynKlank src 1 0 1 spec+          f0 = (0.25 + y) * rand 0.1 0.3+          f1 = midiCps (fSinOsc kr f0 0 * rand 0 24 + rand 36 84)+          sw = resonz (whiteNoise ar * 0.007) f1 0.1+      in mceFill 2 (flt sw) * z * lag g 0.1+in mix (voicer 16 f) * control kr "gain" 1++-- swept resonant noise (jmcc) #2 ; event control ; id+let f (c,g,x,y,z,_,_,_,_,_,_) =+      let flt src k =+            let np = 10+                spec = klankSpec_mce+                  ((x + 0.5) * X.linRandNId np (c,k) 80 10080 0)+                  (mce (replicate np 1))+                  (X.randNId np (c,k) 0.5 2.5)+            in dynKlank src 1 0 1 spec+          f0 = (0.25 + y) * randId (c,'β') 0.1 0.3+          f1 = midiCps (fSinOsc kr f0 0 * randId (c,'γ') 0 24 + randId (c,'δ') 36 84)+          sw = resonz (whiteNoiseId (c,'α') ar * 0.007) f1 0.1+      in mce (map (flt sw) ['ε','ζ']) * z * lag g 0.1+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-synthetic-piano.hs view
@@ -0,0 +1,45 @@+-- synthetic piano (jmcc) #3 ; texture=overlap,6,0,6,inf+let n = iRand 36 90+    s = impulse ar (rand 0.1 0.5) (rand 0 1) * 0.1+    e = decay2 s 0.008 0.04+    c o = let n0 = lfNoise2 ar 3000+              dt = 1 / midiCps (n + o)+          in combL (n0 * e) dt dt 6+    l = ((n - 36) / 27) - 1+    c_ = sum_opt (map c [-0.05,0,0.04])+in pan2 c_ l 1++-- synthetic piano (jmcc) #3 ; texture=overlap,6,0,6,inf ; id+let n = iRandId 'α' 36 90+    f = randId 'β' 0.1 0.5+    ph = randId 'γ' 0 1+    s = impulse ar f ph * 0.1+    e = decay2 s 0.008 0.04+    c z o = let n0 = lfNoise2Id z ar 3000+                dt = 1 / midiCps (n + o)+            in combL (n0 * e) dt dt 6+    l = ((n - 36) / 27) - 1+    c_ = sum_opt (zipWith c ['δ'..] [-0.05,0,0.04])+in pan2 c_ l 1++-- synthetic piano (jmcc) #3 ; event-control+let f (_,g,_,y,z,_,_,_,p,_,_) =+      let e = decay2 (trig g controlDur) 0.008 (linLin y 0 1 0.02 0.06) * z * 2+          cmb o = let n0 = lfNoise2 ar 3000+                      dt = 1 / midiCps (p * 127 + o)+                  in combL (n0 * e) dt dt 6+          l = ((p * 127 - 36) / 27) - 1+          cmb_ = sum_opt (map cmb [-0.05,0,0.04])+      in pan2 cmb_ l (1 + z)+in mix (voicer 16 f) * control kr "gain" 1++-- synthetic piano (jmcc) #3 ; event-control ; id+let f (c,g,_,y,z,_,_,_,p,_,_) =+      let e = decay2 (trig g controlDur) 0.008 (linLin y 0 1 0.02 0.06) * z * 2+          cmb k o = let n0 = lfNoise2Id (c,k) ar 3000+                        dt = 1 / midiCps (p * 127 + o)+                    in combL (n0 * e) dt dt 6+          l = ((p * 127 - 36) / 27) - 1+          cmb_ = sum_opt (zipWith cmb ['δ'..] [-0.05,0,0.04])+      in pan2 cmb_ l (1 + z)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-tank.hs view
@@ -0,0 +1,91 @@+-- tank (jmcc) ; http://create.ucsb.edu/pipermail/sc-users/2004-April/009692.html+let s1 _ =+      let d = dust ar 0.2+          f = expRand 300 2200+          p = rand (-1) 1+      in pan2 (decay2 d 0.1 0.5 * 0.1 * cubed (fSinOsc ar f 0)) p 1+    s2 =+      let d = dust ar 0.01+          n = brownNoise ar+      in pan2 (decay2 d 0.04 0.3 * n) 0 1+    rev_f i =+      let l0 = localIn 2 ar (mce2 0 0) * 0.98+          l1 = onePole l0 0.33+          (l1l,l1r) = unmce2 l1+          l2 = rotate2 l1l l1r 0.23+          l3 = allpassN l2 0.05 (X.randN 2 0.01 0.05) 2+          l4 = delayN l3 0.3 (mce2 0.17 0.23)+          l5 = allpassN l4 0.05 (X.randN 2 0.03 0.15) 2+          l6 = leakDC l5 0.995+          l7 = l6 + i+      in mrg [l7,localOut l7]+    r_allpass i = allpassN i 0.03 (X.randN 2 0.005 0.02) 1+    s3 = s2 + mixFill 8 s1+in rev_f (iter 4 r_allpass s3)++-- tank (jmcc) ; http://create.ucsb.edu/pipermail/sc-users/2004-April/009692.html ; id+let s1 z _ =+      let d = dustId (z,'α') ar 0.2+          f = expRandId (z,'β') 300 2200+          p = randId (z,'γ') (-1) 1+      in pan2 (decay2 d 0.1 0.5 * 0.1 * cubed (fSinOsc ar f 0)) p 1+    s2 =+      let d = dustId 'δ' ar 0.01+          n = brownNoiseId 'ε' ar+      in pan2 (decay2 d 0.04 0.3 * n) 0 1+    rev_f i =+      let l0 = localIn 2 ar (mce2 0 0) * 0.98+          l1 = onePole l0 0.33+          (l1l,l1r) = unmce2 l1+          l2 = rotate2 l1l l1r 0.23+          l3 = allpassN l2 0.05 (X.randNId 2 'θ' 0.01 0.05) 2+          l4 = delayN l3 0.3 (mce2 0.17 0.23)+          l5 = allpassN l4 0.05 (X.randNId 2 'ι' 0.03 0.15) 2+          l6 = leakDC l5 0.995+          l7 = l6 + i+      in mrg [l7,localOut l7]+    r_allpass z i = allpassN i 0.03 (X.randNId 2 (z,'ζ') 0.005 0.02) 1+    s3 = s2 + mixFillId 'κ' 8 s1+in rev_f (useqId 'λ' 4 r_allpass s3)++-- tank (jmcc) ; event control+let s1 =+      let f (_,g,x,y,z,o,_,_,_,_,_) =+            let tr = trig g controlDur+                freq = linExp x 0 1 300 2200+            in pan2 (decay2 tr 0.1 (0.5 + y * 0.5) * 0.2 * cubed (fSinOsc ar freq 0)) (o * 2 - 1) z+      in mix (voicer 16 f) * control kr "gain" 1+    rev_f i =+      let l0 = localIn 2 ar (mce2 0 0) * 0.98+          l1 = onePole l0 0.33+          (l1l,l1r) = unmce2 l1+          l2 = rotate2 l1l l1r 0.23+          l3 = allpassN l2 0.05 (X.randN 2 0.01 0.05) 2+          l4 = delayN l3 0.3 (mce2 0.17 0.23)+          l5 = allpassN l4 0.05 (X.randN 2 0.03 0.15) 2+          l6 = leakDC l5 0.995+          l7 = l6 + i+      in mrg [l7,localOut l7]+    r_allpass i = allpassN i 0.03 (X.randN 2 0.005 0.02) 1+in rev_f (iter 4 r_allpass s1)++-- tank (jmcc) ; event control ; id+let s1 =+      let f (_,g,x,y,z,o,_,_,_,_,_) =+            let tr = trig g controlDur+                freq = linExp x 0 1 300 2200+            in pan2 (decay2 tr 0.1 (0.5 + y * 0.5) * 0.2 * cubed (fSinOsc ar freq 0)) (o * 2 - 1) z+      in mix (voicer 16 f) * control kr "gain" 1+    rev_f i =+      let l0 = localIn 2 ar (mce2 0 0) * 0.98+          l1 = onePole l0 0.33+          (l1l,l1r) = unmce2 l1+          l2 = rotate2 l1l l1r 0.23+          l3 = allpassN l2 0.05 (X.randNId 2 'θ' 0.01 0.05) 2+          l4 = delayN l3 0.3 (mce2 0.17 0.23)+          l5 = allpassN l4 0.05 (X.randNId 2 'ι' 0.03 0.15) 2+          l6 = leakDC l5 0.995+          l7 = l6 + i+      in mrg [l7,localOut l7]+    r_allpass z i = allpassN i 0.03 (X.randNId 2 (z,'ζ') 0.005 0.02) 1+in rev_f (useqId 'λ' 4 r_allpass s1)
+ Help/Graph/jmcc-theremin.hs view
@@ -0,0 +1,16 @@+-- theremin (jmcc) ; mouse control+let m = 7+    detune = 0+    x = mouseX kr 0 0.6 Linear 0.2+    y = mouseY kr 4000 200 Exponential 0.8+    f = y + detune+    f' = f + f * sinOsc ar m 0 * 0.02+    a = sinOsc ar f' 0 * x+in pan2 a 0 1++-- theremin (jmcc) ; event control+let f (_,w,x,y,z,o,rx,_,_,_,_) =+      let freq = lag (linExp y 0 1 4000 200) 0.8+          a = sinOsc ar (freq + freq * sinOsc ar (4 + 3 * rx) 0 * 0.02) 0 * x * 0.6 * lag w 0.2+      in pan2 a (o * 0.25) (0.5 + z)+in mix (voicer 16 f) * control kr "gain" 0.5
+ Help/Graph/jmcc-tremulate.hs view
@@ -0,0 +1,33 @@+-- tremulate (jmcc) #1 ; texture=xfade,0.5,2,inf+let f = rand 500 900+    o = fSinOsc ar (f * mce [1,1.2,1.5,1.8]) 0+    r = X.randN 4 30 90+    a = max 0 (lfNoise2 kr r) * 0.1+    l = X.randN 4 (-1) 1+in mix (pan2 o l a)++-- tremulate (jmcc) #1 ; texture=xfade,0.5,2,inf ; id+let f = randId 'α' 500 900+    o = fSinOsc ar (f * mce [1,1.2,1.5,1.8]) 0+    r = X.randNId 4 'β' 30 90+    a = max 0 (lfNoise2Id 'γ' kr r) * 0.1+    l = X.randNId 4 'δ' (-1) 1+in mix (pan2 o l a)++-- tremulate (jmcc) #1 ; event control+let f (_,w,x,_,z,o,rx,ry,_,_,_) =+      let s = fSinOsc ar ((x * 400 + 500) * mce [1,1.2,1.5,1.8]) 0+          r = X.randN 4 30 90+          a = max 0 (lfNoise2 kr (r * (0.75 + rx))) * z+          l = X.randN 4 (-1) 1+      in mix (pan2 s (l + (o * 2 - 1)) (a * lagUD w 0 (ry * 2)))+in combN (mix (voicer 16 f) * control kr "gain" 0.5) 0.1 0.1 1++-- tremulate (jmcc) #1 ; event control ; id+let f (_,g,x,_,z,o,rx,ry,_,_,_) =+      let s = fSinOsc ar ((x * 400 + 500) * mce [1,1.2,1.5,1.8]) 0+          r = X.randNId 4 'β' 30 90+          a = max 0 (lfNoise2Id 'γ' kr (r * (0.75 + rx))) * z+          l = X.randNId 4 'δ' (-1) 1+      in mix (pan2 s (l + (o * 2 - 1)) (a * lagUD g 0 (ry * 2)))+in combN (mix (voicer 16 f) * control kr "gain" 0.5) 0.1 0.1 1
+ Help/Graph/jmcc-uplink.hs view
@@ -0,0 +1,18 @@+-- uplink (jmcc) #2 ; texture=overlap,4,1,5,inf+let f _ = let p0 = lfPulse kr (rand0 20) 0 (rand0 1)+              p1 = lfPulse kr (rand0 4) 0 (rand0 1) * rand0 8000 + rand0 2000+          in p0 * p1+in pan2 (lfPulse ar (mixFill 2 f) 0 0.5 * 0.04) (rand (-0.8) 0.8) 1++-- uplink (jmcc) #2 ; texture=overlap,4,1,5,inf ; id+let f z _ = let p0 = lfPulse kr (rand0Id (z,'α') 20) 0 (rand0Id (z,'β') 1)+                p1 = lfPulse kr (rand0Id (z,'γ') 4) 0 (rand0Id (z,'δ') 1) * rand0Id (z,'ε') 8000 + rand0Id (z,'ζ') 2000+            in p0 * p1+in pan2 (lfPulse ar (mixFillId 'η' 2 f) 0 0.5 * 0.04) (randId 'θ' (-0.8) 0.8) 1++-- uplink (jmcc) #2 ; texture=overlap,4,1,5,inf ; id+let r = rand0Id+    p0 = lfPulse kr (r 'α' 20) 0 (r 'β' 1)+    p1 = lfPulse kr (r 'γ' 4) 0 (r 'δ' 1) * r 'ε' 8000 + r 'ζ' 2000+    f = mix (Protect.uclone_all 'η' 2 (p0 * p1))+in pan2 (lfPulse ar f 0 0.5 * 0.04) (randId 'θ' (-0.8) 0.8) 1
+ Help/Graph/jmcc-what-was-i-thinking.hs view
@@ -0,0 +1,25 @@+-- what was i thinking? (jmcc) #2+let p = pulse ar f (lfNoise1 kr 0.157 * 0.4 + 0.5) * 0.04+    i = lfPulse ar 0.1 0 0.05 * impulse ar 8 0 * 500+    d = decay i 2+    f = max (sinOsc kr 4 0 + 80) d+    z = rlpf p (lfNoise1 kr 0.2 * 2000 + 2400) 0.2+    c x _ = combL (x * 0.6) 0.06 (lfNoise1 kr (rand 0 0.3) * 0.025 + 0.035) 1+in z + mce [mixFill 2 (c z),mixFill 2 (c z)]++-- what was i thinking? (jmcc) #2 ; monad+uid_st_eval (do+  n0 <- lfNoise1M kr 0.2+  n1 <- lfNoise1M kr 0.157+  let p = pulse ar f (n1 * 0.4 + 0.5) * 0.04+      i = lfPulse ar 0.1 0 0.05 * impulse ar 8 0 * 500+      d = decay i 2+      f = max (sinOsc kr 4 0 + 80) d+      z = rlpf p (n0 * 2000 + 2400) 0.2+      c x = do r <- randM 0 0.3+               n <- lfNoise1M kr r+               return (combL x 0.06 (n * 0.025 + 0.035) 1)+      y = z * 0.6+  z0 <- replicateM 2 (c y)+  z1 <- replicateM 2 (c y)+  return (z + mce [sum z0,sum z1]))
+ Help/Graph/jmcc-why-supercollider.hs view
@@ -0,0 +1,12 @@+-- why supercollider (jmcc) #0+let s = mixFill 10 (\_ -> resonz (dust ar 0.2 * 50) (rand 200 3200) 0.003)+    y = mixFill 7 (\_ -> combL (delayN s 0.048 0.048) 0.1 (lfNoise1 kr (rand 0 0.1) * 0.04 + 0.05) 15)+    f i = allpassN i 0.05 (X.randN 2 0 0.05) 1+in s + 0.2 * iter 4 f y++-- why supercollider (jmcc) #0 ; id+let s = mixFillId 'α' 10 (\z _ -> resonz (dustId z ar 0.2 * 50) (randId z 200 3200) 0.003)+    y = mixFillId 'β' 7 (\z _ -> combL (delayN s 0.048 0.048) 0.1 (lfNoise1Id z kr (randId z 0 0.1) * 0.04 + 0.05) 15)+    f z i = allpassN i 0.05 (mce2 (randId (z,'γ') 0 0.05) (randId (z,'δ') 0 0.05)) 1+    x = foldl (&) y (map f (id_seq 4 'ε'))+in s + 0.2 * x
+ Help/Graph/jmcc-wind-metals.hs view
@@ -0,0 +1,67 @@+-- wind metals (jmcc) ; texture=overlap,5,2,12,inf+let n = 6+    base = expRand 60 4000+    exc = mceFill 2 (\_ -> brownNoise ar) * 0.007 * max 0 (lfNoise1 kr (expRand 0.125 0.5) * 0.75 + 0.25)+    k = klankSpec_mce (mceFill n (\_ -> rand base (base + rand 500 8000))) (mceConst n 1) (mceFill n (\_ -> rand 0.1 2))+in softClip (klank exc 1 0 1 k * 0.1)++-- wind metals (jmcc) ; texture=overlap,5,2,12,inf ; monad+uid_st_eval (do+  let n = 6+  base <- expRandM 60 4000+  rng <- randM 500 8000+  n0 <- replicateM 2 (brownNoiseM ar)+  r0 <- expRandM 0.125 0.5+  n1 <- lfNoise1M kr r0+  f <- sequence (replicate n (randM base (base + rng)))+  dt <- sequence (replicate n (randM 0.1 2))+  let exc = mce n0 * 0.007 * max 0 (n1 * 0.75 + 0.25)+      k = klankSpec f (replicate n 1) dt+      s = klank exc 1 0 1 k+  return (softClip (s * 0.1)))++-- wind metals (jmcc) ; texture=overlap,5,2,12,inf ; id+let n = 6+    base = expRandId 'α' 60 4000+    rng = randId 'β' 500 8000+    n0 = mce2 (brownNoiseId 'γ' ar) (brownNoiseId 'δ' ar)+    r0 = expRandId 'ε' 0.125 0.5+    n1 = lfNoise1Id 'ζ' kr r0+    f = X.randNId n 'η' base (base + rng)+    dt = X.randNId n 'θ' 0.1 2+    exc = n0 * 0.007 * max 0 (n1 * 0.75 + 0.25)+    k = klankSpec_mce f (mce (replicate n 1)) dt+    s = klank exc 1 0 1 k+in softClip (s * 0.1)++-- wind metals (jmcc) ; event-control+let f (c,g,x,y,z,_,_,_,_,_,_) =+      let n = 6+          base = linExp x 0 1 60 4000+          rng = tRand 500 8000 g+          n0 = mce2 (brownNoise ar) (brownNoise ar)+          r0 = tExpRand 0.125 0.5 g+          n1 = lfNoise1 kr r0+          fq = X.tRandN n base (base + rng) g+          dt = X.tRandN n 0.1 2 g+          exc = n0 * 0.01 * z * lagUD g y 2+          k = klankSpec_mce fq (mce (replicate n 1)) dt+          s = dynKlank exc 1 0 1 k+      in softClip (dynKlank exc 1 0 1 k)+in mix (voicer 16 f) * control kr "gain" 1++-- wind metals (jmcc) ; event-control ; id+let f (c,g,x,y,z,_,_,_,_,_,_) =+      let n = 6+          base = linExp x 0 1 60 4000+          rng = tRandId (c,'β') 500 8000 g+          n0 = mce2 (brownNoiseId (c,'γ') ar) (brownNoiseId (c,'δ') ar)+          r0 = tExpRandId 'ε' 0.125 0.5 g+          n1 = lfNoise1Id 'ζ' kr r0+          fq = X.tRandNId n 'η' base (base + rng) g+          dt = X.tRandNId n 'θ' 0.1 2 g+          exc = n0 * 0.01 * z * lagUD g y 2+          k = klankSpec_mce fq (mce (replicate n 1)) dt+          s = dynKlank exc 1 0 1 k+      in softClip (dynKlank exc 1 0 1 k)+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jmcc-zizle.hs view
@@ -0,0 +1,39 @@+-- zizle (jmcc) #Sc3d1.5 ; texture=overlap,4,4,12,inf+let a f = let fm = mce2 (rand 0.7 1.3) 1+              ph = mce2 (rand 0 two_pi) (rand 0 two_pi)+          in mix (sinOsc ar (f * fm) ph * 0.1)+    a1 = max (a (expRand 0.3 8)) 0+    a2 = abs (a (expRand 6 24))+    o = sinOsc ar (midiCps (rand 24 108)) (rand 0 two_pi)+in pan2 (o * a1 * a2) (rand2 1) 1++-- zizle (jmcc) #Sc3d1.5 ; texture=overlap,4,4,12,inf ; id+let a z f = let fm = mce2 (randId (z,'α') 0.7 1.3) 1+                ph = mce2 (randId (z,'β') 0 two_pi) (randId (z,'γ') 0 two_pi)+            in mix (sinOsc ar (f * fm) ph * 0.1)+    a1 = max (a 'δ' (expRandId 'ε' 0.3 8)) 0+    a2 = abs (a 'ζ' (expRandId 'η' 6 24))+    o = sinOsc ar (midiCps (randId 'θ' 24 108)) (randId 'ι' 0 two_pi)+in pan2 (o * a1 * a2) (rand2Id 'κ' 1) 1++-- zizle (jmcc) #Sc3d1.5 ; event control+let f (_,g,x,y,z,o,_,_,_,_,_) =+      let a f0 = let fm = mce2 (tRand 0.7 1.3 g) 1+                     ph = mce2 (tRand 0 two_pi g) (tRand 0 two_pi g)+                 in mix (sinOsc ar (f0 * fm) ph)+          a1 = max (a (tExpRand 0.3 8 g)) 0+          a2 = abs (a (tExpRand 6 24 g))+          sig = sinOsc ar (midiCps (x * 84 + 24)) (tRand 0 two_pi g)+      in pan2 (sig * a1 * a2) (o * 2 - 1) (z * lagUD g (y * 0.01) (y * 2))+in mix (voicer 16 f) * control kr "gain" 1++-- zizle (jmcc) #Sc3d1.5 ; event control ; id+let f (c,g,x,y,z,o,_,_,_,_,_) =+      let a e f0 = let fm = mce2 (tRandId (e,'α') 0.7 1.3 g) 1+                       ph = mce2 (tRandId (e,'β') 0 two_pi g) (tRandId (e,'γ') 0 two_pi g)+                   in mix (sinOsc ar (f0 * fm) ph)+          a1 = max (a (c,'δ') (tExpRandId (c,'ε') 0.3 8 g)) 0+          a2 = abs (a (c,'ζ') (tExpRandId (c,'η') 6 24 g))+          sig = sinOsc ar (midiCps (x * 84 + 24)) (tRandId 'ι' 0 two_pi g)+      in pan2 (sig * a1 * a2) (o * 2 - 1) (z * lagUD g (y * 0.01) (y * 2))+in mix (voicer 16 f) * control kr "gain" 1
+ Help/Graph/jp-record-scratcher.hs view
@@ -0,0 +1,14 @@+-- record scratcher (jp) ; requires=buf+let (buf, nc) = (control kr "buf" 0, 2)+    dup a = mce2 a a+    d = Envelope [0, 1, 0] [0.1, 0.1] [EnvSin] (Just 1) (Just 0) 0+    e = envGen kr 1 0.5 0 1 RemoveSynth d+    x = mouseX kr (-10) 10 Linear 0.2+    dx = x - delayN x 0.1 0.1+    bdx = mouseButton kr 1 0 0.3 + dx+    bdxr = bdx * bufRateScale kr buf+    scr = playBuf nc ar buf bdxr 0 0 Loop DoNothing+in dup (scr * e)++---- ; buffer setup+withSc3 (async (b_allocRead 0 (sfResolve "pf-c5.aif") 0 0))
+ Help/Graph/ljp-one-line.hs view
@@ -0,0 +1,6 @@+-- one-line (ljp)+let lfs = lfSaw ar (mce2 1 0.99) (mce2 0 0.6) * 2000 + 2000+    lfs_t = trunc lfs (mce2 400 600) * mce2 1 (-1)+    f = onePole (mix lfs_t) 0.98+in pan2 (sinOsc ar f 0) 0 0.1+
+ Help/Graph/lkp-chaos-engine.hs view
@@ -0,0 +1,5 @@+-- http://sccode.org/1-5aJ -- chaos engine hum+let o1 = sinOsc kr 101 (saw kr 0.12345 * 678 + 9) * 0.2 + 0.8+    o2 = pulse kr (mce2 25 25.5) 0.25 * 0.125 - 0.25+    o3 = sinOsc kr (mce2 50 51) 0 * o1 + o2+in sinOsc ar (10 + 50 * o3) 0 * 0.5
+ Help/Graph/mn-k2ws.hs view
@@ -0,0 +1,21 @@+-- https://www.listarc.bham.ac.uk/lists/sc-users/msg21341.html (mn)+let fc = 400 + (lfNoise2 ar (mce2 1 2) `in_range` (100,200))+    fm = lfNoise0 ar 5 `in_range` (100,200)+    i = lfNoise1 ar 10 `in_range` (1,20)+    x = sinOsc ar (fc + (sinOsc ar fm 0 * i * fm)) 0 * 0.5+    rf = sinOsc ar (lfNoise1 ar 1 `in_range` (0.1,1)) 0 `in_range` (1000,2000)+    rq = lfNoise1 ar 1 `in_range` (0.5,10)+    a = rlpf x rf rq+    ph = a * (lfNoise1 ar 0.1 `in_range` (1.0,4.0)) * 4 * pi+in sinOsc ar 0.2 ph * 0.1++-- https://www.listarc.bham.ac.uk/lists/sc-users/msg21341.html (mn) ; id+let fc = 400 + (lfNoise2Id 'α' ar (mce2 1 2) `in_range` (100,200))+    fm = lfNoise0Id 'β' ar 5 `in_range` (100,200)+    i = lfNoise1Id 'γ' ar 10 `in_range` (1,20)+    x = sinOsc ar (fc + (sinOsc ar fm 0 * i * fm)) 0 * 0.5+    rf = sinOsc ar (lfNoise1Id 'δ' ar 1 `in_range` (0.1,1)) 0 `in_range` (1000,2000)+    rq = lfNoise1Id 'ε' ar 1 `in_range` (0.5,10)+    a = rlpf x rf rq+    ph = a * (lfNoise1Id 'ζ' ar 0.1 `in_range` (1.0,4.0)) * 4 * pi+in sinOsc ar 0.2 ph * 0.1
+ Help/Graph/mp-rm-octaver.hs view
@@ -0,0 +1,7 @@+-- rm-octaver (miller puckette) ; http://crca.ucsd.edu/~msp/techniques/latest/book-html/node77.html+let defaultPitch x = pitch x 440 60 4000 100 16 1 0.01 0.5 1 0+    rm_octaver i =+      let p = defaultPitch i+          [f,tr] = mceChannels p+      in lag3 tr 0.1 * sinOsc ar (f * 0.5) 0 * i + i+in rm_octaver (soundIn (control kr "in" 0))
+ Help/Graph/my-mouse.hs view
@@ -0,0 +1,6 @@+-- https://mohayonao.github.io/CoffeeCollider/#mouse.coffee (mohayonao) http://the.mohayonao.com/+let freq = mouseY kr 100 1000 Exponential 0.1+    freq1 = freq * mouseX kr 2 0.5 Linear 2.5+    freq2 = freq * mouseX kr 0.5 2 Linear 2.5+    feedback = mouseButton kr 0 pi 5+in sinOscFB ar (mce2 freq1 freq2) feedback * 0.1
+ Help/Graph/np-pebble-beach.hs view
@@ -0,0 +1,47 @@+-- pebble beach (np) ; http://sccode.org/1-u ; requires 'scsynth -u 57110 -m 32768'+let bg_f k =+      let sc = 0.4 + (k * 0.07)+          fr = range 3100 4900 (lag (lfNoise0 kr 21.8) 0.7) * sc+          am = range 0 1 (lag (lfNoise1 kr 5.227) 5.374)+      in bpf (pinkNoise ar * 0.4) fr 0.1 * am+    fg_f df tf _ =+      let d = dust ar (df * rand 0.8 1.2) * 50+          l = exprange 800 900 (sinOsc kr 2.2 0)+          r = exprange 2600 2900 (sinOsc kr 5.228 0)+          z = resonz d (tRand l r d) (tRand 0.03 0.08 d)+          t = lagUD (range 2 0.5 (saw kr tf)) 0.6 2.8+          o = z * t+      in o + combL o 0.8 (rand 0.2 0.8) (lchoose [-4,4])+    pebble_beach _ =+      let bg' = let am = range 0 1 (lag (lfNoise0 kr 34) 1.4)+                in brownNoise ar * 0.06 * am+          bg = bg' + mixFill 20 bg_f * 0.6+          tf = range 0.122 0.24 (sinOsc kr 0.17 0)+          df = exprange 1 700 (lfTri kr tf 0) * exprange 1 0.2 (lfTri kr tf 0)+          fg = mixFill 50 (fg_f df tf) * 0.2+      in (bg + fg) * line kr 0 1 1.2 DoNothing+in mce2 (pebble_beach ()) (pebble_beach ())++-- pebble beach (np) ; http://sccode.org/1-u ; requires 'scsynth -u 57110 -m 32768' ; id+let bg_f k =+      let sc = 0.4 + (k * 0.07)+          fr = range 3100 4900 (lag (lfNoise0Id 'α' kr 21.8) 0.7) * sc+          am = range 0 1 (lag (lfNoise1Id 'α' kr 5.227) 5.374)+      in bpf (pinkNoiseId 'α' ar * 0.4) fr 0.1 * am+    fg_f df tf =+      let d = dustId 'α' ar (df * randId 'α' 0.8 1.2) * 50+          l = exprange 800 900 (sinOsc kr 2.2 0)+          r = exprange 2600 2900 (sinOsc kr 5.228 0)+          z = resonz d (tRandId 'α' l r d) (tRandId 'α' 0.03 0.08 d)+          t = lagUD (range 2 0.5 (saw kr tf)) 0.6 2.8+          o = z * t+      in o + combL o 0.8 (randId 'α' 0.2 0.8) (lchooseId 'α' [-4,4])+    pebble_beach j =+      let bg' = let am = range 0 1 (lag (lfNoise0Id 'α' kr 34) 1.4)+                in brownNoiseId 'α' ar * 0.06 * am+          bg = bg' + sum (Protect.uprotect_seq (const False) j (map bg_f [0..19])) * 0.6+          tf = range 0.122 0.24 (sinOsc kr 0.17 0)+          df = exprange 1 700 (lfTri kr tf 0) * exprange 1 0.2 (lfTri kr tf 0)+          fg = mix (Protect.uclone_all j 50 (fg_f df tf)) * 0.2+      in (bg + fg) * line kr 0 1 1.2 DoNothing+in mce2 (pebble_beach 'α') (pebble_beach 'β')
+ Help/Graph/nv-ml-2014-06-03.hs view
@@ -0,0 +1,7 @@+-- sc-users, 2014-06-03 (nv) ; https://twitter.com/headcube/status/474064500564324352 (nv)+let y = mouseY kr 1 100 Linear 0.2+    x = mouseX kr 50 400 Exponential 0.2+    i = decay (impulse ar 0.5 0) 0.1+    i' = sin (bpf (i * y) 50 1)+    repl n = mce . replicate n+in repl 2 (pluck i' (lfSaw ar 10000 0) 0.1 (1 / x) 4 0.5)
+ Help/Graph/nv-tw-01.hs view
@@ -0,0 +1,15 @@+-- http://sccode.org/1-V (nv) L1+let a = mceFill 2 (\_ -> pinkNoise ar)+    nd i =+        let n = lfNoise1 kr (rand 0 0.05)+            f = linExp n (-1) 1 40 15000+        in bBandStop i f (expRand 0.1 2)+in lpf (iter 50 nd a) 100000++-- http://sccode.org/1-V (nv) L1 ; id+let a = mce2 (pinkNoiseId 'α' ar) (pinkNoiseId 'β' ar)+    nd z i =+        let n = lfNoise1Id (z,'γ') kr (randId (z,'δ') 0 0.05)+            f = linExp n (-1) 1 40 15000+        in bBandStop i f (expRandId (z,'ε') 0.1 2)+in lpf (useqId 'ζ' 50 nd a) 100000
+ Help/Graph/nv-tw-2013-01-11.hs view
@@ -0,0 +1,21 @@+-- https://twitter.com/headcube/status/289761321065541633 (nv)+let nc = 80+    i = inFeedback nc 20+    n = mceFill nc (\_ -> lfNoise1 kr 0.001 + 1) / constant nc+    j = combL (lpf i 2000) 1 n 0.05+    d = mceFill nc (\_ -> dust2 ar 0.01)+    x = sin (j + d)+in mceConcat [splay x 1 1 0 True+             ,mce (replicate 18 0)+             ,(x - mceRotate 1 x) / 2]++-- https://twitter.com/headcube/status/289761321065541633 (nv) ; id+let nc = 80+    i = inFeedback nc 20+    n = mceFillInt nc (\z -> lfNoise1Id z kr 0.001 + 1) / constant nc+    j = combL (lpf i 2000) 1 n 0.05+    d = mceFillInt nc (\z -> dust2Id z ar 0.01)+    x = sin (j + d)+in mceConcat [splay x 1 1 0 True+             ,mce (replicate 18 0)+             ,(x - mceRotate 1 x) / 2]
+ Help/Graph/nv-tw-2013-12-04.hs view
@@ -0,0 +1,10 @@+-- https://twitter.com/headcube/status/408145586970324992 (nv)+let mean l = sum l / fromIntegral (length l)+    f j =+      let i = j + 1+          a = saw ar ((1 / i + 1) / 6)+          p = pluck a a 1 (1 / i / (3 - lfPulse ar (1 / i) 0 0.5) / 30) 9 (0.9 / i)+          x = (0.5 ** i) * p+          o = sinOsc ar 2 0 + mce2 4 9+      in combC x 1 (o * 0.001) 0 - x+in mean (map f [0 .. 8]) / 9
+ Help/Graph/nv-tw-2014-02-21.hs view
@@ -0,0 +1,16 @@+-- nv ; https://twitter.com/headcube/status/437094206767513600+let x = impulse ar 0.05 0+    f i =+      let n = lfNoise2 kr+          a = allpassL (leakDC i 0.995) 4 ((8 ** n 0.1) / 2) 8 * 1.2+      in tanh (lpf a ((8 ** n (mce2 (rand 0 0.1) (rand 0 0.1))) * 2500))+in ugen_optimise_ir_rand (mixFill 4 (\_ -> iter 20 f x * 5))++-- nv ; https://twitter.com/headcube/status/437094206767513600 ; id+let x = impulse ar 0.05 0+    f i =+      let n e = lfNoise2Id e kr+          a = allpassL (leakDC i 0.995) 4 ((8 ** n 'α' 0.1) / 2) 8 * 1.2+      in tanh (lpf a ((8 ** n 'β' (mce2 (randId 'γ' 0 0.1) (randId 'δ' 0 0.1))) * 2500))+    y z = Protect.useq_all z 20 f x * 5+in ugen_optimise_ir_rand (mix (mceFillInt 4 y))
+ Help/Graph/nv-tw-40.hs view
@@ -0,0 +1,18 @@+-- http://sccode.org/1-V (nv) [Line 40]+let nd i =+        let t = (0.6 ** i) * 40 * impulse ar ((2 ** i) / 32) (1/2)+            f = (4 ** lfNoise0 kr (1/16)) * 300+        in sin (rlpf t f 5e-3)+    x = splay (mceFill 8 nd) 1 1 0 True+    r u = let (p,q) = mce2c u in freeVerb2 p q 0.1 1 1+in r (r x)++-- http://sccode.org/1-V (nv) [Line 40] ; id+let nd z =+        let i = constant z+            t = (0.6 ** i) * 40 * impulse ar ((2 ** i) / 32) (1/2)+            f = (4 ** lfNoise0Id z kr (1/16)) * 300+        in sin (rlpf t f 5e-3)+    x = splay (mce (map nd [0::Int .. 7])) 1 1 0 True+    r u = let (p,q) = mce2c u in freeVerb2 p q 0.1 1 1+in r (r x)
+ Help/Graph/nv-tw-41.hs view
@@ -0,0 +1,15 @@+-- https://swiki.hfbk-hamburg.de/MusicTechnology/899 (nv) [Line 41]+let n i =+      let f = 1.9 ** i / 128+          p = mceFill 2 (\_ -> pinkNoise ar)+          b = 4 ** lfNoise2 kr (1.2 ** i / 16)+      in bpf p (b * 300) 0.15 * (5 ** lfNoise2 ar f / (i + 8) * 20)+in splay (mixFill 15 n) 1 0.5 0 True++-- https://swiki.hfbk-hamburg.de/MusicTechnology/899 (nv) [Line 41] ; id+let n z i =+      let f = 1.9 ** i / 128+          p = mce2 (pinkNoiseId (z,'α') ar) (pinkNoiseId (z,'β') ar)+          b = 4 ** lfNoise2Id z kr (1.2 ** i / 16)+      in bpf p (b * 300) 0.15 * (5 ** lfNoise2Id z ar f / (i + 8) * 20)+in splay (mixFillId 'γ' 15 n) 1 0.5 0 True
+ Help/Graph/nv-tw-43.hs view
@@ -0,0 +1,8 @@+-- https://swiki.hfbk-hamburg.de/MusicTechnology/899 (nv) L43+let k = 2+    o = lfSaw ar (mce2 102 101) 0+    f i =+      let x = impulse ar 1 (i / 10) + impulse ar 0 0+          d = latch (((1.015 ** sweep ar 0 1 * 64) `modE` 1 + 1) * 200) x+      in pluck o x 1 (1 / d) 4 0.2+in mceMean (mceFill k f) * 0.25
+ Help/Graph/nv-tw-52.hs view
@@ -0,0 +1,24 @@+-- nv 52 https://swiki.hfbk-hamburg.de/MusicTechnology/899+let y = [[256,144],[128,72],[256,144],[128,162],[256,144],[128,450],[256,144],[128,648],[256,144],[216,72],[256,144],[216,162],[256,144],[216,450],[256,144],[216,648],[256,144],[320,72],[256,144],[320,162],[256,144],[320,450],[256,144],[320,648],[256,144],[432,72],[256,144],[432,162],[256,144],[432,450],[256,144],[432,648],[256,243],[128,72],[256,243],[128,162],[256,243],[128,450],[256,243],[128,648],[256,243],[216,72],[256,243],[216,162],[256,243],[216,450],[256,243],[216,648],[256,243],[320,72],[256,243],[320,162],[256,243],[320,450],[256,243],[320,648],[256,243],[432,72],[256,243],[432,162],[256,243],[432,450],[256,243],[432,648],[256,360],[128,72],[256,360],[128,162],[256,360],[128,450],[256,360],[128,648],[256,360],[216,72],[256,360],[216,162],[256,360],[216,450],[256,360],[216,648],[256,360],[320,72],[256,360],[320,162],[256,360],[320,450],[256,360],[320,648],[256,360],[432,72],[256,360],[432,162],[256,360],[432,450],[256,360],[432,648],[256,486],[128,72],[256,486],[128,162],[256,486],[128,450],[256,486],[128,648],[256,486],[216,72],[256,486],[216,162],[256,486],[216,450],[256,486],[216,648],[256,486],[320,72],[256,486],[320,162],[256,486],[320,450],[256,486],[320,648],[256,486],[432,72],[256,486],[432,162],[256,486],[432,450],[256,486],[432,648],[324,144],[128,72],[324,144],[128,162],[324,144],[128,450],[324,144],[128,648],[324,144],[216,72],[324,144],[216,162],[324,144],[216,450],[324,144],[216,648],[324,144],[320,72],[324,144],[320,162],[324,144],[320,450],[324,144],[320,648],[324,144],[432,72],[324,144],[432,162],[324,144],[432,450],[324,144],[432,648],[324,243],[128,72],[324,243],[128,162],[324,243],[128,450],[324,243],[128,648],[324,243],[216,72],[324,243],[216,162],[324,243],[216,450],[324,243],[216,648],[324,243],[320,72],[324,243],[320,162],[324,243],[320,450],[324,243],[320,648],[324,243],[432,72],[324,243],[432,162],[324,243],[432,450],[324,243],[432,648],[324,360],[128,72],[324,360],[128,162],[324,360],[128,450],[324,360],[128,648],[324,360],[216,72],[324,360],[216,162],[324,360],[216,450],[324,360],[216,648],[324,360],[320,72],[324,360],[320,162],[324,360],[320,450],[324,360],[320,648],[324,360],[432,72],[324,360],[432,162],[324,360],[432,450],[324,360],[432,648],[324,486],[128,72],[324,486],[128,162],[324,486],[128,450],[324,486],[128,648],[324,486],[216,72],[324,486],[216,162],[324,486],[216,450],[324,486],[216,648],[324,486],[320,72],[324,486],[320,162],[324,486],[320,450],[324,486],[320,648],[324,486],[432,72],[324,486],[432,162],[324,486],[432,450],[324,486],[432,648],[128,96],[160,96],[128,96],[160,216],[128,96],[160,600],[128,96],[160,864],[128,96],[270,96],[128,96],[270,216],[128,96],[270,600],[128,96],[270,864],[128,96],[400,96],[128,96],[400,216],[128,96],[400,600],[128,96],[400,864],[128,96],[540,96],[128,96],[540,216],[128,96],[540,600],[128,96],[540,864],[128,162],[160,96],[128,162],[160,216],[128,162],[160,600],[128,162],[160,864],[128,162],[270,96],[128,162],[270,216],[128,162],[270,600],[128,162],[270,864],[128,162],[400,96],[128,162],[400,216],[128,162],[400,600],[128,162],[400,864],[128,162],[540,96],[128,162],[540,216],[128,162],[540,600],[128,162],[540,864],[128,240],[160,96],[128,240],[160,216],[128,240],[160,600],[128,240],[160,864],[128,240],[270,96],[128,240],[270,216],[128,240],[270,600],[128,240],[270,864],[128,240],[400,96],[128,240],[400,216],[128,240],[400,600],[128,240],[400,864],[128,240],[540,96],[128,240],[540,216],[128,240],[540,600],[128,240],[540,864],[128,324],[160,96],[128,324],[160,216],[128,324],[160,600],[128,324],[160,864],[128,324],[270,96],[128,324],[270,216],[128,324],[270,600],[128,324],[270,864],[128,324],[400,96],[128,324],[400,216],[128,324],[400,600],[128,324],[400,864],[128,324],[540,96],[128,324],[540,216],[128,324],[540,600],[128,324],[540,864],[162,96],[160,96],[162,96],[160,216],[162,96],[160,600],[162,96],[160,864],[162,96],[270,96],[162,96],[270,216],[162,96],[270,600],[162,96],[270,864],[162,96],[400,96],[162,96],[400,216],[162,96],[400,600],[162,96],[400,864],[162,96],[540,96],[162,96],[540,216],[162,96],[540,600],[162,96],[540,864],[162,162],[160,96],[162,162],[160,216],[162,162],[160,600],[162,162],[160,864],[162,162],[270,96],[162,162],[270,216],[162,162],[270,600],[162,162],[270,864],[162,162],[400,96],[162,162],[400,216],[162,162],[400,600],[162,162],[400,864],[162,162],[540,96],[162,162],[540,216],[162,162],[540,600],[162,162],[540,864],[162,240],[160,96],[162,240],[160,216],[162,240],[160,600],[162,240],[160,864],[162,240],[270,96],[162,240],[270,216],[162,240],[270,600],[162,240],[270,864],[162,240],[400,96],[162,240],[400,216],[162,240],[400,600],[162,240],[400,864],[162,240],[540,96],[162,240],[540,216],[162,240],[540,600],[162,240],[540,864],[162,324],[160,96],[162,324],[160,216],[162,324],[160,600],[162,324],[160,864],[162,324],[270,96],[162,324],[270,216],[162,324],[270,600],[162,324],[270,864],[162,324],[400,96],[162,324],[400,216],[162,324],[400,600],[162,324],[400,864],[162,324],[540,96],[162,324],[540,216],[162,324],[540,600],[162,324],[540,864]]+    f = duty ar (1/5) 0 DoNothing (dseq 1 (mce (map mce y)))+    s = varSaw ar f 0 0.9 * lfPulse ar 5 0 0.5+in gVerb (mix s) 99 5 0.5 0.5 15.0 1.0 0.7 0.5 300.0 / 10++-- nv 52 https://swiki.hfbk-hamburg.de/MusicTechnology/899 ; id+let y = [[256,144],[128,72],[256,144],[128,162],[256,144],[128,450],[256,144],[128,648],[256,144],[216,72],[256,144],[216,162],[256,144],[216,450],[256,144],[216,648],[256,144],[320,72],[256,144],[320,162],[256,144],[320,450],[256,144],[320,648],[256,144],[432,72],[256,144],[432,162],[256,144],[432,450],[256,144],[432,648],[256,243],[128,72],[256,243],[128,162],[256,243],[128,450],[256,243],[128,648],[256,243],[216,72],[256,243],[216,162],[256,243],[216,450],[256,243],[216,648],[256,243],[320,72],[256,243],[320,162],[256,243],[320,450],[256,243],[320,648],[256,243],[432,72],[256,243],[432,162],[256,243],[432,450],[256,243],[432,648],[256,360],[128,72],[256,360],[128,162],[256,360],[128,450],[256,360],[128,648],[256,360],[216,72],[256,360],[216,162],[256,360],[216,450],[256,360],[216,648],[256,360],[320,72],[256,360],[320,162],[256,360],[320,450],[256,360],[320,648],[256,360],[432,72],[256,360],[432,162],[256,360],[432,450],[256,360],[432,648],[256,486],[128,72],[256,486],[128,162],[256,486],[128,450],[256,486],[128,648],[256,486],[216,72],[256,486],[216,162],[256,486],[216,450],[256,486],[216,648],[256,486],[320,72],[256,486],[320,162],[256,486],[320,450],[256,486],[320,648],[256,486],[432,72],[256,486],[432,162],[256,486],[432,450],[256,486],[432,648],[324,144],[128,72],[324,144],[128,162],[324,144],[128,450],[324,144],[128,648],[324,144],[216,72],[324,144],[216,162],[324,144],[216,450],[324,144],[216,648],[324,144],[320,72],[324,144],[320,162],[324,144],[320,450],[324,144],[320,648],[324,144],[432,72],[324,144],[432,162],[324,144],[432,450],[324,144],[432,648],[324,243],[128,72],[324,243],[128,162],[324,243],[128,450],[324,243],[128,648],[324,243],[216,72],[324,243],[216,162],[324,243],[216,450],[324,243],[216,648],[324,243],[320,72],[324,243],[320,162],[324,243],[320,450],[324,243],[320,648],[324,243],[432,72],[324,243],[432,162],[324,243],[432,450],[324,243],[432,648],[324,360],[128,72],[324,360],[128,162],[324,360],[128,450],[324,360],[128,648],[324,360],[216,72],[324,360],[216,162],[324,360],[216,450],[324,360],[216,648],[324,360],[320,72],[324,360],[320,162],[324,360],[320,450],[324,360],[320,648],[324,360],[432,72],[324,360],[432,162],[324,360],[432,450],[324,360],[432,648],[324,486],[128,72],[324,486],[128,162],[324,486],[128,450],[324,486],[128,648],[324,486],[216,72],[324,486],[216,162],[324,486],[216,450],[324,486],[216,648],[324,486],[320,72],[324,486],[320,162],[324,486],[320,450],[324,486],[320,648],[324,486],[432,72],[324,486],[432,162],[324,486],[432,450],[324,486],[432,648],[128,96],[160,96],[128,96],[160,216],[128,96],[160,600],[128,96],[160,864],[128,96],[270,96],[128,96],[270,216],[128,96],[270,600],[128,96],[270,864],[128,96],[400,96],[128,96],[400,216],[128,96],[400,600],[128,96],[400,864],[128,96],[540,96],[128,96],[540,216],[128,96],[540,600],[128,96],[540,864],[128,162],[160,96],[128,162],[160,216],[128,162],[160,600],[128,162],[160,864],[128,162],[270,96],[128,162],[270,216],[128,162],[270,600],[128,162],[270,864],[128,162],[400,96],[128,162],[400,216],[128,162],[400,600],[128,162],[400,864],[128,162],[540,96],[128,162],[540,216],[128,162],[540,600],[128,162],[540,864],[128,240],[160,96],[128,240],[160,216],[128,240],[160,600],[128,240],[160,864],[128,240],[270,96],[128,240],[270,216],[128,240],[270,600],[128,240],[270,864],[128,240],[400,96],[128,240],[400,216],[128,240],[400,600],[128,240],[400,864],[128,240],[540,96],[128,240],[540,216],[128,240],[540,600],[128,240],[540,864],[128,324],[160,96],[128,324],[160,216],[128,324],[160,600],[128,324],[160,864],[128,324],[270,96],[128,324],[270,216],[128,324],[270,600],[128,324],[270,864],[128,324],[400,96],[128,324],[400,216],[128,324],[400,600],[128,324],[400,864],[128,324],[540,96],[128,324],[540,216],[128,324],[540,600],[128,324],[540,864],[162,96],[160,96],[162,96],[160,216],[162,96],[160,600],[162,96],[160,864],[162,96],[270,96],[162,96],[270,216],[162,96],[270,600],[162,96],[270,864],[162,96],[400,96],[162,96],[400,216],[162,96],[400,600],[162,96],[400,864],[162,96],[540,96],[162,96],[540,216],[162,96],[540,600],[162,96],[540,864],[162,162],[160,96],[162,162],[160,216],[162,162],[160,600],[162,162],[160,864],[162,162],[270,96],[162,162],[270,216],[162,162],[270,600],[162,162],[270,864],[162,162],[400,96],[162,162],[400,216],[162,162],[400,600],[162,162],[400,864],[162,162],[540,96],[162,162],[540,216],[162,162],[540,600],[162,162],[540,864],[162,240],[160,96],[162,240],[160,216],[162,240],[160,600],[162,240],[160,864],[162,240],[270,96],[162,240],[270,216],[162,240],[270,600],[162,240],[270,864],[162,240],[400,96],[162,240],[400,216],[162,240],[400,600],[162,240],[400,864],[162,240],[540,96],[162,240],[540,216],[162,240],[540,600],[162,240],[540,864],[162,324],[160,96],[162,324],[160,216],[162,324],[160,600],[162,324],[160,864],[162,324],[270,96],[162,324],[270,216],[162,324],[270,600],[162,324],[270,864],[162,324],[400,96],[162,324],[400,216],[162,324],[400,600],[162,324],[400,864],[162,324],[540,96],[162,324],[540,216],[162,324],[540,600],[162,324],[540,864]]+    f = duty ar (1/5) 0 DoNothing (dseqId 'α' 1 (mce (map mce y)))+    s = varSaw ar f 0 0.9 * lfPulse ar 5 0 0.5+in gVerb (mix s) 99 5 0.5 0.5 15.0 1.0 0.7 0.5 300.0 / 10++---- ; calculation+import Data.List.Split {- split -}+import Sound.Sc3.Lang.Collection {- hsc3-lang -}+x = [[4, 4.5], [2, 3, 5, 6]]+mul_ext p q = take (max (length p) (length q)) (zipWith (*) (cycle p) (cycle q))+dot_x f p q = [f m n | m <- p, n <- q]+mul_dot_x = dot_x mul_ext+chunksOf 2 (map (* 4) (concat (mul_dot_x x (allTuples (mul_dot_x x x)))))++-- Local Variables:+-- truncate-lines:t+-- End:
+ Help/Graph/or-gong.hs view
@@ -0,0 +1,60 @@+-- or ; https://recarteblog.wordpress.com/2021/05/05/gongfm_sc+let ratio1 = rand 0.49 1.11 -- 0.9+    ratio2 = rand 0.17 0.55 -- 0.55+    ratio3 = rand 0.34 1.35 -- 1.03+    index2 = rand 1.33 2 -- 2+    index3 = rand 3.29 5.06 -- 4+    amp = 0.1+    dur = rand 3 9 -- 7+    pan = 0+    mnn = mce [67, 70, 74]+    g = 1+    mk_env l t = envGen kr g 1 0 1 RemoveSynth (envelope l t [])+    env3 = mk_env [0, 1, 1, 0] [0.4, 0.3, dur]+    env2 = mk_env [0, 1, 1, 0] [0, 0.3, dur]+    env1 = mk_env [0, 1, 1, 0] [0.003, 0.3, dur - 0.5]+    op3 = sinOsc ar (midiCps mnn * ratio3) 0 * midiCps mnn * ratio3 * index3 * env3+    op2 = sinOsc ar (midiCps mnn * ratio2 + op3) 0 * midiCps mnn * ratio2 * index2 * env2+    op1 = sinOsc ar (midiCps mnn * ratio1 + op2) 0+in splay (op1 * env1 * amp) 1 1 0 True++-- or ; https://recarteblog.wordpress.com/2021/05/05/gongfm_sc ; id+let ratio1 = randId 'α' 0.49 1.11 -- 0.9+    ratio2 = randId 'β' 0.17 0.55 -- 0.55+    ratio3 = randId 'γ' 0.34 1.35 -- 1.03+    index2 = randId 'δ' 1.33 2 -- 2+    index3 = randId 'ε' 3.29 5.06 -- 4+    amp = 0.1+    dur = randId 'ζ' 3 9 -- 7+    pan = 0+    mnn = mce [67, 70, 74]+    g = 1+    mk_env l t = envGen kr g 1 0 1 RemoveSynth (envelope l t [])+    env3 = mk_env [0, 1, 1, 0] [0.4, 0.3, dur]+    env2 = mk_env [0, 1, 1, 0] [0, 0.3, dur]+    env1 = mk_env [0, 1, 1, 0] [0.003, 0.3, dur - 0.5]+    op3 = sinOsc ar (midiCps mnn * ratio3) 0 * midiCps mnn * ratio3 * index3 * env3+    op2 = sinOsc ar (midiCps mnn * ratio2 + op3) 0 * midiCps mnn * ratio2 * index2 * env2+    op1 = sinOsc ar (midiCps mnn * ratio1 + op2) 0+in splay (op1 * env1 * amp) 1 1 0 True++-- or ; https://recarteblog.wordpress.com/2021/05/05/gongfm_sc ; event control+let f (_,g,x,y,z,o,rx,ry,_,_,_) =+      let ratio1 = x `in_range` (0.49,1.11)+          ratio2 = y `in_range` (0.15,0.55)+          ratio3 = o `in_range` (0.34,1.35)+          index2 = rx `in_range` (1.33,2)+          index3 = ry `in_range` (3.29,5.06)+          amp = latch z g+          dur = y * 6 + 3+          pan = 0+          mnn = mce [67, 70, 74] * (0.5 + x)+          mk_env l t = envGen kr g 1 0 1 DoNothing (envelope l t [])+          env3 = mk_env [0, 1, 1, 0] [0.4, 0.3, dur]+          env2 = mk_env [0, 1, 1, 0] [0, 0.3, dur]+          env1 = mk_env [0, 1, 1, 0] [0.003, 0.3, dur - 0.5]+          op3 = sinOsc ar (midiCps mnn * ratio3) 0 * midiCps mnn * ratio3 * index3 * env3+          op2 = sinOsc ar (midiCps mnn * ratio2 + op3) 0 * midiCps mnn * ratio2 * index2 * env2+          op1 = sinOsc ar (midiCps mnn * ratio1 + op2) 0+      in splay (op1 * env1 * amp) 1 1 0 True+in mix (voicer 16 f) * control kr "gain" 0.25
+ Help/Graph/pc-thx.hs view
@@ -0,0 +1,29 @@+-- http://ccrma-mail.stanford.edu/pipermail/stk/2007-January/000327.html (pc)+let t4 = 7.9365079365+    rvb i =+      let d = mce [0.0297, 0.0371, 0.0411, 0.0437]+          c = mix (combN i 0.05 d t4 * 0.25)+          f = (allpassN c 0.01 0.005 0.096835)+      in allpassN f 0.01 0.0017 0.032924+    mk_env z0 t0 z1 t1 t2 z2 t3 c =+      let z = [z0, z1, z1, z2, z2]+          t = [t0, t1, t2, t3]+          e = Envelope z t [c, c, c] Nothing Nothing 0+      in envGen kr 1 1 0 1 RemoveSynth e+    mk_saw f0 f1 l =+      let f = mk_env f0 t0 f0 t1 t2 f1 (t3 + t4 + t5 + t5) EnvLin+          g = mk_env 0 t0 0.1 (t1 + t2 + t3) t4 0.0 (t5 + t5) EnvLin+          s = saw ar f+          t0 = 0.035+          t1 = 0.2267573696+          t2 = 2.2675736061+          t3 = 6.8027210884+          t5 = 1.75+      in pan2 s l g+    sig =+      let n = 30+          l = mceChannels (X.randN n (-1) 1)+          f0 = mceChannels (X.randN n 200 800)+          f1 = take n (cycle [29, 87.5, 116, 175, 233, 350, 524, 880, 1048, 1760])+      in sum (zipWith3 mk_saw f0 f1 l)+in rvb sig
+ Help/Graph/pj-forest-sounds-m.hs view
@@ -0,0 +1,14 @@+-- sc-users, 2007-04-06 (pj) [paul jones]+let insects _ =+      let o = sinOsc kr (lfNoise2 kr 50 * 50 + 50) 0 * 100 + 2000+      in bpf (brownNoise ar) o 0.001 * 10+in mceFill 2 insects++-- sc-users, 2007-04-06 (pj) [paul jones] ; monad+uid_st_eval (do+  let insects_m = do+        n1 <- brownNoiseM ar+        n2 <- lfNoise2M kr 50+        let o = sinOsc kr (n2 * 50 + 50) 0 * 100 + 2000+        return (bpf n1 o 0.001 * 10)+  fmap mce (replicateM 2 insects_m))
+ Help/Graph/pmi.hs view
@@ -0,0 +1,12 @@+-- pmi ; texture=overlap,1,2,7,inf+let pm = line kr 0 (rand 0 12) (rand 1 12) DoNothing+in linPan2 (pmOsc ar (rand 0 2000) (rand 0 800) pm 0) (rand2 1) 0.05++-- pmi ; texture=overlap,1,2,7,inf ; id+let n = randId 'α' 1 12+    cf = randId 'β' 0 2000+    mf = randId 'γ' 0 800+    pme = randId 'δ' 0 12+    l = randId 'ε' (-1) 1+    pm = line kr 0 pme n DoNothing+in linPan2 (pmOsc ar cf mf pm 0) l 0.05
+ Help/Graph/rb-hh-808.hs view
@@ -0,0 +1,21 @@+-- hh-808 (rb) - http://www.create.ucsb.edu/pipermail/sc-users/2007-August/036131.html+let time = 250+    fr = [205.35,304.41,369.64,522.71,540.54,812.21]+    env i j k = Envelope i j k Nothing Nothing 0+    pulseEnv = let e = env [1.0,0.6] [time] [EnvNum (-0.5)]+               in envGen ar 1 1 0 (1/1000) DoNothing e+    s = mix (lfPulse ar (mce (map (* 4.09) fr)) 0 0.5)+    f = [\a -> ((a `equal_to` 6.0) * 0.6) ++               ((a `equal_to` 2.0) * 0.2) ++               ((a `equal_to` 1.0) * 0.9)+        ,\a -> (a * pulseEnv) + (mix (lfPulse ar (mce fr) 0 0.55)) * 0.9+        ,\a -> rlpf a 7000 0.6+        ,\a -> rhpf a 6800 1.5+        ,\a -> rhpf a 6800 1.5+        ,\a -> rhpf a 1200 1.5+        ,\a -> a + freeVerb a 0.33 0.5 0.5+        ,\a -> let c = map EnvNum [0,-0.5,0,-50]+                   e = env [0,1,0.4,0,0] [2,time,50,500] c+               in a * envGen ar 1 1 0 (1/1000) RemoveSynth e+        ,\a -> mce [a,delayN a 0.005 0.005]]+in foldl1 (flip (.)) f s * 2
+ Help/Graph/rd-20060909.hs view
@@ -0,0 +1,38 @@+-- diffraction (rd, 2006-09-09)+let diffraction_p _ =+      let x = mouseX kr 0.001 0.02 Exponential 0.1+          y = mouseY kr 120 400 Exponential 0.1+          f = mce2 32 64 * lfNoise0 kr 4+          s = pulse ar f (x * lfNoise0 kr 32)+      in resonz s (y + 0.1 * lfNoise0 kr 2) (lfNoise0 kr 6 * 0.4 + 0.8) * 0.5+    diffraction_q = combN (diffraction_p ()) 0.2 (lfNoise0 kr 128 * 0.1 + 0.1) 3+    diffraction_r =+        let x = mouseX kr 0.75 1.25 Exponential 0.1+            y = mouseY kr 0.25 1 Exponential 0.1+            f _ = sinOsc ar (x * rand 50 59) 0 * y * rand 0.04 0.16+        in mce2 (mixFill 16 f) (mixFill 12 f)+in sum [diffraction_p (),diffraction_q,diffraction_r]++-- diffraction (rd, 2006-09-09) ; monad+uid_st_eval (do+  let diffraction_p = do+        let x = mouseX kr 0.001 0.02 Exponential 0.1+            y = mouseY kr 120 400 Exponential 0.1+        f <- fmap (* mce2 32 64) (lfNoise0M kr 4)+        w <- fmap (* x) (lfNoise0M kr 32)+        z <- fmap (* 0.1) (lfNoise0M kr 2)+        m <- lfNoise0M kr 6+        let s = pulse ar f w+        return (resonz s (y + z) (m * 0.4 + 0.8) * 0.5)+      diffraction_q = do+        n <- lfNoise0M kr 128+        s <- diffraction_p+        return (combN s 0.2 (n * 0.1 + 0.1) 3)+      diffraction_r =+        let x = mouseX kr 0.75 1.25 Exponential 0.1+            y = mouseY kr 0.25 1 Exponential 0.1+            f _ = do fr <- fmap (* x) (randM 50 59)+                     am <- fmap (* y) (randM 0.04 0.16)+                     return (sinOsc ar fr 0 * am)+        in liftM2 mce2 (mixFillM 16 f) (mixFillM 12 f)+  fmap sum (sequence [diffraction_p,diffraction_q,diffraction_r]))
+ Help/Graph/rd-20060910.hs view
@@ -0,0 +1,20 @@+-- rzblp-u (rd)+let lfn f l r = range l r (lfNoise0 kr f)+    hpb q =+      let g _ = let f = lfn q 1330 1395+                    a = lfn q 0.001 0.007+                in blip ar f 24 * a+      in mixFill 2 g+    mk d =+      let q = lfn 5.2 5.2 5.21+          a = d dinf (mce [1,3,2,7,8])+          tr = impulse kr q 0+          freq = demand tr 0 a * 30 + 340+      in sum [blip ar freq 3 * lfn q 0.001 0.01+             ,resonz (impulse ar q (mce2 0 0))+               (lfn 5 30 640)+               (lfn q 0.1 0.5)+               * lfn q 0.01 1.8+             ,hpb q * lfn q 1.2 1.8+             ,blip ar (lfn q 16 36) 3 * mce2 0.03 0.09]+in mk drand + mk dxrand
+ Help/Graph/rd-20060911.hs view
@@ -0,0 +1,21 @@+-- cut-outs (rd, 2006-09-11)+let t = impulse ar 22 0 * (sinOsc kr 0.5 0 + 1)+    x = mouseX kr 0.005 0.12 Exponential 0.1+    y = mouseY kr 0.01 0.52 Exponential 0.1+    n _ = ringz (coinGate (0.05 + lfNoise0 kr 2 + y * 0.4 + t * 0.5) (t * 0.5)) (tExpRand (mce2 500 900) 1600 t) x+    s = mixFill 3 n+    b = tRand 0 1 (dust kr 8)+in mrg [clip2 s (in' 1 kr 0) * 0.25,out 0 b]++-- cut-outs (rd, 2006-09-11) ; monad+uid_st_eval (do+  let t = impulse ar 22 0 * (sinOsc kr 0.5 0 + 1)+      x = mouseX kr 0.005 0.12 Exponential 0.1+      y = mouseY kr 0.01 0.52 Exponential 0.1+      n = do n1 <- lfNoise0M kr 2+             n2 <- coinGateM (0.05 + n1 + y * 0.4 + t * 0.5) (t * 0.5)+             n3 <- tExpRandM (mce2 500 900) 1600 t+             return (ringz n2 n3 x)+  s <- fmap sum (sequence (replicate 3 n))+  b <- tRandM 0 1 =<< dustM kr 8+  return (mrg [clip2 s (in' 1 kr 0) * 0.25,out 0 b]))
+ Help/Graph/rd-20060914.hs view
@@ -0,0 +1,30 @@+-- chrd (rd, 2006-09-14)+let chrd _ =+      let m = mce [60, 65, 72, 77, 79, 84]+          d = mce (map (* 3) [5, 4, 5, 7, 4, 5])+          f = midiCps (xLine kr m (m + rand 0.05 0.5) d DoNothing)+          z = envTrapezoid 0 (rand 0.15 0.35) d (rand 0.005 0.01)+          e = envGen kr 1 1 0 1 DoNothing z+          p = xLine kr (rand2 1) (rand2 1) d DoNothing+      in mix (pan2 (fSinOsc ar f 0) p e)+in mixFill 9 chrd++-- chrd (rd, 2006-09-14) ; monad+uid_st_eval (do+  let chrd_m = do+        r0 <- randM 0.05 0.5+        r1 <- randM (-1) 1+        r2 <- randM (-1) 1+        r3 <- randM 0.15 0.35+        r4 <- randM 0.005 0.01+        let m = mce [60, 65, 72, 77, 79, 84]+            ds = 3+            d = mce (map (* ds) [5, 4, 5, 7, 4, 5])+            f = midiCps (xLine kr m (m + r0) d DoNothing)+            z = envTrapezoid 0 r3 d r4+            e = envGen kr 1 1 0 1 DoNothing z+            p = xLine kr r1 r2 d DoNothing+            o = fSinOsc ar f 0+        return (mix (pan2 o p e))+  chrd_9 <- replicateM 9 chrd_m+  return (sum chrd_9))
+ Help/Graph/rd-20060918.hs view
@@ -0,0 +1,45 @@+-- shifting pulses (rd, 2006-09-18)+let prt a f =+      let f' = f * linLin_b (sinOsc kr (rand 0.2 0.9) 0) 1 1.01 * rand 0.95 1.05+      in sinOsc ar (mce2 f f') 0 * a * mceFill 2 (\_ -> rand 0.95 1.05)+    prts n f a = sum (map (prt a) [f,f + f .. f * n])+    fmt = formant ar (mce2 20 21) (linLin_b (lfNoise2 kr 2) 10 100) 200 * 0.35+    pulses =+      let t = dust kr 0.75+          warp i = linLin i (-1) 1+          p = pulse ar (warp (mceFill 2 (\_ -> brownNoise kr)) 2 (mce2 11 15)) 0.01 * 0.1+          f = warp (mceFill 2 (\_ -> brownNoise kr)) 90 300+          rq = warp (mceFill 2 (\_ -> brownNoise kr)) 2 9+      in mrg2 (latch t t * rlpf p f rq) (sendTrig t 0 t)+in prts 2 900 0.008 + prts 9 40 0.022 + fmt + pulses++-- shifting pulses (rd, 2006-09-18) ; monad+uid_st_eval (do+  let prt a f = do+        r0 <- randM 0.2 0.9+        r1 <- randM 0.95 1.05+        r2 <- replicateM 2 (randM 0.95 1.05)+        let f' = f * linLin_b (sinOsc kr r0 0) 1 1.01 * r1+            a' = a * mce r2+            o = sinOsc ar (mce2 f f') 0+        return (o * a')+  let prts n f a = fmap sum (mapM (prt a) [f,f + f .. f * n])+  let fmt = do+        n <- lfNoise2M kr 2+        return (formant ar (mce2 20 21) (linLin_b n 10 100) 200 * 0.35)+  let pulses = do+        n0 <- replicateM 2 (brownNoiseM kr)+        n1 <- replicateM 2 (brownNoiseM kr)+        n2 <- replicateM 2 (brownNoiseM kr)+        t <- dustM kr 0.75+        let warp i = linLin i (-1) 1+            l = latch t t+            p = pulse ar (warp (mce n0) 2 (mce2 11 15)) 0.01 * 0.1+            f = warp (mce n1) 90 300+            rq = warp (mce n2) 2 9+        return (mrg2 (l * rlpf p f rq) (sendTrig t 0 t))+  p1 <- prts 2 900 0.008+  p2 <- prts 9 40 0.022+  f <- fmt+  s <- pulses+  return (p1 + p2 + f + s))
+ Help/Graph/rd-20060921.hs view
@@ -0,0 +1,37 @@+-- wial (rd, 2006-09-21)+let pls c d f = let t = pulseDivider c d 0+                    e = decay2 t 0.05 0.75+                    o = sinOsc ar (toggleFF t * f + f * 2) 0+                in o * e * tiRand 0 1 t * 0.5+    smpl f = [(4,6,f,0.0075)+             ,(2,6,f * 2,0.0175)+             ,(1,2,f * 16,0.025)+             ,(1,5,f * 64,0.005)+             ,(1,4,f * 128,0.035)+             ,(1,3,f * 256,0.15)+             ,(2,3,f * 512,0.35)]+    plss c (d0,d1,f,a) = pls c (mce2 d0 d1) f * a+    clk = impulse ar 16 0+    f = tWChoose (dust kr 2) (mce2 (20 * 0.66) 20) (mce2 0.25 0.75) 0+in sum (map (plss clk) (smpl f))++-- wial (rd, 2006-09-21) ; monad+let wial_m = do+      let pls c d f = do let t = pulseDivider c d 0+                             e = decay2 t 0.05 0.75+                             o = sinOsc ar (toggleFF t * f + f * 2) 0+                         n0 <- tiRandM 0 1 t+                         return (o * e * n0 * 0.5)+          smpl f = [(4,6,f,0.0075)+                   ,(2,6,f * 2,0.0175)+                   ,(1,2,f * 16,0.025)+                   ,(1,5,f * 64,0.005)+                   ,(1,4,f * 128,0.035)+                   ,(1,3,f * 256,0.15)+                   ,(2,3,f * 512,0.35)]+          plss c (d0,d1,f,a) = fmap (* a) (pls c (mce2 d0 d1) f)+          clk = impulse ar 16 0+      n0 <- dustM kr 2+      f <- tWChooseM n0 (mce2 (20 * 0.66) 20) (mce2 0.25 0.75) 0+      fmap sum (mapM (plss clk) (smpl f))+in uid_st_eval wial_m
+ Help/Graph/rd-20060925.hs view
@@ -0,0 +1,31 @@+-- mouse clatter (rd, 2006-09-25)+let x = mouseX kr 100 12000 Linear 0.1+    y = mouseY kr 0.01 0.15 Linear 0.1+    n1 = lfNoise0 kr (mce [3,3.25])+    t = impulse kr (n1 * 16 + 18) 0+    n2 = tRand 0.005 y t+    n3 = whiteNoise ar+    n4 = tRand 10 x t+    n5 = tRand 0 1 t+    n6 = tExpRand 0.15 1 t+    o = let e = decay2 t 0.01 n2+        in bpf (n3 * e) n4 n5+    c = X.pv_SplitAlloc (fftAlloc 2048 o 0.5 0 1 0)+    n7 = pv_RandComb c n6 t+in mix (o * 0.05 + ifft n7 0 0)++-- mouse clatter (rd, 2006-09-25) ; id+let x = mouseX kr 100 12000 Linear 0.1+    y = mouseY kr 0.01 0.15 Linear 0.1+    n1 = lfNoise0Id 'α' kr (mce [3,3.25])+    t = impulse kr (n1 * 16 + 18) 0+    n2 = tRandId 'β' 0.005 y t+    n3 = whiteNoiseId 'γ' ar+    n4 = tRandId 'δ' 10 x t+    n5 = tRandId 'ε' 0 1 t+    n6 = tExpRandId 'ζ' 0.15 1 t+    o = let e = decay2 t 0.01 n2+        in bpf (n3 * e) n4 n5+    c = X.pv_SplitAllocId 'η' (fftAllocId 'θ' 2048 o 0.5 0 1 0)+    n7 = pv_RandCombId 'ι' c n6 t+in mix (o * 0.05 + ifft n7 0 0)
+ Help/Graph/rd-20060928.hs view
@@ -0,0 +1,35 @@+-- f-lets (rd. 2006-09-28)+let f_let t g j n f =+      let pd = pulseDivider t j 0+      in formlet pd (f * tiRand (mce2 2 1) n pd) (tRand 0.01 0.04 pd) (tRand 0.05 0.10 pd) * g+    mk_n t =+      sum [f_let t 0.15 2 9 (mce2 200 400)+          ,f_let t 0.25 2 9 (mce2 (200 + tRand 0 1 t) (400 + tRand 0 1 t))+          ,f_let t 0.05 4 5 (mce2 25 50)+          ,f_let t 0.15 4 5 (mce2 (25 + tRand 0 1 t) (50 + tRand 0 1 t))+          ,f_let t 0.5 1 16 (mce2 300 600) * latch (coinGate 0.2 t) t]+in mk_n (impulse ar 24 0) * (lfNoise0 kr 2 * 0.25 + 0.25)++-- f-lets (rd. 2006-09-28) ; monad+uid_st_eval (do+  let f_let t g j n f = do+           let pd = pulseDivider t j 0+           r0 <- tiRandM (mce2 2 1) n pd+           r1 <- tRandM 0.01 0.04 pd+           r2 <- tRandM 0.05 0.10 pd+           return (formlet pd (f * r0) r1 r2 * g)+      mk_n t = do+           r0 <- tRandM 0 1 t+           r1 <- tRandM 0 1 t+           r2 <- tRandM 0 1 t+           r3 <- tRandM 0 1 t+           r4 <- coinGateM 0.2 t+           sequence [f_let t 0.15 2 9 (mce2 200 400)+                    ,f_let t 0.25 2 9 (mce2 (200 + r0) (400 + r1))+                    ,f_let t 0.05 4 5 (mce2 25 50)+                    ,f_let t 0.15 4 5 (mce2 (25 + r2) (50 + r3))+                    ,let lr = fmap (* latch r4 t)+                     in lr (f_let t 0.5 1 16 (mce2 300 600))]+      tr = impulse ar 24 0+  n <- lfNoise0M kr 2+  return . (* (n * 0.25 + 0.25)) . sum =<< mk_n tr)
+ Help/Graph/rd-20061007.hs view
@@ -0,0 +1,23 @@+-- ccomb (rd, 2006-10-07)+let lwr = 48+    spart t _ = let n = range lwr 72.0 (lfNoise2 kr 0.1)+                    e = decay2 t 0.01 (tRand 0.05 0.75 t)+                    x = e * whiteNoise ar+                    f = lag (midiCps n) 0.25+                in combC x (recip (midiCps lwr)) (recip f) (range 1 8 (lfNoise2 kr 0.1))+    t = dust kr (mce2 0.75 0.35)+in mixFill 12 (spart t) * 0.01++-- ccomb (rd, 2006-10-07) ; monad+uid_st_eval (do+  let lwr = 48+      flwr = midiCps lwr+      spart t = do n <- fmap (range lwr 72.0) (lfNoise2M kr 0.1)+                   e <- fmap (decay2 t 0.01) (tRandM 0.05 0.75 t)+                   x <- fmap (* e) (whiteNoiseM ar)+                   m <- lfNoise2M kr 0.1+                   let f = lag (midiCps n) 0.25+                       m' = range 1 8 m+                   return (combC x (recip flwr) (recip f) m')+  t <- dustM kr (mce2 0.75 0.35)+  return . (* 0.01) . sum =<< sequence (replicate 12 (spart t)))
+ Help/Graph/rd-20061008.hs view
@@ -0,0 +1,31 @@+-- s-chirp (rd, 2006-10-08)+let x = mouseX kr 15 0 Linear 0.1+    y = mouseY kr 15 27 Linear 0.1+    t = dust kr 9+    b = tChoose t (mce [36,48,60,72])+    n = lfNoise1 kr (mce2 3 3.05) * 0.04+    d = tiRand x y t+    e = decay2 t 0.005 (tRand 0.02 0.15 t)+    k = degreeToKey (asLocalBuf [0,2,3.2,5,7,9,10]) d 12+    f = midiCps (b + k + n)+    m = e * sinOsc ar f 0 * 0.2+    u = pulseDivider t 9 0+    r0 = tRand 0.0075 0.125 u+    r1 = tRand 0.05 0.15 u+in m * 0.5 + allpassC m 0.15 r0 r1++-- s-chirp (rd, 2006-10-08) ; id+let x = mouseX kr 15 0 Linear 0.1+    y = mouseY kr 15 27 Linear 0.1+    t = dustId 'α' kr 9+    b = tChooseId 'β' t (mce [36,48,60,72])+    n = lfNoise1Id 'γ' kr (mce2 3 3.05) * 0.04+    d = tiRandId 'δ' x y t+    e = decay2 t 0.005 (tRandId 'ε' 0.02 0.15 t)+    k = degreeToKey (asLocalBufId 'a' [0,2,3.2,5,7,9,10]) d 12+    f = midiCps (b + k + n)+    m = e * sinOsc ar f 0 * 0.2+    u = pulseDivider t 9 0+    r0 = tRandId 'ζ' 0.0075 0.125 u+    r1 = tRandId 'η' 0.05 0.15 u+in m * 0.5 + allpassC m 0.15 r0 r1
+ Help/Graph/rd-20061015.hs view
@@ -0,0 +1,33 @@+-- discretion (rd, 2006-10-15)+let mkls bp t = envGen kr 1 1 0 1 RemoveSynth (envCoord bp t 1 EnvLin)+    part _ = let t = 21+                 f = mkls [(0,X.randN 2 50 55),(0.33,X.randN 2 50 65),(1,X.randN 2 50 55)] t+                 a = mkls [(0,0),(0.33,X.randN 2 0.01 0.035),(1,0)] t+             in (saw ar f * a)+in mixFill 8 part++-- discretion (rd, 2006-10-15) ; id+let mkls bp t = envGen kr 1 1 0 1 RemoveSynth (envCoord bp t 1 EnvLin)+    part z _ = let f1 = X.randNId 2 (z,'α') 50 55+                   f2 = X.randNId 2 (z,'β') 50 65+                   f3 = X.randNId 2 (z,'γ') 50 55+                   a = X.randNId 2 (z,'δ') 0.01 0.035+                   t = 21+                   f_ = mkls [(0,f1),(0.33,f2),(1,f3)] t+                   a_ = mkls [(0,0),(0.33,a),(1,0)] t+               in (saw ar f_ * a_)+in mixFillId 'ε' 8 part++-- discretion (rd, 2006-10-15) ; monad+uid_st_eval (do+  let clone n = fmap mce . replicateM n+      mkls bp t = envGen kr 1 1 0 1 RemoveSynth (envCoord bp t 1 EnvLin)+      part = do f1 <- clone 2 (randM 50 55)+                f2 <- clone 2 (randM 50 65)+                f3 <- clone 2 (randM 50 55)+                a <- clone 2 (randM 0.01 0.035)+                let t = 21+                    f_ = mkls [(0,f1),(0.33,f2),(1,f3)] t+                    a_ = mkls [(0,0),(0.33,a),(1,0)] t+                return (saw ar f_ * a_)+  fmap mix (clone 8 part))
+ Help/Graph/rd-20061017.hs view
@@ -0,0 +1,328 @@+-- crotale (rd, 2006-10-17) ; id+let crotale_data =+      ([35.45+       ,128.59+       ,346.97+       ,483.55+       ,1049.24+       ,1564.02+       ,1756.33+       ,3391.66+       ,3451.80+       ,3497.26+       ,3596.89+       ,3696.73+       ,3835.23+       ,3845.95+       ,4254.85+       ,4407.53+       ,4415.26+       ,4552.86+       ,5538.07+       ,5637.73+       ,5690.29+       ,5728.00+       ,5764.27+       ,5824.41+       ,6377.60+       ,6544.35+       ,6807.14+       ,6994.97+       ,7026.84+       ,7144.58+       ,7269.61+       ,7393.67+       ,7897.25+       ,8040.45+       ,8157.77+       ,8225.01+       ,9126.15+       ,9488.52+       ,9916.40+       ,10155.59+       ,11715.95+       ,12111.83+       ,12339.99+       ,12417.66+       ,12459.28+       ,12618.33+       ,13116.49+       ,13201.12+       ,13297.83+       ,13533.75]+      ,[0.001282+       ,0.000804+       ,0.017361+       ,0.004835+       ,0.004413+       ,0.004110+       ,0.000333+       ,0.003614+       ,0.006919+       ,0.000322+       ,0.000603+       ,0.066864+       ,0.000605+       ,0.003602+       ,0.000283+       ,0.015243+       ,0.020536+       ,0.016677+       ,0.000924+       ,0.202050+       ,0.001254+       ,0.012705+       ,0.000252+       ,0.000486+       ,0.000642+       ,0.000776+       ,0.208116+       ,0.002491+       ,0.001934+       ,0.005231+       ,0.006924+       ,0.001203+       ,0.205002+       ,0.040604+       ,0.003834+       ,0.002189+       ,0.180560+       ,0.002192+       ,0.006516+       ,0.009982+       ,0.004745+       ,0.046154+       ,0.000510+       ,0.001890+       ,0.001978+       ,0.006729+       ,0.002342+       ,0.002400+       ,0.035155+       ,0.001408]+      ,[5.203680+       ,1.703434+       ,40.165168+       ,27.282501+       ,0.895052+       ,42.847427+       ,2.660366+       ,15.767886+       ,6.848367+       ,3.232500+       ,1.734338+       ,2.020241+       ,4.727905+       ,9.400103+       ,0.710251+       ,37.494625+       ,36.248794+       ,29.172658+       ,3.891019+       ,4.757885+       ,3.851426+       ,20.907810+       ,3.732874+       ,2.383410+       ,10.443285+       ,8.795611+       ,20.985643+       ,18.011800+       ,25.297883+       ,14.819819+       ,42.391899+       ,2.948513+       ,11.043763+       ,49.551651+       ,29.882694+       ,10.527188+       ,23.557245+       ,26.555616+       ,45.099605+       ,22.550390+       ,36.461261+       ,11.826201+       ,16.818185+       ,14.903121+       ,32.811138+       ,43.138904+       ,12.289558+       ,11.498942+       ,10.465788+       ,24.931695])+    (cf,ca,cd) = crotale_data+    ps = mce [-12,-5,0,2,4,5,7,12]+    t = dust kr 3+    fs = select (tiRand 0 7 t) ps+    s = decay2 t 0.06 0.01 * pinkNoise ar * tRand 0 1 t+    ks = klankSpec_k cf ca (map recip cd)+    k = dynKlank s (midiRatio fs) (tRand 0 1 t) (tRand 2 7 t) ks+in pan2 k (tRand (-1) 1 t) 1++-- crotale (rd, 2006-10-17) ; id+let crotale_data =+      ([35.45+       ,128.59+       ,346.97+       ,483.55+       ,1049.24+       ,1564.02+       ,1756.33+       ,3391.66+       ,3451.80+       ,3497.26+       ,3596.89+       ,3696.73+       ,3835.23+       ,3845.95+       ,4254.85+       ,4407.53+       ,4415.26+       ,4552.86+       ,5538.07+       ,5637.73+       ,5690.29+       ,5728.00+       ,5764.27+       ,5824.41+       ,6377.60+       ,6544.35+       ,6807.14+       ,6994.97+       ,7026.84+       ,7144.58+       ,7269.61+       ,7393.67+       ,7897.25+       ,8040.45+       ,8157.77+       ,8225.01+       ,9126.15+       ,9488.52+       ,9916.40+       ,10155.59+       ,11715.95+       ,12111.83+       ,12339.99+       ,12417.66+       ,12459.28+       ,12618.33+       ,13116.49+       ,13201.12+       ,13297.83+       ,13533.75]+      ,[0.001282+       ,0.000804+       ,0.017361+       ,0.004835+       ,0.004413+       ,0.004110+       ,0.000333+       ,0.003614+       ,0.006919+       ,0.000322+       ,0.000603+       ,0.066864+       ,0.000605+       ,0.003602+       ,0.000283+       ,0.015243+       ,0.020536+       ,0.016677+       ,0.000924+       ,0.202050+       ,0.001254+       ,0.012705+       ,0.000252+       ,0.000486+       ,0.000642+       ,0.000776+       ,0.208116+       ,0.002491+       ,0.001934+       ,0.005231+       ,0.006924+       ,0.001203+       ,0.205002+       ,0.040604+       ,0.003834+       ,0.002189+       ,0.180560+       ,0.002192+       ,0.006516+       ,0.009982+       ,0.004745+       ,0.046154+       ,0.000510+       ,0.001890+       ,0.001978+       ,0.006729+       ,0.002342+       ,0.002400+       ,0.035155+       ,0.001408]+      ,[5.203680+       ,1.703434+       ,40.165168+       ,27.282501+       ,0.895052+       ,42.847427+       ,2.660366+       ,15.767886+       ,6.848367+       ,3.232500+       ,1.734338+       ,2.020241+       ,4.727905+       ,9.400103+       ,0.710251+       ,37.494625+       ,36.248794+       ,29.172658+       ,3.891019+       ,4.757885+       ,3.851426+       ,20.907810+       ,3.732874+       ,2.383410+       ,10.443285+       ,8.795611+       ,20.985643+       ,18.011800+       ,25.297883+       ,14.819819+       ,42.391899+       ,2.948513+       ,11.043763+       ,49.551651+       ,29.882694+       ,10.527188+       ,23.557245+       ,26.555616+       ,45.099605+       ,22.550390+       ,36.461261+       ,11.826201+       ,16.818185+       ,14.903121+       ,32.811138+       ,43.138904+       ,12.289558+       ,11.498942+       ,10.465788+       ,24.931695])+    (cf,ca,cd) = crotale_data+    ps = mce [-12,-5,0,2,4,5,7,12]+    n = pinkNoiseId 'α' ar+    t = dustId 'β' kr 3+    fs = select (tiRandId 'γ' 0 7 t) ps+    g = tRandId 'δ' 0 1 t+    fo = tRandId 'ε' 0 1 t+    ds = tRandId 'ζ' 2 7 t+    p = tRandId 'η' (-1) 1 t+    s = decay2 t 0.06 0.01 * n * g+    ks = klankSpec_k cf ca (map recip cd)+    k = dynKlank s (midiRatio fs) fo ds ks+in pan2 k p 1++
+ Help/Graph/rd-20061022.hs view
@@ -0,0 +1,27 @@+-- seqr (rd)+let nrand n l = mceChannels . X.randN n l+    nfreq n l r = map (midiCps . floorE) (nrand n l r)+    seqr_f f e =+      let n = constant (length e `div` 2)+      in select (lfSaw kr f 0 * n + n) (mce e)+    seqr n =+      let f = rand 9 18 / constant n+          fr = mce2 (seqr_f f (nfreq n 72 96)) (seqr_f f (nfreq n 72 84))+          nh = mce2 (seqr_f f (nrand n 1 3)) (seqr_f f (nrand n 3 6))+      in blip ar fr nh * mce2 (seqr_f f (nrand n 0.05 0.10)) (seqr_f f (nrand n 0.05 0.15))+in seqr 12++-- seqr (rd) ; id+let nrand n e l = mceChannels . X.randNId n e l+    nfreq z n l r = map (midiCps . floorE) (nrand n z l r)+    seqr_f f e =+      let n = constant (length e `div` 2)+      in select (lfSaw kr f 0 * n + n) (mce e)+    seqr n =+      let f = randId 'α' 9 18 / constant n+          fr = mce2 (seqr_f f (nfreq 'β' n 72 96)) (seqr_f f (nfreq 'γ' n 72 84))+          nh = mce2 (seqr_f f (nrand n 'δ' 1 3)) (seqr_f f (nrand n 'ε' 3 6))+          b = blip ar fr nh+          a = mce2 (seqr_f f (nrand n 'ζ' 0.05 0.10)) (seqr_f f (nrand n 'η' 0.05 0.15))+      in b * a+in seqr 12
+ Help/Graph/rd-20061028.hs view
@@ -0,0 +1,25 @@+-- xy-interference (rd, 2006-10-28)+let x = mouseX kr 20 22000 Linear (mce2 0.005 0.025)+    y = mouseY kr 20 22000 Linear (mce2 0.005 0.075)+    nd _ = sinOsc ar (x + lfNoise0 kr (mce2 5 9)) 0 * sinOsc ar y 0+in mixFill 3 nd * 0.5++-- xy-interference (rd, 2006-10-28) ; monad+let xy_interference_m = do+      let x = mouseX kr 20 22000 Linear (mce2 0.005 0.025)+          y = mouseY kr 20 22000 Linear (mce2 0.005 0.075)+          nd = do n <- lfNoise0M kr (mce2 5 9)+                  let a = sinOsc ar (x + n) 0+                      b = sinOsc ar y 0+                  return (a * b)+      fmap sum_opt (sequence (replicate 3 nd))+in uid_st_eval xy_interference_m * 0.5++-- xy-interference (rd, 2006-10-28) ; id+let x = mouseX kr 20 22000 Linear (mce2 0.005 0.025)+    y = mouseY kr 20 22000 Linear (mce2 0.005 0.075)+    nd z _ = let n = lfNoise0Id (z,'α') kr (mce2 5 9)+                 a = sinOsc ar (x + n) 0+                 b = sinOsc ar y 0+             in a * b+in mixFillId 'β' 3 nd
+ Help/Graph/rd-20061030.hs view
@@ -0,0 +1,33 @@+-- three-cpsw (rd, 2006-10-30)+let t = dust kr (mce2 12 18)+    f0 = tRand 1 64 t+    f1 = lfNoise0 kr f0+    a = tRand 0.0 0.5 t+    dt = tRand 0.975 1.025 t+    dh = tRand 0.750 0.7505 t+    f = f1 * mce2 9000 12000 + 9500+    o = saw ar f + saw ar (f * dh) + saw ar (f * dt)+in clip2 (o * a) 0.75 * 0.15++-- three-cpsw (rd, 2006-10-30) ; id+let t = dustId 'α' kr (mce2 12 18)+    f0 = tRandId 'β' 1 64 t+    f1 = lfNoise0Id 'γ' kr f0+    a = tRandId 'δ' 0.0 0.5 t+    dt = tRandId 'ε' 0.975 1.025 t+    dh = tRandId 'ζ' 0.750 0.7505 t+    f = f1 * mce2 9000 12000 + 9500+    o = saw ar f + saw ar (f * dh) + saw ar (f * dt)+in clip2 (o * a) 0.75 * 0.15++-- three-cpsw (rd, 2006-10-30) ; monad+uid_st_eval (do+  t <- dustM kr (mce2 12 18)+  f0 <- tRandM 1 64 t+  f1 <- lfNoise0M kr f0+  a <- tRandM 0.0 0.5 t+  dt <- tRandM 0.975 1.025 t+  dh <- tRandM 0.750 0.7505 t+  let f = f1 * mce2 9000 12000 + 9500+      o = saw ar f + saw ar (f * dh) + saw ar (f * dt)+  return (clip2 (o * a) 0.75 * 0.15))
+ Help/Graph/rd-20070423.hs view
@@ -0,0 +1,39 @@+-- eggcrate (rd, 2007-04-23)+let cosu = cos . (* pi)+    sinu = sin . (* pi)+    eggcrate_f u v = cosu u * sinu v+    p = mce [64,72,96,128,256,6400,7200,8400,9600]+    dup f = (f (),f ())+    (x,y) = dup (\_ -> brownNoise kr)+    t = dust kr 2.4+    (f0,f1) = dup (\_ -> tChoose t p)+    f = linLin_b (eggcrate_f x y) f0 f1+    a = linLin_b x 0 0.1+in pan2 (mix (sinOsc ar f 0)) y a++-- eggcrate (rd, 2007-04-23) ; id+let cosu = cos . (* pi)+    sinu = sin . (* pi)+    eggcrate_f u v = cosu u * sinu v+    p = mce [64,72,96,128,256,6400,7200,8400,9600]+    bimap f (i,j) = (f i,f j)+    (x,y) = bimap (`brownNoiseId` kr) ('α','β')+    t = dustId 'γ' kr 2.4+    (f0,f1) = bimap (\z -> tChooseId z t p) ('δ','ε')+    f = linLin_b (eggcrate_f x y) f0 f1+    a = linLin_b x 0 0.1+in pan2 (mix (sinOsc ar f 0)) y a++-- eggcrate (rd, 2007-04-23) ; monad+uid_st_eval (do+  let cosu = cos . (* pi)+      sinu = sin . (* pi)+      eggcrate_f u v = cosu u * sinu v+      p = mce [64,72,96,128,256,6400,7200,8400,9600]+      clone2 x = x >>= \y1 -> x >>= \y2 -> return (y1,y2)+  (x,y) <- clone2 (brownNoiseM kr)+  t <- dustM kr 2.4+  (f0,f1) <- clone2 (tChooseM t p)+  let f = linLin_b (eggcrate_f x y) f0 f1+      a = linLin_b x 0 0.1+  return (pan2 (mix (sinOsc ar f 0)) y a))
+ Help/Graph/rd-lg-timed.hs view
@@ -0,0 +1,29 @@+-- lg-timed (rd)+let timed r y p =+      let t = tDuty ar (dcons 0 (dser r p)) 0 RemoveSynth (dser r y) 1+      in latch t t+    lg u = lag u 0.03+    n = mce [52,76,66,67,68,69]+    a = mce [0.35,0.15,0.04,0.05,0.16,0.07]+    d = mce [0.1,0.5,0.09,0.08,0.07,0.3]+    x = mouseX kr 0.5 1.25 Linear 0.2+    tn = lg (timed dinf n (d * x))+    ta = lg (timed dinf a (d * x))+in sinOsc ar (midiCps tn) 0 * ta++-- lg-timed (rd) ; monad+uid_st_eval (do+  let timed r y p =+          do d0 <- dserM r p+             d1 <- dconsM 0 d0+             d2 <- dserM r y+             let t = tDuty ar d1 0 RemoveSynth d2 1+             return (latch t t)+      lg u = return (lag u 0.03)+      n = mce [52,76,66,67,68,69]+      a = mce [0.35,0.15,0.04,0.05,0.16,0.07]+      d = mce [0.1,0.5,0.09,0.08,0.07,0.3]+      x = mouseX kr 0.5 1.25 Linear 0.2+  tn <- lg =<< timed dinf n (d * x)+  ta <- lg =<< timed dinf a (d * x)+  return (sinOsc ar (midiCps tn) 0 * ta))
+ Help/Graph/rd-tgrn.hs view
@@ -0,0 +1,24 @@+-- tgrn (rd)+let b = control kr "buf" 0+    trate = mouseY kr 2 120 Exponential 0.1+    dur = 1.2 / trate+    clk = impulse ar trate 0+    pos = mouseX kr 0 (bufDur kr b) Linear 0.1+    pan = whiteNoise kr * 0.6+    n = roundTo (whiteNoise kr * 3) 1+    rate = shiftLeft 1.2 n+in tGrains 2 clk b rate pos dur pan 0.5 2++-- tgrn (rd) ; id+let b = control kr "buf" 0+    trate = mouseY kr 2 120 Exponential 0.1+    dur = 1.2 / trate+    clk = impulse ar trate 0+    pos = mouseX kr 0 (bufDur kr b) Linear 0.1+    pan = whiteNoiseId 'α' kr * 0.6+    n = roundTo (whiteNoiseId 'β' kr * 3) 1+    rate = shiftLeft 1.2 n+in tGrains 2 clk b rate pos dur pan 0.5 2++---- ; load sndfile+withSc3 (async (b_allocRead 0 "/home/rohan/sw/hsc3-graphs/snd/2006-10-05.snd" 0 0))
+ Help/Graph/rd-trmlo.hs view
@@ -0,0 +1,73 @@+-- trmlo-u (rd)+let mWrp i l r = linLin_b i (midiCps l) (midiCps r)+    mWrp1 i m = mWrp i m (m + 1)+    mWrpN i m n = mWrp i m (m + n)+    o1 = let f = 5+             d = 3+             s = envSine d 0.1+             e = envGen kr 1 1 0 1 DoNothing s+             n = 65+             m = sinOsc kr f 0+         in pan2 (sinOsc ar (mWrp1 m n) 0) m e+    o2 = let f = iRand 5 9+             d = iRand 5 9+             s = envSine d (rand 0.1 0.2)+             e = envGen kr 1 1 0 1 DoNothing s+             n = iRand 69 72+             m = sinOsc kr f 0+         in pan2 (sinOsc ar (mWrp1 m n) 0) m e+    o3 = let f = iRand 5 9+             d = iRand 9 12+             s = envSine d (rand 0.1 0.2)+             e = envGen kr 1 1 0 1 DoNothing s+             n = iRand 69 72+             m = sinOsc kr f 0+             l = line kr 0 (iRand 1 5) d DoNothing+         in pan2 (blip ar (mWrp1 m (n + l)) (linLin_b m 1 2)) m e+    o4 = let f = iRand 5 18+             d = iRand 12 15+             s = envSine d (rand 0.1 0.2)+             e = envGen kr 1 5e-2 0 1 DoNothing s+             n = iRand 69 72+             m = sinOsc kr f 0+             l = line kr 0 (iRand 1 5) d RemoveSynth+             fr = mWrpN m (n + l) (iRand 1 5)+         in pan2 (blip ar fr (linLin_b m 1 (iRand 2 24))) m e+in o1 + o2 + o3 + o4++-- trmlo ; id+let mWrp i l r = linLin_b i (midiCps l) (midiCps r)+    mWrp1 i m = mWrp i m (m + 1)+    mWrpN i m n = mWrp i m (m + n)+    o1 = let f = 5+             d = 3+             s = envSine d 0.1+             e = envGen kr 1 1 0 1 DoNothing s+             n = 65+             m = sinOsc kr f 0+         in pan2 (sinOsc ar (mWrp1 m n) 0) m e+    o2 = let f = iRandId 'α' 5 9+             d = iRandId 'β' 5 9+             s = envSine d (randId 'γ' 0.1 0.2)+             e = envGen kr 1 1 0 1 DoNothing s+             n = iRandId 'δ' 69 72+             m = sinOsc kr f 0+         in pan2 (sinOsc ar (mWrp1 m n) 0) m e+    o3 = let f = iRandId 'ε' 5 9+             d = iRandId 'ζ' 9 12+             s = envSine d (randId 'η' 0.1 0.2)+             e = envGen kr 1 1 0 1 DoNothing s+             n = iRandId 'θ' 69 72+             m = sinOsc kr f 0+             l = line kr 0 (iRandId 'ι' 1 5) d DoNothing+         in pan2 (blip ar (mWrp1 m (n + l)) (linLin_b m 1 2)) m e+    o4 = let f = iRandId 'κ' 5 18+             d = iRandId 'λ' 12 15+             s = envSine d (randId 'μ' 0.1 0.2)+             e = envGen kr 1 5e-2 0 1 DoNothing s+             n = iRandId 'ν' 69 72+             m = sinOsc kr f 0+             l = line kr 0 (iRandId 'ξ' 1 5) d RemoveSynth+             fr = mWrpN m (n + l) (iRandId 'ο' 1 5)+         in pan2 (blip ar fr (linLin_b m 1 (iRandId 'π' 2 24))) m e+in o1 + o2 + o3 + o4
+ Help/Graph/sc-bottle-m.hs view
@@ -0,0 +1,33 @@+-- bottle (sc) ; texture=overlap,2,0,4,inf ; id+let freq = rand 220 880+    perc = envPerc 0.1 0.6+    ex = envGen kr 1 1 0 1 DoNothing perc * whiteNoise ar * 0.02+    flute = ringz ex freq 0.3+    r = resonz (pinkNoise ar) (5 + (freq / 2)) 0.1+    breath = envGen kr 1 1 0 1 DoNothing perc * r+    rapf i = i + allpassN i 0.1 (linRand 0.001 0.1 (-1)) 1.0 * 0.5+    cls i = let en = let c = EnvNum (-4) in (c,c,c)+                l = envLinen_c 0.01 3.0 1.0 1 en+                z = (breath + i) * envGen kr 1 1 0 1 RemoveSynth l+            in mce2 z z+in cls (iter 2 rapf flute)++-- bottle (sc) ; texture=overlap,2,0,4,inf+let bottle_m = do+      freq <- randM 220 880+      wn <- whiteNoiseM ar+      pn <- pinkNoiseM ar+      let perc = envPerc 0.1 0.6+          ex = envGen kr 1 1 0 1 DoNothing perc * wn * 0.02+          flute = ringz ex freq 0.3+          r = resonz pn (5 + (freq / 2)) 0.1+          breath = envGen kr 1 1 0 1 DoNothing perc * r+          rapf i = do x <- linRandM 0.001 0.1 (-1)+                      return (i + allpassN i 0.1 x 1.0 * 0.5)+          cls i = let en = let c = EnvNum (-4) in (c,c,c)+                      l = envLinen_c 0.01 3.0 1.0 1 en+                      z = (breath + i) * envGen kr 1 1 0 1 RemoveSynth l+                  in mce2 z z+      f <- chainM 2 rapf flute+      return (cls f)+in uid_st_eval bottle_m
+ Help/Graph/sp-insects-m.hs view
@@ -0,0 +1,19 @@+-- insects (sp)+let insect _ =+      let a = sinOsc kr (rand 1 10) 0 * 0.5 + 0.5+          o = sinOsc ar (rand 2000 3000 + lfNoise2 kr (rand 0.05 0.1 * 50 + 50)) (rand 0.05 0.1) * 0.005 * a+      in pan2 o (lfNoise2 kr (rand 0.05 0.1)) 1+in mixFill 60 insect++-- insects (sp) ; monad+let insect_m = do+      r1 <- randM 2000 3000+      r2 <- randM 0.05 0.1+      n1 <- lfNoise2M kr (r2 * 50 + 50)+      r4 <- randM 1 10+      r5 <- randM 0.05 0.1+      n2 <- lfNoise2M kr r5+      let a = sinOsc kr r4 0 * 0.5 + 0.5+          o = sinOsc ar (r1 + n1) r2 * 0.005 * a+      return (pan2 o n2 1)+in uid_st_eval (fmap sum (replicateM 60 insect_m))
+ Help/Graph/tb-1-4Tw.hs view
@@ -0,0 +1,6 @@+-- http://sccode.org/1-4Tw (tb)+let im = mix (impulse ar (mce3 1 (1/3) (1/5)) (mce3 0 0.133 0.5))+    f i = tDuty ar (max 0.25 (timer i)) 0 DoNothing 1 0+    g n i = sinOsc ar ((4000 + (i * 500))) 0 * decay2 n 0.01 0.2+    nd = zipWith g (iterate f im) [0..9]+in splay (mce nd) 1 1 0 True
+ Help/Graph/tm-drummer.hs view
@@ -0,0 +1,21 @@+-- drummer (tm)+let n = whiteNoise ar+    tempo = 4+    tr = impulse ar tempo 0+    tr_2 = pulseDivider tr 4 2+    tr_4 = pulseDivider tr 4 0+    snare = n * decay2 tr_2 0.005 0.5+    bass = sinOsc ar 60 0 * decay2 tr_4 0.005 0.5+    hihat = hpf n 10000 * decay2 tr 0.005 0.5+in pan2 (snare + bass + hihat) 0 0.4++-- drummer (tm) ; id+let n = whiteNoiseId 'α' ar+    tempo = 4+    tr = impulse ar tempo 0+    tr_2 = pulseDivider tr 4 2+    tr_4 = pulseDivider tr 4 0+    snare = n * decay2 tr_2 0.005 0.5+    bass = sinOsc ar 60 0 * decay2 tr_4 0.005 0.5+    hihat = hpf n 10000 * decay2 tr 0.005 0.5+in pan2 (snare + bass + hihat) 0 0.4
+ Help/Graph/tm-tw-463992770596577280.hs view
@@ -0,0 +1,13 @@+-- https://twitter.com/thormagnusson/status/463992770596577280 (tm) ; texture=overlap,60,15,3,inf+let f i =+      let x = constant i + 1+          e = lfNoise2 ar 0.5 * line ar 0 0.1 (rand 1 99) DoNothing / (x * 0.2)+      in sinOsc ar (30 * x + lfNoise2 ar 0.1 * 2) 0 * e+in mceFill 2 (\_ -> mixFill 24 f)++-- https://twitter.com/thormagnusson/status/463992770596577280 (tm) ; texture=overlap,60,15,3,inf ; id+let f z i =+      let x = constant i + 1+          e = lfNoise2Id z ar 0.5 * line ar 0 0.1 (randId z 1 99) DoNothing / (x * 0.2)+      in sinOsc ar (30 * x + lfNoise2Id z ar 0.1 * 2) 0 * e+in mceFillId 'α' 2 (\z _ -> mixFillId z 24 f)
+ Help/Graph/tw-tw-01.hs view
@@ -0,0 +1,6 @@+-- tim walters ; <https://swiki.hfbk-hamburg.de/MusicTechnology/899>+let f k i =+      let x = impulse kr ((0.5 ** i) / k) 0+      in sinOsc ar i (sinOsc ar ((i + k) ** i) 0 / (decay x (mce2 i (i + 1)) * k))+    s = mixFill 16 (\k -> mixFill 6 (f k))+in mix (mceTranspose (gVerb s 1 3 0.5 0.5 15 1 0.7 0.5 300 / 512))
+ Help/Graph/tw-tw-02.hs view
@@ -0,0 +1,14 @@+-- tim walters ; <https://swiki.hfbk-hamburg.de/MusicTechnology/899>+let mk k =+      let x f m j = sinOsc ar (f + (m * 4 * j)) m * (lfNoise1 ar (((j + 1) / f) * 4)) / 2+          pp y i = x (i * k * mce2 4 8) y i+      in foldl pp (x 0.1 0 8) [0 .. 8]+in sum (map mk [0 .. 7]) / 4++-- tim walters ; <https://swiki.hfbk-hamburg.de/MusicTechnology/899> ; id+let mk (z0,k) =+      let x z f m j = sinOsc ar (f + (m * 4 * j)) m * (lfNoise1Id (z0,z) ar (((j + 1) / f) * 4)) / 2+          pp y (z,i) = x z (i * k * mce2 4 8) y i+          y0 = x 'α' 0.1 0 8+      in foldl pp y0 (zip ['β' ..] [0 .. 8])+in sum (map mk (zip ['γ'..] [0 .. 7])) / 4
+ Help/Graph/unk-laser-bubble.hs view
@@ -0,0 +1,24 @@+-- laser bubble ; https://www.listarc.bham.ac.uk/lists/sc-users/msg14775.html+let n = 8+    laser_bubble _ =+      let xr = dxrand dinf (mce [0.1,0.2,0.3,0.4,0.5])+          lf = dstutter 2 xr+          du = duty ar lf 0 DoNothing lf+          tr = abs (hpz1 du) `greater_than` 0+          ph = sweep ar tr (1 / du)+      in linExp ph 0 1 (rand 50 100) (rand 500 2000)+    [s0,s1] = mceChannels (splay (sinOsc ar (mceFill n laser_bubble) 0) 1 1 0 True)+in limiter (rotate2 s0 s1 (lfSaw kr 0.1 0)) 1 0.01 * 0.25++-- laser bubble ; https://www.listarc.bham.ac.uk/lists/sc-users/msg14775.html ; id+let n = 8+    laser_bubble_f z =+      let xr = dxrandId z dinf (mce [0.1,0.2,0.3,0.4,0.5])+          lf = dstutterId z 2 xr+          du = duty ar lf 0 DoNothing lf+          tr = abs (hpz1 du) `greater_than` 0+          ph = sweep ar tr (1/du)+      in linExp ph 0 1 (randId z 50 100) (randId z 500 2000)+    f = mce (map laser_bubble_f (take n ['α'..]))+    [s0,s1] = mceChannels (splay (sinOsc ar f 0) 1 1 0 True)+in limiter (rotate2 s0 s1 (lfSaw kr 0.1 0)) 1 0.01 * 0.25
+ Help/Graph/unk-m21360.hs view
@@ -0,0 +1,41 @@+-- https://www.listarc.bham.ac.uk/lists/sc-users/msg21360.html+let k_sr = 48000+    b = mce2 (localBuf 1 k_sr) (localBuf 1 k_sr)+    del = mce [0.2,0.3,0.4,0.5] * rand 0.15 0.35+    loc = mce [-1,-0.7,0.6,1]+    hpp = mce [rand 300 600,rand 900 1200]+    avg = mce [8000,14000]+    sdt = mce [300,400]+    lpp = mce [rand 4300 4500,rand 4000 4200]+    sr = sampleRate+    local = localIn' 2 ar+    wn = line kr 0 1 0.1 DoNothing * whiteNoise ar * 0.03+    ph = delTapWr b (wn + local)+    fb = delTapRd b ph del 1+    p_fb = mix (pan2 fb loc 1)+    h_fb = hpf p_fb hpp+    ao = X.averageOutput (abs h_fb) (impulse kr (recip (avg / sr)) 0) -- RFWUGens+    n_fb = h_fb * (0.02 / clip (lag ao (sdt / sr)) 0.0001 1)+    l_fb = lpf n_fb lpp+in mrg [localOut l_fb,out 0 l_fb]++-- https://www.listarc.bham.ac.uk/lists/sc-users/msg21360.html ; id+let k_sr = 48000+    b = mce2 (localBufId 'α' 1 k_sr) (localBufId 'β' 1 k_sr)+    del = mce [0.2,0.3,0.4,0.5] * randId 'γ' 0.15 0.35+    loc = mce [-1,-0.7,0.6,1]+    hpp = mce [randId 'δ' 300 600,randId 'ε' 900 1200]+    avg = mce [8000,14000]+    sdt = mce [300,400]+    lpp = mce [randId 'ζ' 4300 4500,randId 'η' 4000 4200]+    sr = sampleRate+    local = localIn' 2 ar+    wn = line kr 0 1 0.1 DoNothing * whiteNoiseId 'θ' ar * 0.03+    ph = delTapWr b (wn + local)+    fb = delTapRd b ph del 1+    p_fb = mix (pan2 fb loc 1)+    h_fb = hpf p_fb hpp+    ao = X.averageOutput (abs h_fb) (impulse kr (recip (avg / sr)) 0) -- RFWUGens+    n_fb = h_fb * (0.02 / clip (lag ao (sdt / sr)) 0.0001 1)+    l_fb = lpf n_fb lpp+in mrg [localOut l_fb,out 0 l_fb]
+ Help/Graph/unk-no-input-fft.hs view
@@ -0,0 +1,21 @@+-- no input fft ; https://www.listarc.bham.ac.uk/liasts/sc-users/msg63383.html+let e_01 = envelope [0.0001,1,0.0001,0.01,0.0001] (map (* 512) (normalizeSum [1,2,2,50])) [EnvExp]+    e_ix e n = constant (envelope_at e (fromIntegral n))+    fft_size = 1024+    fft_f _ = fft (localBuf 1 (constant fft_size)) (dc ar 0) 0.5 0 1 0+    bin_f _mag phase bin =+      (e_ix e_01 bin * range 10 50 (sinOsc kr (rand 0 0.05) (rand 0 (2 * pi)))+      ,phase)+    gen_f n = pvcollect (fft_f n) fft_size bin_f 0 511 0+in ifft (mceFill 2 gen_f) 1 0++-- no input fft ; https://www.listarc.bham.ac.uk/liasts/sc-users/msg63383.html ; id+let e_01 = envelope [0.0001,1,0.0001,0.01,0.0001] (map (* 512) (normalizeSum [1,2,2,50])) [EnvExp]+    e_ix e n = constant (envelope_at e (fromIntegral n))+    fft_size = 1024+    fft_f z = fft (localBufId z 1 (constant fft_size)) (dc ar 0) 0.5 0 1 0+    bin_f z _mag phase bin =+      (e_ix e_01 bin * range 10 50 (sinOsc kr (randId (z,bin) 0 0.05) (randId (z,bin) 0 (2 * pi)))+      ,phase)+    gen_f z = pvcollect (fft_f z) fft_size (bin_f z) 0 511 0+in ifft (mce2 (gen_f 'α') (gen_f 'β')) 1 0
+ Help/Graph/unk-sin-gliss.hs view
@@ -0,0 +1,7 @@+-- sin gliss (unk)+let t = 60+    ln (x0,x1) = xLine kr x0 x1 t DoNothing+    m = [(0.5,0.5),(0.5,1),(1,1.19),(1.19,1.56),(1.56,2),(2.51,2),(3.01,2.66),(4.1,3.01),(4.1,4.1)]+    a = mce [0.25,0.25,1,0.8,0.5,0.9,0.4,0.3,0.6,0.1,0.1]+    f = mce (map ln m)+in splay (sinOsc ar (500 * f) 0 * 0.1 * a) 1 1 0 True
+ Help/Graph/unk-train.hs view
@@ -0,0 +1,38 @@+-- http://www.create.ucsb.edu/pipermail/sc-users/2007-August/035957.html+let time = 24+    steam =+      let piston = lfSaw ar (xLine ar 1 7 time DoNothing) 0+          air = lpf (whiteNoise ar * piston + pinkNoise ar * piston) 5000+          e = envGen ar 1 1 0 1 DoNothing (envSine time 9)+      in bpf air 600 (1 + e)+    whistle =+      let s = klankSpec [800,600,1200,990] [1,1,1,1] [1,1,1,1]+          t = [0,0,1,1,0,0,1,1,0,0,1,0]+          l = [2,0,0.2,0,0.2,0,0.8,0,4,0,3]+          d = Envelope t l (repeat EnvLin) Nothing Nothing 0+          e = envGen ar 1 1 0 (time / 10) DoNothing d+      in klank (whiteNoise ar * 0.004) 1 0 1 s * e+    loc = let e = Envelope [-0.8,0.8] [time + 2] [EnvSin,EnvSin] Nothing Nothing 0+          in envGen ar 1 1 0 1 RemoveSynth e+in pan2 (steam + whistle) loc 1++-- http://www.create.ucsb.edu/pipermail/sc-users/2007-August/035957.html ; id+let time = 24+    steam =+      let n1 = whiteNoiseId 'α' ar+          n2 = pinkNoiseId 'β' ar+          piston = lfSaw ar (xLine ar 1 7 time DoNothing) 0+          air = lpf (n1 * piston + n2 * piston) 5000+          e = envGen ar 1 1 0 1 DoNothing (envSine time 9)+      in bpf air 600 (1 + e)+    whistle =+      let n3 = whiteNoiseId 'γ' ar+          s = klankSpec [800,600,1200,990] [1,1,1,1] [1,1,1,1]+          t = [0,0,1,1,0,0,1,1,0,0,1,0]+          l = [2,0,0.2,0,0.2,0,0.8,0,4,0,3]+          d = Envelope t l (repeat EnvLin) Nothing Nothing 0+          e = envGen ar 1 1 0 (time / 10) DoNothing d+      in klank (n3 * 0.004) 1 0 1 s * e+    loc = let e = Envelope [-0.8,0.8] [time + 2] [EnvSin,EnvSin] Nothing Nothing 0+          in envGen ar 1 1 0 1 RemoveSynth e+in pan2 (steam + whistle) loc 1
+ Help/Notes/mul-add.help.hs view
@@ -0,0 +1,23 @@+---- ; mulAdd ; optimisations++The order of the multiplier inputs is significant regards multi-rate inputs.++sclang re-orders these if required.++hsc3 does not.++The graph below will crash scsynth.++    mulAdd 0.1 (sinOsc ar 440 0) 0.05++c.f.++    MulAdd.new(in: 0.1, mul: SinOsc.ar(freq: 440, phase: 0), add: 0.05)++Note: mulAdd with i-rate at input 0 and k-rate thereafter crashes scsynth.++    sinOsc ar (mulAdd (control ir "x" 110) (control kr "y" 2) (control ir "z" 110)) 0 * 0.1++c.f.++    0.05 + (0.1 * SinOsc.ar(freq: 440, phase: 0))
+ Help/Notes/sample-accuracy.help.hs view
@@ -0,0 +1,54 @@+---- ;++Phase cancellation, the `offsetOut` at bus 0 should cancel, the `out` at+bus 1 doesn't (or at least is exceedingly unlikely to).++sy_01 sr =+    let f = sr / 100+        o = sinOsc AR (constant f) 0 * 0.2+    in synthdef "sy_01" (mrg [offsetOut 0 o,out 1 o])++bnd_01 sr t =+    let latency = 0.2+        c = 100 / sr {- recip f -}+        m = s_new "sy_01" (-1) AddToHead 1 []+        p = bundle (t + latency) [m]+        q = bundle (t + latency + c/2) [m]+    in [p,q]++proc_01 :: Transport m => m ()+proc_01 = do+  sr <- serverSampleRateActual+  _ <- async (d_recv (sy_01 sr))+  t <- time+  mapM_ sendBundle (bnd_01 sr t)++withSc3 proc_01++The cancellation isn't completely reliable though.  In supercollider language it seems+to be better, though these _should_ be equivalent...++    Routine(+    {var sr = s.actualSampleRate+    ;var f = sr / 100+    ;var c = 1 / f+    ;var g = {var o = SinOsc.ar(f,0) * 0.2; OffsetOut.ar(0,o); Out.ar(1,o)}+    ;var sy = SynthDef("g",g)+    ;var m = ["/s_new", "g", -1, 0, 1]+    ;var latency = 0.2+    ;sy.send(s)+    ;s.sync+    ;s.sendBundle(latency,m)+    ;s.sendBundle(latency + (c/2),m)}).play++To see/hear scheduler clock and sample clock drift:++    Routine(+    {var g = {OffsetOut.ar(0,Saw.ar(400) * EnvGen.kr(Env.perc, doneAction: 2) * 0.2)}+    ;var h = {OffsetOut.ar(1,Saw.ar(800) * Decay2.ar(Impulse.ar(1)) * 0.2)}+    ;var t_delay = 0.25+    ;SynthDef("g",g).send(s)+    ;SynthDef("h",h).send(s)+    ;s.sync+    ;s.sendBundle(t_delay,["/s_new", "h", -1, 0, 1])+    ;inf.do({s.sendBundle(t_delay,["/s_new", "g", -1, 0, 1]); 1.0.wait})}).play
+ Help/Notes/signal-effect-group.help.hs view
@@ -0,0 +1,7 @@+-- decay ; ordinary graph ; ordinary key bindings place at head of group one+let d = dustId 'α' ar 1+    n = whiteNoiseId 'β' ar+in decay (d * 0.5) 0.2 * n++---- ; signal/effect model using separate group, operating at the same bus+withSc3 (playAt (-1, AddToTail, 2, []) (replaceOut 0 (combC (in' 1 ar 0) 0.2 0.2 3)))
+ Help/Nrt/nrt.02.hs view
@@ -0,0 +1,16 @@+import Sound.Osc.Packet {- hosc3 -}+import Sound.Sc3 {- hsc3 -}++sy :: Synthdef+sy = synthdef "sin" (out 0 (sinOsc ar (control kr "freq" 440) 0 * 0.2))++b0,b1,b2,b3 :: Bundle+b0 = bundle 0.0 [g_new [(1, AddToTail, 0)], d_recv sy]+b1 = bundle 0.5 [s_new "sin" 1001 AddToHead 1 []]+b2 = bundle 3.0 [n_free [1001]]+b3 = bundle 3.5 [nrt_end]++main :: IO ()+main = do+  writeNrt "/tmp/nrt.02.osc" (Nrt [b0,b1,b2,b3])+  nrt_exec_plain ("/tmp/nrt.02.osc",("_",0),("/tmp/nrt.02.wav",1),48000,PcmInt16,[])
+ Help/Server/b_alloc.help.hs view
@@ -0,0 +1,23 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_alloc"++Buffer indices are not restricted by the number of available buffers+at the server.  Below allocates a buffer at index 2 ^ 15.  Note the+b_alloc_setn1, which adds a b_set completion message to the b_alloc+message, is still asynchronous.++> import Sound.Sc3 {- hsc3 -}++> b0 :: Num n => n+> b0 = 2 ^ 15++> m0 = b_alloc_setn1 b0 0 [0,3,7,10]++    b0 == 2 ^ 15+    withSc3 (async m0)+    withSc3 (b_getn1_data b0 (0,4))++> g0 =+>     let x = mouseX KR 0 9 Linear 0.1+>         k = degreeToKey b0 x 12+>     in sinOsc AR (midiCps (48 + k)) 0 * 0.1
− Help/Server/b_alloc.help.lhs
@@ -1,11 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_alloc"--Buffer indices are not restricted by the number of available buffers-at the server.  Below allocates a buffer at index 8192.--> withSC3 (async (b_alloc_setn1 8192 0 [0,3,7,10]))--> let {x = mouseX KR 0 9 Linear 0.1->     ;k = degreeToKey 8192 x 12->     ;o = sinOsc AR (midiCPS (48 + k)) 0 * 0.1}-> in audition (out 0 o)
+ Help/Server/b_allocRead.help.hs view
@@ -0,0 +1,62 @@+---- ;help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_allocRead"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++Read an audio file into a buffer.++> f_00 = sfResolve "jonchaies.wav"+> m_00 = b_allocRead 0 f_00 0 0++    withSc3 (async m_00)++Audio data is loaded in IEEE 32-bit form, so in-memory storage can be+greater than on-disk storage.++$ sndfile-info data/audio/xenakis/jonchaies.wav+Sample Rate : 44100+Frames      : 42271320+Duration    : 00:15:58.533+$ du -h data/audio/xenakis/jonchaies.wav+162M    data/audio/xenakis/jonchaies.wav+$++    round ((16 * 60 * 44100 * 4 * 2) / (1024 * 1024)) == 323+    round ((42271320 * 2 * 4) / (1024 * 1024)) == 323++Query buffer.++> q_00 :: Connection UDP ()+> q_00 = do+>   sendMessage (b_query [0])+>   r <- waitReply "/b_info"+>   liftIO (print r)++    withSc3 q_00++Play buffer.++> g_00 =+>   let bufnum = 257+>       s = bufRateScale KR bufnum+>   in playBuf 1 AR bufnum s 1 0 NoLoop RemoveSynth++Re-read file into buffer with the same identifier.  The existing+buffer is freed but not before further memory is allocated,+intermediate in-memory use is greater than final memory use.++    withSc3 (async (b_allocRead 0 fn 0 0))++Free buffer.  Memory is immediately made free.++    withSc3 (async (b_free 0))++Small sample buffer++> f_01 = sfResolve "metal.wav"++    withSc3 (async m_01)++> m_01 :: Message+> m_01 = b_allocRead 0 f_01 0 0
− Help/Server/b_allocRead.help.lhs
@@ -1,44 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_allocRead"--> import Sound.SC3--Read a large audio file into a buffer.--> let fn = "/home/rohan/data/audio/xenakis/jonchaies.wav"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Audio data is loaded in IEEE 32-bit form, so in-memory storage can be-greater than on-disk storage.--$ sndfile-info data/audio/xenakis/jonchaies.wav-Sample Rate : 44100-Frames      : 42271320-Duration    : 00:15:58.533-$ du -h data/audio/xenakis/jonchaies.wav-162M    data/audio/xenakis/jonchaies.wav-$--> round ((16 * 60 * 44100 * 4 * 2) / (1024 * 1024)) == 323-> round ((42271320 * 2 * 4) / (1024 * 1024)) == 323--Query buffer.--> withSC3 (do {send (b_query [0])->             ;r <- waitReply "/b_info"->             ;liftIO (print r)})--Play buffer.--> let {n = 257; s = bufRateScale KR n}-> in audition (out 0 (playBuf 1 AR n s 1 0 NoLoop RemoveSynth))--Re-read file into buffer with the same identifier.  The existing-buffer is freed but not before further memory is allocated,-intermediate in-memory use is greater than final memory use.--> let fn = "/home/rohan/data/audio/xenakis/jonchaies.wav"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Free buffer.  Memory is immediately made free.--> withSC3 (async (b_free 0))
+ Help/Server/b_allocReadChannel.help.hs view
@@ -0,0 +1,34 @@+---- ;help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_allocReadChannel"++> import Data.List {- base -}+> import Data.List.Split {- split -}+> import Sound.Sc3 {- hsc3 -}++Read an audio file with many channels (here 1024)++> fn_00 = "/home/rohan/sw/hsc3-sf/data/au/mc-10-1024.au"++> m_00 = b_allocRead 0 fn_00 0 0++    > withSc3 (async_ m_00)++Query buffer++    > withSc3 (b_query1_unpack 0)++Read only specified channels++> m_01 = b_allocReadChannel 0 fn_00 0 0 [0 .. 7]++    > withSc3 (async_ m_01)++Query buffer++    > withSc3 (b_query1_unpack 0)++Examine buffer++    > let (nf,nc) = (10,8)+    > d <- withSc3 (b_getn1_data_segment 128 0 (0,nf * nc))+    > (putStrLn . unlines . transpose . chunksOf nc . map (\n -> if n > 0 then '1' else '0')) d
− Help/Server/b_allocReadChannel.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_allocReadChannel"
+ Help/Server/b_close.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_close"
− Help/Server/b_close.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_close"
+ Help/Server/b_fill.help.hs view
@@ -0,0 +1,1 @@+     Sound.Sc3.Lang.Help.viewServerHelp "/b_fill"
− Help/Server/b_fill.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_fill"
+ Help/Server/b_free.help.hs view
@@ -0,0 +1,11 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_free"++> import Sound.Sc3 {- hsc3 -}++It is safe to free un-allocated buffers.++    withSc3 (async (b_free (2 ^ 15)))++There is no multiple buffer form.++    withSc3 (mapM_ (\k -> async (b_free k)) [0..256])
− Help/Server/b_free.help.lhs
@@ -1,9 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_free"--It is safe to free un-allocated buffers.--> withSC3 (async (b_free (2 ^ 15)))--There is no multiple buffer form.--> withSC3 (mapM_ (\k -> async (b_free k)) [0..256])
+ Help/Server/b_gen.help.hs view
@@ -0,0 +1,32 @@+---- ; function to generate wavetable buffer using b_gen_cheby+mk_cheby a =+  let tbl_f = [Normalise, Wavetable, Clear]+      msg = [b_alloc 10 512 1, b_gen_cheby 10 tbl_f a]+  in withSc3 (mapM_ async msg)++---- ; generate various wavetables+mk_cheby [1, 0, 1, 1, 0, 1]+mk_cheby [0.25, 0.5, 0.25]+mk_cheby [1, 0, 1, 1, 0, 1, 0.5, 0, 0.25, 0, 0.75, 1]++---- ; generate sin table ; not wavetable+withSc3 (mapM_ maybe_async [b_alloc 10 256 1,b_gen_sine1 10 [Normalise, Clear] [1, 1/2, 1/3, 1/4, 1/5]])++---- ; plot wavetable (as in-buffer layout, as plain wavetable)+import Sound.Sc3.Plot {- hsc3-plot -}+withSc3 (Sound.Sc3.Plot.plot_buffer1 10)+withSc3 (Sound.Sc3.Plot.plot_wavetable1 10)++---- ; fetch generated buffer data ; compare to haskell generated buffer+withSc3 (b_fetch1 512 10)+Gen.sine1_nrm 256 [1, 1/2, 1/3, 1/4, 1/5]++---- ; generate tables in haskell+Sound.Sc3.Plot.plot_p1_ln [Gen.cheby 256 [1, 0, 1, 1, 0, 1]]+Sound.Sc3.Plot.plot_p1_ln [Gen.cheby 256 [0.25, 0.5, 0.25]]+Sound.Sc3.Plot.plot_p1_ln [Gen.cheby 256 [1, 0, 1, 1, 0, 1, 0.5, 0, 0.25, 0, 0.75, 1]]+Sound.Sc3.Plot.plot_p1_ln [Gen.chebyShaperTbl 256 [1, 0, 1, 1, 0, 1, 0.5, 0, 0.25, 0, 0.75, 1]]+Sound.Sc3.Plot.plot_p1_ln [Gen.sine1_nrm 256 [1, 1/2, 1/3, 1/4, 1/5]]++----- ; open remote scdoc help+Sound.Sc3.Common.Help.sc3_scdoc_help_server_command_open False "/b_gen"
− Help/Server/b_gen.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_gen"
+ Help/Server/b_get.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_get"
− Help/Server/b_get.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_get"
+ Help/Server/b_getn.help.hs view
@@ -0,0 +1,45 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_getn"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}+> import Sound.Sc3.Plot {- hsc3-plot -}++Allocate and generate wavetable buffer (256 frames)++> x_00 :: DuplexOSC m => m ()+> x_00 = do+>   async_ (b_alloc 0 256 1)+>   let f = [Normalise,Clear]+>   sendMessage (b_gen_sine1 0 f [1,1/2,1/3,1/4,1/5])++    > withSc3 x_00++Run simple read...++    > d0 <- withSc3 (b_getn1_data 0 (0,255))++and draw buffer++    > plotTable [d0]++Load sound file++> fn_00 = "/tmp/dx7.wav"++> m_00 = b_allocRead 1 fn_00 0 0++    > withSc3 (async_ m_00)++Run segmented read (n-frames of data in m-frame segments)...++> x_01 :: DuplexOSC m => m [Double]+> x_01 = do+>   let m = 155+>       n = m * 3+>   b_getn1_data_segment m 1 (0,n)++    > d1 <- withSc3 x_01++and draw buffer++    > plotImpulses [d1]
− Help/Server/b_getn.help.lhs
@@ -1,32 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_getn"--> import Sound.OSC {- hosc -}-> import Sound.SC3 {- hsc3 -}-> import Sound.SC3.Plot {- hsc3-plot -}--Allocate and generate wavetable buffer (256 frames)--> withSC3 (do {_ <- async (b_alloc 0 256 1)->             ;let f = [Normalise,Clear]->              in send (b_gen_sine1 0 f [1,1/2,1/3,1/4,1/5])})--Run simple read...--> d0 <- withSC3 (b_getn1_data 0 (0,255))--and draw buffer--> plotTable [d0]--Load sound file--> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 1 fn 0 0))--Run segmented read (2^15 frames in 1024 frame segments)...--> d1 <- withSC3 (b_getn1_data_segment 1024 1 (0,2^15))--and draw buffer--> plotTable [d1]
+ Help/Server/b_info.help.hs view
@@ -0,0 +1,3 @@+/b_info is the message returned by scsynth in response to /b_query.++Fields are: buffer-id:int num-frames:int num-channels:int sample-rate:float
+ Help/Server/b_query.help.hs view
@@ -0,0 +1,48 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_query"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++Allocate and generate wavetable buffer++> mk_b :: Transport m => m ()+> mk_b = do+>   _ <- async (b_alloc 0 256 1)+>   let f = [Normalise,Wavetable,Clear]+>   sendMessage (b_gen_sine1 0 f [1,1/2,1/3,1/4,1/5])++    withSc3 mk_b++Query buffer++> qr_b :: Transport m => m ()+> qr_b = do+>   sendMessage (b_query [0])+>   r <- waitReply "/b_info"+>   liftIO (print r)++    withSc3 qr_b++Variant that unpacks the result.++Query is of (buffer-id/int,#-frames/int,#-channels/int,sample-rate/float).++    withSc3 (b_query1_unpack 0)++Play buffer++> g_01 = osc AR 0 220 0 * 0.1++Free buffer++    withSc3 (async (b_free 0))++Query multiple un-allocated buffers++> qr_unalloc :: Transport m => m ()+> qr_unalloc = do+>   sendMessage (b_query [2^14,2^15])+>   r <- waitReply "/b_info"+>   liftIO (print r)++    withSc3 qr_unalloc
− Help/Server/b_query.help.lhs
@@ -1,30 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_query"--> import Sound.OSC {- hosc -}-> import Sound.SC3 {- hsc3 -}--Allocate and generate wavetable buffer--> withSC3 (do {_ <- async (b_alloc 0 256 1)->             ;let f = [Normalise,Wavetable,Clear]->              in send (b_gen_sine1 0 f [1,1/2,1/3,1/4,1/5])})--Query buffer--> withSC3 (do {send (b_query [0])->             ;r <- waitReply "/b_info"->             ;liftIO (print r)})--Play buffer--> audition (out 0 (osc AR 0 220 0 * 0.1))--Free buffer--> withSC3 (async (b_free 0))--Query multiple un-allocated buffers--> withSC3 (do {send (b_query [2^14,2^15])->             ;r <- waitReply "/b_info"->             ;liftIO (print r)})
+ Help/Server/b_read.help.hs view
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_read"
− Help/Server/b_read.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_read"
+ Help/Server/b_readChannel.help.hs view
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_readChannel"
− Help/Server/b_readChannel.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_readChannel"
+ Help/Server/b_set.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_set"
− Help/Server/b_set.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_set"
+ Help/Server/b_setn.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_setn"
− Help/Server/b_setn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_setn"
+ Help/Server/b_write.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_write"
− Help/Server/b_write.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_write"
+ Help/Server/b_zero.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/b_zero"
− Help/Server/b_zero.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_zero"
+ Help/Server/c_fill.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/c_fill"
− Help/Server/c_fill.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_fill"
+ Help/Server/c_get.help.hs view
@@ -0,0 +1,14 @@+     Sound.Sc3.Lang.Help.viewServerHelp "/c_get"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> g_01 = out 0 (tRand 'α' 220 2200 (dust 'β' KR 1))++> x_01 :: Transport m => m ()+> x_01 = do+>   sendMessage (c_get [0])+>   r <- waitReply "/c_set"+>   liftIO (print r)++    > withSc3 x_01
− Help/Server/c_get.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_get"--> import Sound.OSC {- hosc -}-> import Sound.SC3.ID {- hsc3 -}--> audition (out 0 (tRand 'α' 220 2200 (dust 'β' KR 1)))--> withSC3 (do {send (c_get [0])->             ;r <- waitReply "/c_set"->             ;liftIO (print r)})
+ Help/Server/c_getn.help.hs view
@@ -0,0 +1,19 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/c_getn"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++Get control bus data.++> get_c :: Transport m => m ()+> get_c = do+>   sendMessage (c_getn [(0,3)])+>   r <- waitReply "/c_setn"+>   liftIO (print r)++    withSc3 (sendMessage (c_setn [(0,[1,880,0.5])]))+    withSc3 get_c++Function to get and unpack control bus data.++    withSc3 (c_getn1_data (0,3))
− Help/Server/c_getn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_getn"
+ Help/Server/c_set.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/c_set"
− Help/Server/c_set.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_set"
+ Help/Server/c_setn.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/c_setn"
− Help/Server/c_setn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_setn"
+ Help/Server/clearSched.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/clearSched"
− Help/Server/clearSched.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/clearSched"
+ Help/Server/d_free.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/d_free"
− Help/Server/d_free.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_free"
+ Help/Server/d_load.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/d_load"
− Help/Server/d_load.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_load"
+ Help/Server/d_loadDir.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/d_loadDir"
− Help/Server/d_loadDir.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_loadDir"
+ Help/Server/d_recv.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/d_recv"
− Help/Server/d_recv.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_recv"
+ Help/Server/dumpOSC.help.hs view
@@ -0,0 +1,15 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/dumpOSC"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> ex_01 :: Transport m => m ()+> ex_01 = do+>   sendMessage (dumpOSC TextPrinter)+>   play (out 0 (sinOsc AR (rand 'α' 440 880) 0 * 0.1))+>   pauseThread 1.0+>   reset+>   sendMessage (dumpOSC NoPrinter)++    withSc3 ex_01+    withSc3 (sendMessage (dumpOSC TextPrinter))
− Help/Server/dumpOSC.help.lhs
@@ -1,8 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/dumpOSC"--> import Sound.SC3.ID--> withSC3 (send (dumpOSC TextPrinter))-> audition (out 0 (sinOsc AR (rand 'α' 440 880) 0 * 0.1))-> withSC3 reset-> withSC3 (send (dumpOSC NoPrinter))
+ Help/Server/g_deepFree.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_deepFree"
− Help/Server/g_deepFree.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_deepFree"
+ Help/Server/g_freeAll.help.hs view
@@ -0,0 +1,8 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_freeAll"++> import Sound.OSC+> import Sound.Sc3++> m1 = g_freeAll [0]++     > withSc3 (sendMessage m1)
− Help/Server/g_freeAll.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_freeAll"
+ Help/Server/g_head.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_head"
− Help/Server/g_head.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_head"
+ Help/Server/g_new.help.hs view
@@ -0,0 +1,12 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_new"++The root node of the synthesiser tree is a group with ID zero.++By convention there is a group with ID one at the root group, but+this is only a convention.  We need to make the group.++> import Sound.Sc3 {- hsc3 -}++> m_01 = g_new [(1,AddToTail,0)]++    > withSc3 (send m_00)
− Help/Server/g_new.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_new"--The root node of the synthesiser tree is a group with ID zero.--By convention there is a group with ID one at the root group, but-this is only a convention.  We need to make the group.--> import Sound.SC3--> withSC3 (send (g_new [(1,AddToTail,0)]))
+ Help/Server/g_queryTree.help.hs view
@@ -0,0 +1,43 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_queryTree"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}+> import qualified Data.Tree as T {- containers -}++    withSc3 serverTree >>= mapM_ putStrLn++> g_00 =+>   let f = control KR "freq" 440+>   in saw AR f * 0.05++> d_01 = synthdef "saw" (out 0 g_00)++> m_02 = [d_recv d_01,g_new [(100,AddToTail,1)],s_new0 "saw" 1000 AddToTail 100]++    > withSc3 (mapM_ maybe_async m_02)++> run_query_tree = withSc3 (g_queryTree1_unpack 0)++    > qt <- run_query_tree+    > print qt+    > withSc3 (sendMessage (g_dumpTree [(0,True)]))+    > queryNode_to_group_seq qt++There is support for extracting the node tree into the standard haskell+tree data type.++    > r_tr = queryTree_rt qt+    > putStrLn (unlines ["::TREE::",T.drawTree (fmap query_node_pp r_tr)])++> q_03 =+>   [int32 1,int32 0,int32 2,int32 1,int32 1+>   ,int32 100,int32 1+>   ,int32 1000,int32 (-1),string "saw"+>   ,int32 1,string "freq",float 440.0+>   ,int32 2,int32 0]++> t_04 = queryTree q_03++> t_05 = queryTree_rt t_04++    >> putStrLn (unlines ["::TREE::",T.drawTree (fmap query_node_pp t_05)])
− Help/Server/g_queryTree.help.lhs
@@ -1,28 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_queryTree"--> import Sound.OSC {- hosc -}-> import Sound.SC3 {- hsc3 -}--> let d = let {f = control KR "freq" 440->             ;o = saw AR f * 0.05}->         in synthdef "saw" (out 0 o)--> withSC3 (async (d_recv d) >>->          send (g_new [(100,AddToTail,1)]) >>->          send (s_new0 "saw" 1000 AddToTail 100))--> r <- withSC3 (send (g_queryTree [(0,True)]) >>->               waitReply "/g_queryTree.reply")--> print r--> withSC3 (send (g_dumpTree [(0,True)]))--There is support for extracting the node tree into standard haskell-tree data type.--> import qualified Data.Tree as T {- containers -}--> let tr = queryTree_rt (queryTree (messageDatum r))--> putStrLn (unlines ["::TREE::",T.drawTree (fmap query_node_pp tr)])
+ Help/Server/g_tail.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/g_tail"
− Help/Server/g_tail.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_tail"
+ Help/Server/n_after.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_after"
− Help/Server/n_after.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_after"
+ Help/Server/n_before.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_before"
− Help/Server/n_before.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_before"
+ Help/Server/n_fill.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_fill"
− Help/Server/n_fill.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_fill"
+ Help/Server/n_free.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_free"
− Help/Server/n_free.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_free"
+ Help/Server/n_map.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_map"
− Help/Server/n_map.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_map"
+ Help/Server/n_mapn.help.hs view
@@ -0,0 +1,31 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_mapn"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> f_01 nm def ix = control_f64 KR (Just ix) nm def+> g_01 = out (f_01 "bus" 0 0) (sinOsc AR (f_01 "freq" 440 1) 0 * f_01 "amp" 0.1 2)+> s_01 = synthdef "sin" g_01+> m_01 = d_recv s_01+> m_02 = s_new "sin" 1001 AddToHead 1 []+> m_03 = n_mapn 1001 [(0,0,3)]++    withSc3 (async (d_recv s_01) >> mapM_ sendMessage [m_02,m_03])++    withSc3 (sendMessage (n_mapn 1001 [(0,0,3)]))+    withSc3 (sendMessage (c_setn [(0,[1,880,0.2])]))+    withSc3 (sendMessage (c_setn [(0,[0,220,0.3])]))++    withSc3 (sendMessage (n_set1 1001 "bus" 1))+    withSc3 (sendMessage (n_set1 1001 "freq" 440))+    withSc3 (sendMessage (n_set1 1001 "amp" 0.2))+    withSc3 (sendMessage (n_setn 1001 [(0,[1,880,0.2])]))++n_mapn and n_setn only work if the control is given as an index and not as a name.++s.sendMsg("/n_mapn",1001,"bus",0,3);+s.sendMsg("/c_setn",0,3,0,880,0.1);++s.sendMsg("/n_mapn",1001,0,0,3);+s.sendMsg("/c_setn",0,3,0,880,0.1);+s.sendMsg("/c_setn",0,3,1,220,0.3);
− Help/Server/n_mapn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_mapn"
+ Help/Server/n_query.help.hs view
@@ -0,0 +1,21 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_query"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> d_00 =+>   let f = control KR "freq" 440+>       o = saw AR f * 0.1+>   in synthdef "saw" (out 0 o)++> m_00 = s_new0 "saw" 1000 AddToTail 1++   > withSc3 (async_ (d_recv d_00) >> sendMessage m_00)++> x_01 :: Transport m => m Message+> x_01 = withNotifications $ do+>   sendMessage (n_query [1000])+>   waitReply "/n_info"++    > r <- withSc3 x_01+    > print r
− Help/Server/n_query.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_query"--> import Sound.OSC-> import Sound.SC3--> let d = let {f = control KR "freq" 440->             ;o = saw AR f * 0.1}->         in synthdef "saw" (out 0 o)--> withSC3 (async (d_recv d) >>->          send (s_new0 "saw" 1000 AddToTail 1))--> r <- withSC3 (send (n_query [1000]) >>->               waitReply "/n_info")--> print r
+ Help/Server/n_run.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_run"
− Help/Server/n_run.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_run"
+ Help/Server/n_set.help.hs view
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/n_set"
− Help/Server/n_set.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_set"
+ Help/Server/n_setn.help.hs view
@@ -0,0 +1,5 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/n_setn"++At some point /n_setn was broken at scsynth, it no longer behaves as specified.++/n_setn only works correctly with <int> indices, and not when the index is given as a <string>.
− Help/Server/n_setn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_setn"
+ Help/Server/n_trace.help.hs view
@@ -0,0 +1,13 @@+     Sound.Sc3.Lang.Help.viewServerHelp "/n_trace"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> m_01 =+>   [d_recv defaultSynthdef+>   ,s_new "default" 100 AddToHead 1 []]++> m_02 = n_trace [1,100]++    > withSc3 (mapM_ maybe_async m_01)+    > withSc3 (sendMessage m_02)
− Help/Server/n_trace.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_trace"
+ Help/Server/notify.help.hs view
@@ -0,0 +1,17 @@+     Sound.Sc3.Lang.Help.viewServerHelp "/notify"++> import Sound.OSC {- hosc -}+> import Sound.Sc3 {- hsc3 -}++> g_01 = sinOsc AR (rand 'α' 440 880) 0 * 0.1++> s_01 = synthdef "g" (out 0 g_01)++> m_01 = s_new "g" (-1) AddToHead 1 []++> f_01 :: DuplexOSC m => m Message+> f_01 = do+>   async_ (d_recv s_01)+>   withNotifications (sendMessage m_01 >> waitReply "/n_go")++    withSc3 (f_01 >>= \r -> liftIO (print r))
− Help/Server/notify.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/notify"--> import Sound.OSC-> import Sound.SC3.ID--> let g = synthdef "g" (out 0 (sinOsc AR (rand 'a' 440 880) 0 * 0.1))-> in withSC3 (async (d_recv g))--> withSC3 (withNotifications (do {send (s_new "g" (-2) AddToHead 1 [])->                                ;waitReply "/n_go"}))
+ Help/Server/quit.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/quit"
− Help/Server/quit.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/quit"
+ Help/Server/s_get.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/s_get"
− Help/Server/s_get.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_get"
+ Help/Server/s_getn.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/s_getn"
− Help/Server/s_getn.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_getn"
+ Help/Server/s_new.help.hs view
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/s_new"
− Help/Server/s_new.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_new"
+ Help/Server/s_noid.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/s_noid"
− Help/Server/s_noid.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_noid"
+ Help/Server/status.help.hs view
@@ -0,0 +1,5 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/status"++> import Sound.Sc3 {- hsc3 -}++    withSc3 serverStatus >>= mapM putStrLn
− Help/Server/status.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/status"
+ Help/Server/sync.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/sync"
− Help/Server/sync.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/sync"
+ Help/Server/tr.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/tr"
− Help/Server/tr.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/tr"
+ Help/Server/u_cmd.help.hs view
@@ -0,0 +1,1 @@+    Sound.Sc3.Lang.Help.viewServerHelp "/u_cmd"
− Help/Server/u_cmd.help.lhs
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/u_cmd"
− Help/UGen/Analysis/amplitude.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Amplitude"-> Sound.SC3.UGen.DB.ugenSummary "Amplitude"--> import Sound.SC3--> let {s = soundIn 4->     ;a = amplitude KR s 0.01 0.01}-> in audition (out 0 (pulse AR 90 0.3 * a))--> let {s = soundIn 4->     ;f = amplitude KR s 0.5 0.5 * 1200 + 400}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--> let {s = soundIn 4->     ;a = amplitude AR s 0.5 0.05}-> in audition (out 0 (s * a))
− Help/UGen/Analysis/compander.help.lhs
@@ -1,33 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Compander"-> Sound.SC3.UGen.DB.ugenSummary "Compander"--> import Sound.SC3--Example signal to process.-> let z = let {e = decay2 (impulse AR 8 0 * lfSaw KR 0.3 0 * 0.3) 0.001 0.3->             ;p = mix (pulse AR (mce [80, 81]) 0.3)}->         in e * p--> let z = soundIn 4--> audition (out 0 z)--Noise gate (no hold, no hysteresis)-> let x = mouseX KR 0.01 0.15 Linear 0.1-> in audition (out 0 (mce [z, compander z z x 10 1 0.002 0.15]))--Compressor-> let x = mouseX KR 0.01 1 Linear 0.1-> in audition (out 0 (mce [z, compander z z x 1 (1/3) 0.01 0.01]))--Expander-> let x = mouseX KR 0.01 1 Linear 0.1-> in audition (out 0 (mce [z, compander z z x 1 3 0.01 0.1]))--Limiter-> let x = mouseX KR 0.01 1 Linear 0.1-> in audition (out 0 (mce [z, compander z z x 1 (1/10) 0.01 0.01]))--Sustainer-> let x = mouseX KR 0.01 0.15 Linear 0.1-> in audition (out 0 (mce [z, compander z z x (1/3) 1.0 0.01 0.05]))
− Help/UGen/Analysis/pitch.help.lhs
@@ -1,27 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Pitch"-> Sound.SC3.UGen.DB.ugenSummary "Pitch"--> import Sound.SC3--> let {x = mouseX KR 220 660 Linear 0.1->     ;y = mouseY KR 0.05 0.25 Linear 0.1->     ;s = sinOsc AR x 0 * y->     ;a = amplitude KR s 0.05 0.05->     ;f = pitch s 440 60 4000 100 16 7 0.02 0.5 1 0}-> in audition (out 0 (mce [s, sinOsc AR (mceChannel 0 f / 2) 0 * a]))--> let {s = soundIn 4->     ;a = amplitude KR s 0.1 0.1->     ;f = pitch s 440 60 4000 100 16 7 0.02 0.5 1 0}-> in audition (out 0 (mce [s, sinOsc AR (mceChannel 0 f) 0 * a]))--Comparison of input frequency (x) and tracked oscillator frequency (f).-Output is printed to the console by scsynth.-> let {x = mouseX KR 440 880 Exponential 0.1->     ;o = sinOsc AR x 0 * 0.1->     ;[f,_] = mceChannels (pitch o 440 60 4000 100 16 7 0.02 0.5 1 0)->     ;r = sinOsc AR f 0 * 0.1->     ;t = impulse KR 4 0->     ;pf = poll t f (label "f") 0->     ;px = poll t x (label "x") 0}-> in audition (mrg [out 0 (mce2 o r),pf,px])
− Help/UGen/Analysis/runningSum.help.lhs
@@ -1,25 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "RunningSum"-> Sound.SC3.UGen.DB.ugenSummary "RunningSum"--> import Sound.SC3--distorts of course - would need scaling-> audition (out 0 (runningSum (soundIn 4) 40))--Running Average over x samples-> let {x = 100->     ;o = runningSum (lfSaw AR 440 0) x * recip x}-> in audition (out 0 o)--RMS Power-> let {input = lfSaw AR 440 0->     ;numsamp = 30->     ;o = runningSum (input * input) numsamp / (sqrt numsamp)}-> in audition (out 0 o)--composite UGen-> audition (out 0 (runningSumRMS (soundIn 4) 40))--> let {z = soundIn 4->     ;a = runningSum z 40}-> in audition (out 0 (sinOsc AR 440 0 * a * 0.1))
− Help/UGen/Analysis/slope.help.lhs
@@ -1,12 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Slope"-> Sound.SC3.UGen.DB.ugenSummary "Slope"--> import Sound.SC3.ID--> let {a = lfNoise2 'a' KR 2 {- quadratic noise -}->     ;s = 1/2->     ;b = slope a * s {- first derivative, line segments -}->     ;c = slope b * squared s {- second derivative, constant segments -}->     ;f = mce [a, b, c] * 220 + 220->     ;o = sinOsc AR f 0 * (1/3)}-> in audition (out 0 (mix o))
− Help/UGen/Analysis/zeroCrossing.help.lhs
@@ -1,7 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "ZeroCrossing"-> Sound.SC3.UGen.DB.ugenSummary "ZeroCrossing"--> import Sound.SC3--> let a = sinOsc AR (sinOsc KR 1 0 * 600 + 700) 0 * 0.1-> in audition (out 0 (mce [a, impulse AR (zeroCrossing a) 0 * 0.25]))
− Help/UGen/Buffer/bufAllpassC.help.lhs
@@ -1,13 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufAllpassC"-> Sound.SC3.UGen.DB.ugenSummary "BufAllpassC"--> import Sound.SC3.ID--Allocate buffer-> withSC3 (async (b_alloc 0 44100 1))--Filtered decaying noise bursts-> let {d = dust 'a' AR 1->     ;n = whiteNoise 'a' AR->     ;x = decay d 0.2 * n * 0.25}-> in audition (out 0 (bufAllpassC 0 x 0.25 6))
− Help/UGen/Buffer/bufAllpassL.help.lhs
@@ -1,1 +0,0 @@-See bufAllpassC
− Help/UGen/Buffer/bufAllpassN.help.lhs
@@ -1,1 +0,0 @@-See bufAllpassC
− Help/UGen/Buffer/bufChannels.help.lhs
@@ -1,2 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufChannels"-> Sound.SC3.UGen.DB.ugenSummary "BufChannels"
− Help/UGen/Buffer/bufCombC.help.lhs
@@ -1,30 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufCombC"-> Sound.SC3.UGen.DB.ugenSummary "BufCombC"--> import Sound.SC3.ID--Allocate buffer zero (required for examples below)-> withSC3 (async (b_alloc 0 44100 1))--Filtered decaying noise bursts-> let {d = dust 'a' AR 1->     ;n = whiteNoise 'a' AR->     ;x = decay d 0.2 * n * 0.25}-> in audition (out 0 (bufCombC 0 x 0.25 6))--Comb filter as resonator. The resonant fundamental is equal to-reciprocal of the delay time.-> let {n = whiteNoise 'a' AR->     ;dt = xLine KR 0.0001 0.01 20 RemoveSynth}-> in audition (out 0 (bufCombC 0 (n * 0.1) dt 0.2))--With negative feedback-> let {n = whiteNoise 'a' AR->     ;dt = xLine KR 0.0001 0.01 20 RemoveSynth}-> in audition (out 0 (bufCombC 0 (n * 0.1) dt (-0.2)))--Used as an echo.-> let {d = dust 'a' AR 1->     ;n = whiteNoise 'a' AR->     ;i = decay (d * 0.5) 0.2 * n}-> in audition (out 0 (bufCombC 0 i 0.2 3))
− Help/UGen/Buffer/bufCombL.help.lhs
@@ -1,1 +0,0 @@-See bufCombC
− Help/UGen/Buffer/bufCombN.help.lhs
@@ -1,1 +0,0 @@-See bufCombC
− Help/UGen/Buffer/bufDelayC.help.lhs
@@ -1,21 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufDelayC"-> Sound.SC3.UGen.DB.ugenSummary "BufDelayC"--> import Sound.SC3.ID--Allocate buffer zero (required for examples below)-> withSC3 (async (b_alloc 0 44100 1))--Dust randomly triggers Decay to create an exponential decay envelope-for the WhiteNoise input source.  The input is mixed with the delay.-> let {t = dust 'a' AR 1->     ;n = whiteNoise 'a' AR->     ;d = decay t 0.5 * n * 0.3}-> in audition (out 0 (bufDelayC 0 d 0.2 + d))--Mouse control for delay time-> let {t = dust 'a' AR 1->     ;n = whiteNoise 'b' AR->     ;d = decay t 0.3 * n->     ;x = mouseX KR 0.0 0.2 Linear 0.1}-> in audition (out 0 (d + bufDelayC 0 d x))
− Help/UGen/Buffer/bufDelayL.help.lhs
@@ -1,1 +0,0 @@-See bufDelayC
− Help/UGen/Buffer/bufDelayN.help.lhs
@@ -1,1 +0,0 @@-See bufDelayC
− Help/UGen/Buffer/bufDur.help.lhs
@@ -1,15 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufDur"-> Sound.SC3.UGen.DB.ugenSummary "BufDur"--> import Sound.SC3--Load sound file to buffer zero (required for examples)--> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Read without loop, trigger reset based on buffer duration--> let {t = impulse AR (recip (bufDur KR 0)) 0->     ;p = sweep t (bufSampleRate KR 0)}-> in audition (out 0 (bufRdL 1 AR 0 p NoLoop))
− Help/UGen/Buffer/bufFrames.help.lhs
@@ -1,17 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufFrames"-> Sound.SC3.UGen.DB.ugenSummary "BufFrames"--> import Sound.SC3--Load sound file to buffer zero (required for examples)-> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Read without loop, trigger reset based on buffer duration-> let p = phasor AR 0 (bufRateScale KR 0) 0 (bufFrames KR 0) 0-> in audition (out 0 (bufRdL 1 AR 0 p NoLoop))--Mouse location drags play head-> let {r = mce [0.05,0.075 .. 0.15]->     ;p = k2A (mouseX KR 0 (bufFrames KR 0) Linear r)}-> in audition (out 0 (mix (bufRdL 1 AR 0 p NoLoop)))
− Help/UGen/Buffer/bufRateScale.help.lhs
@@ -1,13 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufRateScale"-> Sound.SC3.UGen.DB.ugenSummary "BufRateScale"--> import Sound.SC3.ID--Load sound file to buffer zero (required for examples)-> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Read buffer at 3/4 reported sample rate.-> let {r = 0.75 * bufRateScale KR 0->     ;p = phasor AR 0 r 0 (bufFrames KR 0) 0}-> in audition (out 0 (bufRdL 1 AR 0 p NoLoop))
− Help/UGen/Buffer/bufRd.help.lhs
@@ -1,38 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufRd"-> Sound.SC3.UGen.DB.ugenSummary "BufRd"--> import Sound.SC3.ID {- hsc3 -}--Load sound file to buffer zero (required for examples)--> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Phasor as phase input--> let {sc = bufRateScale KR 0->     ;tr = impulse AR (recip (bufDur KR 0)) 0->     ;ph = phasor AR tr sc 0 (bufFrames KR 0) 0}-> in audition (out 0 (bufRdL 1 AR 0 ph NoLoop))--Audio rate sine oscillator as phase input--> let phase = sinOsc AR 0.1 0 * bufFrames KR 0 * bufRateScale KR 0-> in audition (out 0 (bufRd 1 AR 0 phase Loop NoInterpolation))--There are constructors, bufRd{N|L|C}, for the fixed cases.--> let {x = mouseX KR (mce [5, 10]) 100 Linear 0.1->     ;n = lfNoise1 'α' AR x}-> in audition (out 0 (bufRdL 1 AR 0 (n * bufFrames KR 0 * bufRateScale KR 0) Loop))--Allocate and generate (non-wavetable) buffer--> withSC3 (do {_ <- async (b_alloc 11 256 1)->             ;let f = [Normalise,Clear]->              in send (b_gen_sine1 11 f [1,1/2,1/3,1/4,1/5])})--Fixed frequency wavetable oscillator--> let phase = linLin (saw AR 440) (-1) 1 0 1 * bufFrames KR 11-> in audition (out 0 (bufRd 1 AR 11 phase Loop NoInterpolation * 0.1))
− Help/UGen/Buffer/bufSampleRate.help.lhs
@@ -1,12 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufSampleRate"-> Sound.SC3.UGen.DB.ugenSummary "BufSampleRate"--> import Sound.SC3--Load sound file to buffer zero (required for examples)-> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Sine tone derived from sample rate of buffer an 440Hz tone.-> let f = mce [bufSampleRate KR 0 * 0.01, 440]-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Buffer/detectIndex.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DetectIndex"-> Sound.SC3.UGen.DB.ugenSummary "DetectIndex"--> import Sound.SC3--Allocate and set values at buffer ten-> withSC3 (async (b_alloc_setn1 10 0 [2,3,4,0,1,5]))--Find indexes and map to an audible frequency range.-> let {n = 6->     ;x = floorE (mouseX KR 0 n Linear 0.1)->     ;i = detectIndex 10 x}-> in audition (out 0 (sinOsc AR (linExp i 0 n 200 700) 0 * 0.1))--Free buffer.-> withSC3 (send (b_free 10))
− Help/UGen/Buffer/index.help.lhs
@@ -1,14 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Index"-> Sound.SC3.UGen.DB.ugenSummary "Index"--> import Sound.SC3--Allocate and set values at buffer ten-> withSC3 (async (b_alloc_setn1 10 0 [50,100,200,400,800,1600]))--Index buffer for frequency values-> let f = index 10 (lfSaw KR 2 3 * 4)-> in audition (out 0 (sinOsc AR (mce [f,f * 9]) 0 * 0.1))--Free buffer-> withSC3 (send (b_free 10))
− Help/UGen/Buffer/indexInBetween.help.lhs
@@ -1,18 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "IndexInBetween"-> Sound.SC3.UGen.DB.ugenSummary "IndexInBetween"--> import Sound.SC3--Allocate and set values at buffer ten-> withSC3 (async (b_alloc_setn1 10 0 [200,210,400,430,600,800]))--Index into buffer for frequency values-> let {f0 = mouseX KR 200 900 Linear 0.1->     ;i = indexInBetween 10 f0->     ;l0 = index 10 i->     ;l1 = index 10 (i + 1)->     ;f1 = linLin (frac i) 0 1 l0 l1}-> in audition (out 0 (sinOsc AR (mce [f0,f1]) 0 * 0.1))--Free buffer-> withSC3 (send (b_free 10))
− Help/UGen/Buffer/osc.help.lhs
@@ -1,45 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Osc"-> Sound.SC3.UGen.DB.ugenSummary "Osc"--> import Sound.SC3--Allocate and generate wavetable buffer--> withSC3 (do {_ <- async (b_alloc 10 512 1)->             ;let f = [Normalise,Wavetable,Clear]->              in send (b_gen_sine1 10 f [1,1/2,1/3,1/4,1/5])})--Fixed frequency wavetable oscillator--> audition (out 0 (osc AR 10 220 0 * 0.1))--Modulate frequency--> let f = xLine KR 2000 200 1 DoNothing-> in audition (out 0 (osc AR 10 f 0 * 0.1))--As frequency modulator--> let f = osc AR 10 (xLine KR 1 1000 9 RemoveSynth) 0 * 200 + 800-> in audition (out 0 (osc AR 10 f 0 * 0.1))--As phase modulatulator--> let p = osc AR 10 (xLine KR 20 8000 10 RemoveSynth) 0 * 2 * pi-> in audition (out 0 (osc AR 10 800 p * 0.1))--Fixed frequency wavetable oscillator--> audition (out 0 (osc AR 10 220 0 * 0.1))--Change the wavetable while its playing--> let f = [Normalise,Wavetable,Clear]-> in withSC3 (send (b_gen_sine1 10 f [1,0.6,1/4]))--Send directly calculated wavetable--> import Sound.SC3.Lang.Collection {- hsc3-lang -}-> import Sound.SC3.Lang.Math.Window-> let t = to_wavetable (triangular_table 512)-> withSC3 (send (b_setn1 10 0 t))
− Help/UGen/Buffer/playBuf.help.lhs
@@ -1,85 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "PlayBuf"-> Sound.SC3.UGen.DB.ugenSummary "PlayBuf"--> import Sound.SC3--Load sound file to buffer zero (single channel file required for examples)--> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Play once only.--> let s = bufRateScale KR 0-> in audition (out 0 (playBuf 1 AR 0 s 1 0 NoLoop RemoveSynth))--Play in infinite loop.--> let s = bufRateScale KR 0-> in audition (out 0 (playBuf 1 AR 0 s 1 0 Loop DoNothing))--Trigger playback at each pulse.--> let {t = impulse KR 2 0->     ;s = bufRateScale KR 0}-> in audition (out 0 (playBuf 1 AR 0 s t 0 NoLoop DoNothing))--Trigger playback at each pulse (diminishing intervals).--> let {f = xLine KR 0.1 100 10 RemoveSynth->     ;t = impulse KR f 0->     ;s = bufRateScale KR 0}-> in audition (out 0 (playBuf 1 AR 0 s t 0 NoLoop DoNothing))--Loop playback, accelerating pitch.--> let r = xLine KR 0.1 100 60 RemoveSynth-> in audition (out 0 (playBuf 1 AR 0 r 1 0 Loop DoNothing))--Sine wave control of playback rate, negative rate plays backwards.--> let {f = xLine KR 0.2 8 30 RemoveSynth->     ;r = fSinOsc KR f 0 * 3 + 0.6->     ;s = bufRateScale KR 0 * r}-> in audition (out 0 (playBuf 1 AR 0 s 1 0 Loop DoNothing))--Release buffer.--> withSC3 (send (b_free 0))--Channel mismatch, single channel buffer, two channel playBuf, result-is silence and channel mismatch message in server log.--> let fn = "/home/rohan/data/audio/pf-c5.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--> let s = bufRateScale KR 0-> in audition (out 0 (playBuf 2 AR 0 s 1 0 Loop DoNothing))--Graph will sound after loading a two channel signal to buffer, and-stop again after loading a single channel sound file.--> let fn = "/home/rohan/data/audio/sp/tinguely.aif"-> in withSC3 (async (b_allocRead 0 fn 0 0))--Scan sequence of buffers:--> let {n = 29 * 6->     ;b = mouseX KR 0 n Linear 0.2->     ;r = bufRateScale KR b}-> in audition (out 0 (playBuf 1 AR b r 1 0 Loop DoNothing))--In sclanguage:--{var fn = "/home/rohan/data/audio/pf-c5.aif"-;s.sendMsg("/b_allocRead",0,fn,0,0)}.value--{var sc = BufRateScale.kr(0)-;Out.ar(0,PlayBuf.ar(2,0,sc,1,0,1,0))}.play--{var fn = "/home/rohan/data/audio/sp/tinguely.aif"-;s.sendMsg("/b_allocRead",0,fn,0,0)}.value--{var b = MouseX.kr(32,64,0,0.2)-;var r = BufRateScale.kr(b)-;Out.ar(0,PlayBuf.ar(1,b,r,1,0,1,0))}.play
− Help/UGen/Buffer/recordBuf.help.lhs
@@ -1,25 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "RecordBuf"-> Sound.SC3.UGen.DB.ugenSummary "RecordBuf"--> import Sound.SC3--Allocate a buffer (assume SR of 48k)--> withSC3 (async (b_alloc 0 (48000 * 4) 1))--Record for four seconds (until end of buffer)--> let o = formant AR (xLine KR 400 1000 4 DoNothing) 2000 800 * 0.125-> in audition (mrg2 (out 0 o)->                   (recordBuf AR 0 0 1 0 1 NoLoop 1 RemoveSynth o))--Play it back--> let p = playBuf 1 AR 0 1 1 0 NoLoop RemoveSynth-> in audition (out 0 p)--Mix second signal equally with existing signal, replay to hear--> let o = formant AR (xLine KR 200 1000 4 DoNothing) 2000 800 * 0.125-> in audition (mrg2 (out 0 o)->                   (recordBuf AR 0 0 0.5 0.5 1 NoLoop 1 RemoveSynth o))
− Help/UGen/Buffer/vOsc.help.lhs
@@ -1,31 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "VOsc"-> Sound.SC3.UGen.DB.ugenSummary "VOsc"--> import Sound.SC3--Allocate and fill tables 0 to 7.--> let {square a = a * a->     ;bf = [Normalise,Wavetable,Clear]->     ;harm i = let {n = square (i + 1)->                   ;f j = square ((n - j) / n)}->                in map f [0 .. n - 1]->     ;setup i = do {i' <- return (fromIntegral i)->                   ;_ <- async (b_alloc i 1024 1)->                   ;send (b_gen_sine1 i bf (harm i'))}}-> in withSC3 (mapM_ setup [0 .. 7])--Oscillator at buffers 0 through 7, mouse selects buffer.--> let {x = mouseX KR 0 7 Linear 0.1->     ;y = mouseY KR 0.01 0.2 Exponential 0.2}-> in audition (out 0 (vOsc AR x (mce [120, 121]) 0 * y))--> import Sound.SC3.Lang.Random.IO {- hsc3-lang -}--Reallocate buffers while oscillator is running.--> let {bf = [Normalise,Wavetable,Clear]->     ;resetTable i = do {h <- nrrand 12 0 1->                        ;send (b_gen_sine1 i bf h)}}-> in withSC3 (mapM_ resetTable [0 .. 7])
− Help/UGen/Buffer/vOsc3.help.lhs
@@ -1,24 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "VOsc3"-> Sound.SC3.UGen.DB.ugenSummary "VOsc3"--> import Sound.SC3--allocate and fill tables 0 to 7.--> let {square a = a * a->     ;bf = [Normalise,Wavetable,Clear]->     ;harm i = let {n = square (i + 1)->                   ;f j = square ((n - j) / n)}->                in map f [0 .. n - 1]->     ;setup i = do {i' <- return (fromIntegral i)->                   ;_ <- async (b_alloc i 1024 1)->                   ;send (b_gen_sine1 i bf (harm i'))}}-> in withSC3 (mapM_ setup [0 .. 7])--oscillator at buffers 0 through 7, mouse selects buffer.--> let {x = mouseX KR 0 7 Linear 0.1->     ;y = mouseY KR 0.01 0.2 Exponential 0.2->     ;o1 = vOsc3 AR x 120 121 129->     ;o2 = vOsc3 AR x 119 123 127}-> in audition (out 0 (mce2 o1 o2 * y))
− Help/UGen/Chaos/crackle.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Crackle"-> Sound.SC3.UGen.DB.ugenSummary "Crackle"--> import Sound.SC3--> audition (out 0 (crackle AR 1.95 * 0.2))--Modulate chaos parameter--> audition (out 0 (crackle AR (line KR 1.0 2.0 3 RemoveSynth) * 0.2))
− Help/UGen/Chaos/cuspL.help.lhs
@@ -1,19 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "CuspL"-> Sound.SC3.UGen.DB.ugenSummary "CuspL"--> import Sound.SC3--Vary frequency-> let x = mouseX KR 20 sampleRate Linear 0.1-> in audition (out 0 (cuspL AR x 1.0 1.99 0 * 0.3))--Mouse-controlled parameters.-> let {x = mouseX KR 0.9 1.1 Linear 0.1->     ;y = mouseY KR 1.8 2.0 Linear 0.1}-> in audition (out 0 (cuspL AR (sampleRate / 4) x y 0 * 0.3))--As frequency control.-> let {x = mouseX KR 0.9 1.1 Linear 0.1->     ;y = mouseY KR 1.8 2.0 Linear 0.1->     ;n = cuspL AR 40 x y 0 * 0.3}-> in audition (out 0 (sinOsc AR (n * 800 + 900) 0 * 0.4))
− Help/UGen/Chaos/cuspN.help.lhs
@@ -1,1 +0,0 @@-See cuspL
− Help/UGen/Chaos/fbSineC.help.lhs
@@ -1,29 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "FBSineC"-> Sound.SC3.UGen.DB.ugenSummary "FBSineC"--> import Sound.SC3.ID--SC3 default values.-> let o = fbSineC AR (sampleRate / 4) 1 0.1 1.1 0.5 0.1 0.1 * 0.2-> in audition (out 0 o)--Increase feedback-> let {fb = line KR 0.01 4 10 DoNothing->     ;o = fbSineC AR sampleRate 1 fb 1.1 0.5 0.1 0.1 * 0.2}-> in audition (out 0 o)--Increase phase multiplier-> let {a = line KR 1 2 10 DoNothing->     ;o = fbSineC AR sampleRate 1 0 a 0.5 0.1 0.1 * 0.2}-> in audition (out 0 o)--Randomly modulate parameters-> let {madd a m = (+ a) . (* m)->     ;x = mouseX KR 1 12 Linear 0.1->     ;n e = lfNoise2 e KR x->     ;n0 = madd 1e4 1e4 (n 'a')->     ;n1 = madd 33 32 (n 'b')->     ;n2 = madd 0 0.5 (n 'c')->     ;n3 = madd 1.05 0.05 (n 'd')->     ;n4 = madd 0.3 0.3 (n 'e')}-> in audition (out 0 (fbSineC AR n0 n1 n2 n3 n4 0.1 0.1 * 0.2))
− Help/UGen/Chaos/fbSineL.help.lhs
@@ -1,1 +0,0 @@-See fbSineC
− Help/UGen/Chaos/fbSineN.help.lhs
@@ -1,1 +0,0 @@-See fbSineC
− Help/UGen/Chaos/gbmanL.help.lhs
@@ -1,1 +0,0 @@-See GbmanN
− Help/UGen/Chaos/gbmanN.help.lhs
@@ -1,20 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "GbmanN"-> Sound.SC3.UGen.DB.ugenSummary "GbmanN"--> import Sound.SC3--default initial params-> let x = mouseX KR 20 sampleRate Linear 0.2-> in audition (out 0 (gbmanN AR x 1.2 2.1 * 0.1))--change initial params-> let x = mouseX KR 20 sampleRate Linear 0.2-> in audition (out 0 (gbmanN AR x (-0.7) (-2.7) * 0.1))--wait for it...-> let x = mouseX KR 20 sampleRate Linear 0.2-> in audition (out 0 (gbmanN AR x 1.2 2.0002 * 0.1))--as a frequency control-> let f = gbmanN AR 40 1.2 2.1 * 400 + 500-> in audition (out 0 (sinOsc AR f 0 * 0.4))
− Help/UGen/Chaos/henonC.help.lhs
@@ -1,1 +0,0 @@-See henonN
− Help/UGen/Chaos/henonL.help.lhs
@@ -1,1 +0,0 @@-See henonN
− Help/UGen/Chaos/henonN.help.lhs
@@ -1,25 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "HenonN"-> Sound.SC3.UGen.DB.ugenSummary "HenonN"--> import Sound.SC3.ID--With SC3 default initial parameters.-> let x = mouseX KR 20 sampleRate Linear 0.1-> in audition (out 0 (henonN AR x 1.4 0.3 0 0 * 0.1))--With mouse-control of parameters.-> let {x = mouseX KR 1 1.4 Linear 0.1->     ;y = mouseY KR 0 0.3 Linear 0.1}-> in audition (out 0 (henonN AR (sampleRate / 4) x y 0 0 * 0.1))--With randomly modulated parameters.-> let {n0 = lfNoise2 'a' KR 1 * 0.20 + 1.20->     ;n1 = lfNoise2 'a' KR 1 * 0.15 + 0.15}-> in audition (out 0 (henonN AR (sampleRate / 8) n0 n1 0 0 * 0.1))--As a frequency control.-> let {x = mouseX KR 1 1.4 Linear 0.1->     ;y = mouseY KR 0 0.3 Linear 0.1->     ;f0 = 40->     ;f = henonN AR f0 x y 0 0 * 800 + 900}-> in audition (out 0 (sinOsc AR f 0 * 0.4))
− Help/UGen/Chaos/latoocarfianC.help.lhs
@@ -1,18 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "LatoocarfianC"-> Sound.SC3.UGen.DB.ugenSummary "LatoocarfianC"--> import Sound.SC3.ID--SC3 default initial parameters.-> let x = mouseX KR 20 sampleRate Linear 0.1-> in audition (out 0 (latoocarfianC AR x 1 3 0.5 0.5 0.5 0.5 * 0.2))--Randomly modulate all parameters.-> let {[n0,n1,n2,n3] = map (\e -> lfNoise2 e KR 5) "abcd"->     ;f = sampleRate / 4->     ;a = n0 * 1.5 + 1.5->     ;b = n1 * 1.5 + 1.5->     ;c = n2 * 0.5 + 1.5->     ;d = n3 * 0.5 + 1.5->     ;o = latoocarfianC AR f a b c d 0.5 0.5 * 0.2}-> in audition (out 0 o)
− Help/UGen/Chaos/linCongC.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "LinCongC"-> Sound.SC3.UGen.DB.ugenSummary "LinCongC"--> import Sound.SC3.ID--Default SC3 initial parameters.-> let x = mouseX KR 20 sampleRate Linear 0.1-> in audition (out 0 (linCongC AR x 1.1 0.13 1 0 * 0.2))--Randomly modulate parameters.-> let {fr = [1,0.1,0.1,0.1]->     ;[n0,n1,n2,m] = map (\(i,j) -> lfNoise2 i KR j) (zip "abde" fr)->     ;f = n0 * 1e4 + 1e4->     ;a = n1 * 0.5 + 1.4->     ;c = n2 * 0.1 + 0.1}-> in audition (out 0 (linCongC AR f a c m 0 * 0.2))
− Help/UGen/Chaos/linCongL.help.lhs
@@ -1,1 +0,0 @@-See linCongC
− Help/UGen/Chaos/linCongN.help.lhs
@@ -1,1 +0,0 @@-See linCongC
− Help/UGen/Chaos/logistic.help.lhs
@@ -1,15 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Logistic"-> Sound.SC3.UGen.DB.ugenSummary "Logistic"--> import Sound.SC3--SC3 default parameters-> audition (out 0 (logistic AR 3 1000 0.5))--Onset of chaos-> audition (out 0 (logistic AR (line KR 3.55 3.6 5 DoNothing) 1000 0.01))--Mouse control-> let {x = mouseX KR 3 3.99 Linear 0.1->     ;y = mouseY KR 10 10000 Exponential 0.1}-> in audition (out 0 (logistic AR x y 0.25 * 0.5))
− Help/UGen/Chaos/lorenzL.help.lhs
@@ -1,22 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "LorenzL"-> Sound.SC3.UGen.DB.ugenSummary "LorenzL"--> import Sound.SC3.ID--Vary frequency-> let x = mouseX KR 20 sampleRate Linear 0.1-> in audition (out 0 (lorenzL AR x 10 27 2.667 0.05 0.1 0 0 * 0.3))--Randomly modulate params-> let {madd a m = (+ a) . (* m)->     ;n e = lfNoise0 e KR 0.5->     ;n0 = madd 10 2 (n 'a')->     ;n1 = madd 38 20 (n 'b')->     ;n2 = madd 2 1.5 (n 'c')->     ;o = lorenzL AR sampleRate n0 n1 n2 0.05 0.1 0 0 * 0.2}-> in audition (out 0 o)--As frequency control-> let {x = mouseX KR 1 200 Linear 0.1->     ;n = lorenzL AR x 10 28 2.667 0.05 0.1 0 0}-> in audition (out 0 (sinOsc AR (lag n 0.003 * 800 + 900) 0 * 0.4))
− Help/UGen/Chaos/quadC.help.lhs
@@ -1,1 +0,0 @@-See quadN
− Help/UGen/Chaos/quadL.help.lhs
@@ -1,1 +0,0 @@-See quadN
− Help/UGen/Chaos/quadN.help.lhs
@@ -1,13 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "QuadN"-> Sound.SC3.UGen.DB.ugenSummary "QuadN"--> import Sound.SC3--> audition (out 0 (quadC AR 4000 1 (-1) (-0.75) 0 * 0.2))--> let x = mouseX KR 3.5441 4 Linear 0.1-> in audition (out 0 (quadC AR 4000 (negate x) x 0 0.1 * 0.4))--> let {x = mouseX KR 3.5441 4 Linear 0.1->     ;f = quadC AR 4 (negate x) x 0 0.1 * 800 + 900}-> in audition (out 0 (sinOsc AR f 0 * 0.4))
− Help/UGen/Chaos/rossler.help.lhs
− Help/UGen/Control/mrg2.help.lhs
@@ -1,24 +0,0 @@-> :t mrg2--> import Sound.SC3--mrg2 defines a node indicating a multiple root graph.-> let {l = out 0 (sinOsc AR 300 0 * 0.1)->     ;r = out 1 (sinOsc AR 900 0 * 0.1)}-> in audition (mrg2 l r)--there is a leftmost rule, so that mrg nodes need not-be terminal.-> let {l = sinOsc AR 300 0 * 0.1->     ;r = out 1 (sinOsc AR 900 0 * 0.1)}-> in audition (out 0 (mrg2 l r))--the leftmost node may be an mce node-> let {l = sinOsc AR (mce2 300 400) 0 * 0.1->     ;r = out 1 (sinOsc AR 900 0 * 0.1)}-> in audition (out 0 (mrg2 l r))--the implementation is not thorough-> let {l = sinOsc AR (mce2 300 400) 0 * 0.1->     ;r = out 1 (sinOsc AR 900 0 * 0.1)}-> in audition (out 0 (mrg2 l r + mrg2 l r))
− Help/UGen/Control/trigControl.help.lhs
@@ -1,38 +0,0 @@-> import Sound.SC3 {- hsc3 -}--Graph with the three types of non-audio controls.--> let u = let {freq = control KR "freq" 440->             ;phase = control IR "phase" 0->             ;gate = tr_control "gate" 1->             ;amp = control KR "amp" 0.1->             ;e = envGen KR gate amp 0 1 DoNothing (envASR 0.01 0.1 1 EnvLin)}->         in sinOsc AR freq phase * e--Make a drawing--> import Sound.SC3.UGen.Dot {- hsc3-ugen -}--> draw (out 0 u)--Listen--> audition_at (10,AddToHead,1) (out 0 u)--Set frequency and the trigger gate.--> withSC3 (send (n_set1 10 "freq" 2200))--> withSC3 (send (n_set1 10 "gate" 1))--Make a control rate graph to write freq and gate values.--> let c = out 0 (mce2 (tRand 'α' 220 2200 (dust 'β' KR 1)) (dust 'γ' KR 3))--Add it _before_ the node it will map to, the trigger is only on the bus for the current cycle.--> audition_at (-1,AddBefore,10) c--Map the control values at the audio graph.--> withSC3 (send (n_map 10 [("freq",0),("gate",1)]))
− Help/UGen/Demand/dbrown.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dbrown"-> Sound.SC3.UGen.DB.ugenSummary "Dbrown"--> import Sound.SC3.ID--> let {n = dbrown 'α' dinf 0 15 1->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dbufrd.help.lhs
@@ -1,40 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dbufrd"-> Sound.SC3.UGen.DB.ugenSummary "Dbufrd"--> import Sound.SC3.ID {- hsc3 -}-> import System.Random {- random -}--setup pattern at buffer 10--> let n = randomRs (200.0,500.0) (mkStdGen 0)-> in withSC3 (async (b_alloc_setn1 10 0 (take 24 n)))--pattern as frequency input--> let {s = dseq 'α' 3 (mce [0,3,5,0,3,7,0,5,9])->     ;b = dbrown 'β' 5 0 23 1->     ;p = dseq 'γ' dinf (mce [s,b])->     ;t = dust 'δ' KR 10->     ;r = dbufrd 'ε' 10 p Loop}-> in audition (out 0 (sinOsc AR (demand t 0 r) 0 * 0.1))--setup time pattern--> let {i = randomRs (0,2) (mkStdGen 0)->     ;n = map ([1,0.5,0.25] !!) i}-> in withSC3 (async (b_alloc_setn1 11 0 (take 24 n)))--requires buffers 10 and 11 as allocated above--> let {s = dseq 'α' 3 (mce [0,3,5,0,3,7,0,5,9])->     ;b = dbrown 'β' 5 0 23 1->     ;p = dseq 'γ' dinf (mce [s,b])->     ;j = dseries 'δ' dinf 0 1->     ;d = dbufrd 'ε' 11 j Loop->     ;l = dbufrd 'ζ' 10 p Loop->     ;f = duty KR (d * 0.5) 0 DoNothing l}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--free buffers--> withSC3 (async (b_free 10) >> async (b_free 11))
− Help/UGen/Demand/dbufwr.help.lhs
@@ -1,23 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dbufwr"-> Sound.SC3.UGen.DB.ugenSummary "Dbufwr"--> import Sound.SC3 {- hsc3 -}-> import qualified Sound.SC3.Monad as M {- hsc3 -}--> do {s1 <- M.dseries 30 0 3->    ;s2 <- M.dseries 30 0 1->    ;s3 <- M.dseries 16 1 1->    ;s4 <- M.dwhite 8 1 16->    ;s5 <- M.dseq dinf (mce2 s3 s4)->    ;wt <- M.dust KR 1                  {- write trigger -}->    ;rp <- M.dseries dinf 0 1           {- read pointer -}->    ;wp <- M.dseq dinf (mce2 s1 s2)     {- write pointer -}->    ;r <- M.dbufrd 0 rp Loop            {- reader -}->    ;w <- M.dbufwr 0 wp (s5 * 60) Loop  {- writer -}->    ;let {d = demand wt 0 w->         ;f = lag (demand (impulse KR 16 0) 0 r) 0.01->         ;o = sinOsc AR (f * mce2 1 1.01) 0 * 0.1->         ;g = mrg [d, out 0 o]->         ;run = do {_ <- async (b_alloc_setn1 0 0 (replicate 24 210))->                   ;play g}}->     in withSC3 run}
− Help/UGen/Demand/demand.help.lhs
@@ -1,32 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Demand"-> Sound.SC3.UGen.DB.ugenSummary "Demand"--> import Sound.SC3.ID-> import qualified Sound.SC3.Monad as M--> do {r <- M.dust KR 1->    ;s <- M.dgeom dinf (midiCPS 72) (midiRatio 1)->    ;let {t = impulse KR 10 0->         ;f = demand t r s->         ;o = sinOsc AR (mce [f,f + 0.7]) 0}->     in audition (out 0 (max (cubed o) 0 * 0.1))}--> let {n = diwhite 'α' dinf 60 72->     ;t = impulse KR 10 0->     ;s = midiCPS n->     ;f = demand t 0 s->     ;o = sinOsc AR (mce [f,f + 0.7]) 0}-> in audition (out 0 (cubed (cubed o) * 0.1))--audio rate (poll output is equal for x1 and x2)--> let {i = lfNoise2 'α' AR 8000->     ;d = dseq 'β' dinf (mce [i])->     ;x = mouseX KR 1 3000 Exponential 0.2->     ;t = impulse AR x 0->     ;x1 = demand t 0 d->     ;x2 = latch i t->     ;s = mce2 x1 x2->     ;p = poll t s (mce2 (label "x1") (label "x2")) 0->     ;o = sinOsc AR (s * 300 + 400) 0 * 0.1}-> in audition (mrg2 (out 0 o) p)
− Help/UGen/Demand/demandEnvGen.help.lhs
@@ -1,91 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DemandEnvGen"-> Sound.SC3.UGen.DB.ugenSummary "DemandEnvGen"--> import Sound.SC3.ID--Frequency ramp, exponential curve.--> let {l = dseq 'α' dinf (mce2 440 9600)->     ;y = mouseY KR 0.01 3 Exponential 0.2->     ;s = env_curve_shape EnvExp->     ;f = demandEnvGen AR l y s 0 1 1 1 0 1 DoNothing}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--Frequency envelope with random times.--> let {l = dseq 'α' dinf (mce [204,400,201,502,300,200])->     ;t = drand 'β' dinf (mce [1.01,0.2,0.1,2.0])->     ;y = mouseY KR 0.01 3 Exponential 0.2->     ;s = env_curve_shape EnvCub->     ;f = demandEnvGen AR l (t * y) s 0 1 1 1 0 1 DoNothing}-> in audition (out 0 (sinOsc AR (f * mce2 1 1.01) 0 * 0.1))--Frequency modulation--> let {n = dwhite 'α' dinf 200 1000->     ;x = mouseX KR (-0.01) (-4) Linear 0.2->     ;y = mouseY KR 1 3000 Exponential 0.2->     ;s = env_curve_shape (EnvNum undefined)->     ;f = demandEnvGen AR n (sampleDur * y) s x 1 1 1 0 1 DoNothing->     ;o = sinOsc AR f 0 * 0.1}-> in audition (out 0 o)--Short sequence with doneAction, linear--> let {l = dseq 'α' 1 (mce [1300,500,800,300,400])->     ;s = env_curve_shape EnvLin->     ;f = demandEnvGen KR l 2 s 0 1 1 1 0 1 RemoveSynth}-> in audition (out 0 (sinOsc AR (f * mce2 1 1.01) 0 * 0.1))--Gate, mouse x on right side of screen toggles gate--> let {n = roundTo (dwhite 'α' dinf 300 1000) 100->     ;x = mouseX KR 0 1 Linear 0.2->     ;g = x >* 0.5->     ;f = demandEnvGen AR n 0.1 5 0.3 g 1 1 0 1 DoNothing->     ;o = sinOsc AR (f * mce2 1 1.21) 0 * 0.1}-> in audition (out 0 o)--gate-mouse x on right side of screen toggles sample and hold-mouse button does hard reset--> let {l = dseq 'α' 2 (mce [dseries 'β' 5 400 200,500,800,530,4000,900])->     ;x = mouseX KR 0 1 Linear 0.2->     ;g = (x >* 0.5) - 0.1->     ;b = mouseButton KR 0 1 0.2->     ;r = (b >* 0.5) * 2->     ;s = env_curve_shape EnvSin->     ;f = demandEnvGen KR l 0.1 s 0 g r 1 0 1 DoNothing->     ;o = sinOsc AR (f * mce2 1 1.001) 0 * 0.1}-> in audition (out 0 o)--initialise coordinate buffer-layout is (initial-level,duration,level,..,loop-duration)--> withSC3 (async (b_alloc_setn1 0 0 [0,0.5,0.1,0.5,1,0.01]))--> let {b = 0->     ;l_i = dseries 'β' dinf 0 2->     ;d_i = dseries 'γ' dinf 1 2->     ;l = dbufrd 'δ' b l_i Loop->     ;d = dbufrd 'ε' b d_i Loop->     ;s = env_curve_shape EnvLin->     ;e = demandEnvGen KR l d s 0 1 1 1 0 5 RemoveSynth->     ;f = midiCPS (60 + (e * 12))}-> in audition (out 0 (sinOsc AR (f * mce2 1 1.01) 0 * 0.1))--change envelope by setting values or indeed reallocating buffer--> withSC3 (send (b_set1 0 1 0.1))-> withSC3 (async (b_alloc_setn1 0 0 [0.5,0.9,0.1,0.1,1,0.01]))--read envelope break-points from buffer, here simply duration/level pairs.-the behavior is odd if the curve is zero (ie. flat segments).--> let {b = asLocalBuf 'α' [61,1,60,2,72,1,55,5,67,9,67]->     ;lvl = dbufrd 'β' b (dseries 'γ' 6 0 2) Loop->     ;dur = dbufrd 'δ' b (dseries 'ε' 5 1 2) Loop->     ;e = demandEnvGen KR lvl dur 1 0 1 1 1 0 1 RemoveSynth->     ;o = sinOsc AR (midiCPS e) 0 * 0.1}-> in audition (out 0 o)
− Help/UGen/Demand/dgeom.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dgeom"-> Sound.SC3.UGen.DB.ugenSummary "Dgeom"--> import Sound.SC3.ID--> let {n = dgeom 'α' 15 1 1.2->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dibrown.help.lhs
@@ -1,4 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dibrown"-> Sound.SC3.UGen.DB.ugenSummary "Dibrown"--See dbrown
− Help/UGen/Demand/diwhite.help.lhs
@@ -1,4 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Diwhite"-> Sound.SC3.UGen.DB.ugenSummary "Diwhite"--See dwhite
− Help/UGen/Demand/drand.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Drand"-> Sound.SC3.UGen.DB.ugenSummary "Drand"--> import Sound.SC3.ID--> let {n = drand 'α' dinf (mce [1, 3, 2, 7, 8])->     ;x = mouseX KR 1 400 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dseq.help.lhs
@@ -1,36 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dseq"-> Sound.SC3.UGen.DB.ugenSummary "Dseq"--> import Sound.SC3.ID--> let {n = dseq 'α' 3 (mce [1, 3, 2, 7, 8])->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--At audio rate.--> let {n = dseq 'α' dinf (mce [1,3,2,7,8,32,16,18,12,24])->     ;x = mouseX KR 1 10000 Exponential 0.1->     ;t = impulse AR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--The SC2 Sequencer UGen is somewhat like the sequ function below--> let {sequ e s tr = demand tr 0 (dseq e dinf (mce s))->     ;t = impulse AR 6 0->     ;n0 = sequ 'α' [60,62,63,58,48,55] t->     ;n1 = sequ 'β' [63,60,48,62,55,58] t->     ;o = lfSaw AR (midiCPS (mce2 n0 n1)) 0 * 0.1}-> in audition (out 0 o)--Rather than MCE expansion at /tr/, it can be clearer to view /tr/ as a-functor.--> let {tr = impulse KR (mce [2,3,5]) 0->     ;f t = demand t 0 (dseq t dinf (mce [60,63,67,69]))->     ;m = mceMap f tr->     ;o = sinOsc AR (midiCPS m) 0 * 0.1}-> in audition (out 0 (splay o 1 1 0 True))
− Help/UGen/Demand/dser.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dser"-> Sound.SC3.UGen.DB.ugenSummary "Dser"--> import Sound.SC3.ID--> let {a = dser 'α' 7 (mce [1, 3, 2, 7, 8])->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 a * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dseries.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dseries"-> Sound.SC3.UGen.DB.ugenSummary "Dseries"--> import Sound.SC3.ID--> let {n = dseries 'α' 15 0 1->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dshuf.help.lhs
@@ -1,18 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dshuf"-> Sound.SC3.UGen.DB.ugenSummary "Dshuf"--> import Sound.SC3.ID {- hsc3 -}--> let {a = dseq 'α' dinf (dshuf 'β' 3 (mce [1,3,2,7,8.5]))->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 a * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))--> import Sound.SC3.UGen.External.RDU.ID {- sc3-rdu -}--> let {a = dseq 'α' dinf (dshuf 'β' 5 (randN 81 'γ' 0 10))->     ;x = mouseX KR 1 10000 Exponential 0.1->     ;t = impulse AR x 0->     ;f = demand t 0 a * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dstutter.help.lhs
@@ -1,24 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dstutter"-> Sound.SC3.UGen.DB.ugenSummary "Dstutter"--> import Sound.SC3.ID--> let {inp = dseq 'α' dinf (mce [1,2,3])->     ;nse = diwhite 'β' dinf 2 8->     ;rep = dstutter 'γ' nse inp->     ;trg = impulse KR (mouseX KR 1 40 Exponential 0.2) 0->     ;frq = demand trg 0 rep * 30 + 340}-> in audition (out 0 (sinOsc AR frq 0 * 0.1))--https://www.listarc.bham.ac.uk/lists/sc-users/msg14775.html--> let {a z = let {xr = dxrand z dinf (mce [0.1,0.2,0.3,0.4,0.5])->                ;lf = dstutter z 2 xr->                ;du = duty AR lf 0 DoNothing lf->                ;tr = abs (hpz1 du) >* 0->                ;ph = sweep tr (1/du)}->            in linExp ph 0 1 (rand z 50 100) (rand z 500 2000)->     ;f = mce (map a ['a'..'h'])->     ;[s0,s1] = mceChannels (splay (sinOsc AR f 0) 1 1 0 True)->     ;o = limiter (rotate2 s0 s1 (lfSaw KR 0.1 0)) 1 1e-2}-> in audition (out 0 (o * 0.25))
− Help/UGen/Demand/dswitch.help.lhs
@@ -1,27 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dswitch"-> Sound.SC3.UGen.DB.ugenSummary "Dswitch"--> import Sound.SC3--> do {a0 <- dwhiteM 2 3 4->    ;a1 <- dwhiteM 2 0 1->    ;a2 <- dseqM 2 (mce [1,1,1,0])->    ;i <- dseqM 2 (mce [0,1,2,1,0])->    ;d <- dswitchM i (mce [a0,a1,a2])->    ;let {t = impulse KR 4 0->         ;f = demand t 0 d * 300 + 400->         ;o = sinOsc AR f 0 * 0.1}->      in audition (out 0 o)}--compare with dswitch1--> do {a0 <- dwhiteM 2 3 4->    ;a1 <- dwhiteM 2 0 1->    ;a2 <- dseqM 2 (mce [1,1,1,0])->    ;i <- dseqM 2 (mce [0,1,2,1,0])->    ;d <- dswitch1M i (mce [a0,a1,a2])->    ;let {t = impulse KR 4 0->         ;f = demand t 0 d * 300 + 400->         ;o = sinOsc AR f 0 * 0.1}->      in audition (out 0 o)}-
− Help/UGen/Demand/dswitch1.help.lhs
@@ -1,12 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dswitch1"-> Sound.SC3.UGen.DB.ugenSummary "Dswitch1"--> import Sound.SC3.ID--> let {x = mouseX KR 0 4 Linear 0.1->     ;y = mouseY KR 1 15 Linear 0.1->     ;t = impulse KR 3 0->     ;w = dwhite 'α' dinf 20 23->     ;n = dswitch1 'β' x (mce [1, 3, y, 2, w])->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/duty.help.lhs
@@ -1,17 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Duty"-> Sound.SC3.UGen.DB.ugenSummary "Duty"--> import Sound.SC3-> import qualified Sound.SC3.Monad as M--> do {n0 <- M.drand dinf (mce [0.01,0.2,0.4])->    ;n1 <- M.dseq dinf (mce [204,400,201,502,300,200])->    ;let f = duty KR n0 0 RemoveSynth n1->     in audition (out 0 (sinOsc AR (f * mce2 1 1.01) 0 * 0.1))}--Using control rate signal, mouseX, to determine duration.--> let {n = dseq 'α' dinf (mce [204,400,201,502,300,200])->     ;x = mouseX KR 0.001 2 Linear 0.1->     ;f = duty KR x 0 RemoveSynth n}-> in audition (out 0 (sinOsc AR (f * mce2 1 1.01) 0 * 0.1))
− Help/UGen/Demand/dwhite.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dwhite"-> Sound.SC3.UGen.DB.ugenSummary "Dwhite"--> import Sound.SC3--> let {n = dwhite 'α' 30 0 15->     ;x = mouseX KR 1 40 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dwrand.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dwrand"-> Sound.SC3.UGen.DB.ugenSummary "Dwrand"--> import Sound.SC3--> let {n = dwrand 'α' dinf (mce [0.3,0.2,0.1,0.2,0.2]) (mce [1,3,2,7,8])->     ;x = mouseX KR 1 400 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Demand/dxrand.help.lhs
@@ -1,33 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dxrand"-> Sound.SC3.UGen.DB.ugenSummary "Dxrand"--> import Sound.SC3.ID--Select to draw graphs, or not...-> let drw = Sound.SC3.UGen.Dot.draw :: UGen -> IO ()-> let drw = const (return ()) :: UGen -> IO ()--> let {i = mce [0.2,0.4,dseq 'α' 2 (mce [0.1,0.1])]->     ;d = dxrand 'β' dinf i->     ;t = tDuty AR d 0 DoNothing (dwhite 'γ' dinf 0.5 1) 0}-> in audition (out 0 t) >> drw t--The list inputs to demand rate ugens may operate at different rates.-The variants i' and i'' below ought to generate the same graph.  A-simple-minded mce rule sets the rate of the operator primitive to the-maximum rate of the inputs and then does not revise this after mce-transformation, where it may be lower.  The hsc3 constructors attempt-to get this right!--> let {i = mce [0.2,0.4,dseq 'α' 2 (mce [0.1,0.1])]->     ;i' = mceMap (* 0.5) i->     ;i'' = i * 0.5->     ;d = dxrand 'β' dinf i''->     ;t = tDuty AR d 0 DoNothing (dwhite 'γ' dinf 0.5 1) 0}-> in audition (out 0 t) >> drw t--> let {n = dxrand 'α' dinf (mce [1, 3, 2, 7, 8])->     ;x = mouseX KR 1 400 Exponential 0.1->     ;t = impulse KR x 0->     ;f = demand t 0 n * 30 + 340}-> in audition (out 0 (sinOsc AR f 0 * 0.1)) >> drw f
− Help/UGen/Demand/tDuty.help.lhs
@@ -1,44 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "TDuty"-> Sound.SC3.UGen.DB.ugenSummary "TDuty"--> import Sound.SC3.ID--Play a little rhythm--> let d = dseq 'α' dinf (mce [0.1, 0.2, 0.4, 0.3])-> in audition (out 0 (tDuty AR d 0 DoNothing 1 0))--Amplitude changes--> let {d0 = dseq 'α' dinf (mce [0.1, 0.2, 0.4, 0.3])->     ;d1 = dseq 'β' dinf (mce [0.1, 0.4, 0.01, 0.5, 1.0])->     ;s = ringz (tDuty AR d0 0 DoNothing d1 1) 1000 0.1}-> in audition (out 0 s)--Mouse control.--> let {d = dseq 'α' dinf (mce [0.1, 0.4, 0.01, 0.5, 1.0])->     ;x = mouseX KR 0.003 1 Exponential 0.1->     ;s = ringz (tDuty AR x 0 DoNothing d 1) 1000 0.1 * 0.5}-> in audition (out 0 s)--Note that the 440 is the shorter pitch, since gap is set to false--> let {d0 = dser 'α' 12 (mce [0.1, 0.3])->     ;d1 = dser 'β' 12 (mce [440, 880])->     ;t = tDuty AR d0 0 RemoveSynth d1 0}-> in audition (out 0 (sinOsc AR (latch t t) 0 * 0.1))--Abstraction--> import Data.List--> let {bp n d act = let {(e,t) = unzip d->                       ;mk z l = dser z n (mce l)->                       ;sq = tDuty AR (mk 'α' t) 0 act (mk 'β' e) 0}->                   in latch sq sq->     ;bp' d = bp (genericLength d) d->     ;tm m = let f (e,t) = (e,t * m) in map f->     ;f1 = midiCPS (bp 35 (tm 0.125 [(60,1),(63,1),(67,2),(68,1),(62,1)]) RemoveSynth)->     ;f2 = midiCPS (bp' [(60,1),(63,0.5),(67,0.5),(68,1),(62,1)] DoNothing)}-> in audition (out 0 (sinOsc AR (mce2 f1 f2) 0 * 0.1))
− Help/UGen/DiskIO/diskIn.help.lhs
@@ -1,15 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DiskIn"-> Sound.SC3.UGen.DB.ugenSummary "DiskIn"--> import Sound.SC3--> let {fn = "/home/rohan/data/audio/pf-c5.snd"->     ;nc = 1->     ;gr = out 0 (diskIn nc 0 Loop)}-> in withSC3 (do {_ <- async (b_alloc 0 65536 nc)->                ;_ <- async (b_read 0 fn 0 (-1) 0 True)->                ;play gr})--> withSC3 (do {reset->             ;_ <- async (b_close 0)->             ;async (b_free 0)})
− Help/UGen/DiskIO/diskOut.help.lhs
@@ -1,41 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DiskOut"-> Sound.SC3.UGen.DB.ugenSummary "DiskOut"--> import Sound.OSC {- hosc -}-> import Sound.SC3.ID {- hsc3 -}--Example graph--> let gr = let d = xLine KR 20000 2 10 RemoveSynth->          in dust 'α' AR d * 0.15--> let gr = soundIn 0--Check incoming signal (either graph above or the outside world)--> audition (out 0 gr)--Record incoming signal (or above...), print some informational traces...--> let trace str = liftIO (putStrLn str)--> withSC3 (do {trace "b_alloc & b_write"->             ;_ <- async (b_alloc 0 65536 1)->             ;_ <- async (b_write 0 "/tmp/disk-out.aiff" Aiff PcmInt16 (-1) 0 True)->             ;trace "record for 10 seconds"->             ;playSynthdef 2001 (synthdef "disk-out" (diskOut 0 gr))->             ;pauseThread 10->             ;trace "stop recording and tidy up"->             ;send (n_free [2001])->             ;_ <- async (b_close 0)->             ;_ <- async (b_free 0)->             ;return ()})--Listen to recording (on loop...)--> let {fn = "/tmp/disk-out.aiff"->     ;nc = 1->     ;gr = out 0 (diskIn nc 0 Loop)}-> in withSC3 (do {_ <- async (b_alloc 0 65536 nc)->                ;_ <- async (b_read 0 fn 0 (-1) 0 True)->                ;play gr})
− Help/UGen/DiskIO/vDiskIn.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "VDiskIn"-> Sound.SC3.UGen.DB.ugenSummary "VDiskIn"--> import Sound.SC3 {- hsc3 -}--> let {fn = "/home/rohan/data/audio/pf-c5.snd"->     ;nc = 1->     ;gr = out 0 (vDiskIn nc 0 (sinOsc KR 0.25 0 * 0.25 + 1) Loop)}-> in withSC3 (do {_ <- async (b_alloc 0 8192 nc)->                ;_ <- async (b_read 0 fn 0 (-1) 0 True)->                ;play gr})--> withSC3 (do {reset->             ;_ <- async (b_close 0)->             ;_ <- async (b_free 0)->             ;return ()})
− Help/UGen/Envelope/detectSilence.help.lhs
@@ -1,8 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DetectSilence"-> Sound.SC3.UGen.DB.ugenSummary "DetectSilence"--> import Sound.SC3--> let {s = sinOsc AR 440 0 * mouseY KR 0 0.2 Linear 0.1->     ;d = detectSilence s 0.1 0.1 RemoveSynth}-> in audition (mrg [out 0 s,d])
− Help/UGen/Envelope/done.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Done"-> Sound.SC3.UGen.DB.ugenSummary "Done"--> import Sound.SC3--> let {x = mouseX KR (-1) 1 Linear 0.1->     ;e = linen x 0.1 0.1 0.5 DoNothing->     ;o1 = sinOsc AR 880 0 * 0.1->     ;o2 = sinOsc AR 440 0 * e}-> in audition (out 0 (mce [done e * o1,o2]))
− Help/UGen/Envelope/envADSR.help.lhs
@@ -1,60 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*adsr"-> :i Sound.SC3.ADSR-> :t Sound.SC3.envADSR_r-> :t Sound.SC3.envADSR--> import Sound.SC3 {- hsc3 -}--{SinOsc.ar * EnvGen.kr(Env.adsr(0.75, 2.75, 0.1, 7.25, 1, -4, 0))}.draw;--> let g = let {c = control KR "env-gate" 1->             ;p = envADSR 0.75 2.75 0.1 7.25 1 (EnvNum (-4)) 0->             ;e = envGen KR c 1 0 1 DoNothing p}->         in sinOsc AR 440 0 * e * 0.1--> audition (out 0 g)--> withSC3 (send (n_set1 (-1) "env-gate" 0))-> withSC3 (send (n_set1 (-1) "env-gate" 1))-> withSC3 (send (n_free [-1]))--> import Sound.SC3.Plot {- hsc3 -}--> plotEnvelope [envADSR 0.75 0.75 0.5 0.75 1 (EnvNum (-4)) 0->              ,envADSR 0.02 0.2 0.25 1 1 (EnvNum (-4)) 0->              ,envADSR 0.001 0.2 0.25 1 1 (EnvNum (-4)) 0->              ,envADSR 0 2 1 0.1 0.5 EnvSin 0->              ,envADSR 0.001 1.54 1 0.001 0.4 EnvSin 0]--There is a record variant:--> let {g = control KR "gate" 1->     ;c = EnvNum (-4)->     ;r = ADSR {adsr_attackTime = 0.75->               ,adsr_decayTime = 0.75->               ,adsr_sustainLevel = 0.5->               ,adsr_releaseTime = 0.75->               ,adsr_peakLevel = 1->               ,adsr_curve = (c,c,c)->               ,adsr_bias = 0}->     ;p = envADSR_r r->     ;e = envGen KR g 0.1 0 1 DoNothing p}-> in audition (out 0 (sinOsc AR 440 0 * e))--> withSC3 (send (n_set1 (-1) "gate" 0))-> withSC3 (send (n_set1 (-1) "gate" 1))-> withSC3 (send (n_free [-1]))--SC3 comparison:--Env.adsr.asArray == [0,3,2,-99,1,0.01,5,-4,0.5,0.3,5,-4,0,1,5,-4];--> let r = [0,3,2,-99,1,0.01,5,-4,0.5,0.3,5,-4,0,1,5,-4]-> in envelope_sc3_array (envADSR 0.01 0.3 0.5 1 1 (EnvNum (-4)) 0) == Just r--> let r = [0,3,2,-99,1,0.3,5,-4,0.1,0.4,5,-4,0,1.2,5,-4]-> in envelope_sc3_array (envADSR 0.3 0.4 0.1 1.2 1 (EnvNum (-4)) 0) == Just r--x = {|gate=0, freq=440 | EnvGen.kr(Env.adsr,gate) * SinOsc.ar(freq,0) * 0.1}.play-x.set(\gate,1);-x.set(\gate,0);
− Help/UGen/Envelope/envASR.help.lhs
@@ -1,17 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*asr"-> :i Sound.SC3.ASR--> import Sound.SC3--> let {g = control KR "env-gate" 1->     ;p = envASR 0.01 1 1 (EnvNum (-4))->     ;e = envGen KR g 0.1 0 1 RemoveSynth p}-> in audition (out 0 (sinOsc AR 440 0 * e))--> withSC3 (send (n_set1 (-1) "env-gate" 0))--> import Sound.SC3.Plot--> plotEnvelope [envASR 0.1 1 1 (EnvNum (-4))->              ,envASR 0.3 0.25 1 EnvSin->              ,envASR 0.01 0.5 1.25 EnvLin]
− Help/UGen/Envelope/envCoord.help.lhs
@@ -1,48 +0,0 @@-> import Sound.SC3-> :t envCoord--co-ordinate (break-point) envelope--> let {c = EnvLin->     ;p = envCoord [(0,0),(0.5,0.1),(0.55,1),(1,0)] 9 0.1 c->     ;e = envGen KR 1 1 0 1 RemoveSynth p}-> in audition (out 0 (sinOsc AR 440 0 * e))--line segments, set target value & transition time and trigger--> let {tr = tr_control "tr" 1->     ;st = control KR "st" 440->     ;en = control KR "en" 880->     ;tm = control KR "tm" 2->     ;p = envCoord [(0,st),(tm,en)] 1 1 EnvLin->     ;e = envGen KR tr 1 0 1 DoNothing p}-> in audition (out 0 (sinOsc AR e 0 * 0.2))--> withSC3 (send (n_set (-1) [("en",550),("tm",4),("tr",1)]))-> withSC3 (send (n_set (-1) [("en",990),("tm",1),("tr",1)]))-> withSC3 (send (n_set (-1) [("en",110),("tm",2),("tr",1)]))--> import Sound.SC3.ID--likewise, but internal graph triggers and randomises line end points--> let {tr = dust 'α' KR 2->     ;st = 440->     ;en = tRand 'β' 300 900 tr->     ;tm = tRand 'γ' 0.5 1.5 tr->     ;p = envCoord [(0,st),(tm,en)] 1 1 EnvLin->     ;e = envGen KR tr 1 0 1 DoNothing p}-> in audition (out 0 (sinOsc AR e 0 * 0.2))--plotting--> import Sound.SC3.Plot--> let {c0 = [(0,0),(0.35,0.1),(0.55,1),(1,0)]->     ;c1 = [(0,0),(0.15,0.6),(0.35,0.2),(1,0)]->     ;c2 = [(0,0),(0.65,0.3),(0.85,0.7),(1,0)]->     ;c3 = [(0,0.1),(0.25,0.6),(0.5,0.4),(1,0.4)]}-> in plotEnvelope [envCoord c0 9 0.1 EnvLin->                 ,envCoord c1 6 0.1 EnvSin->                 ,envCoord c2 5 0.1 EnvCub->                 ,envCoord c3 7 0.1 EnvStep]
− Help/UGen/Envelope/envGate.help.lhs
@@ -1,30 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "EnvGate"--> import Sound.SC3--Make envGate, giving the /default/ arguments, as used by envGate'.--> let {k = control KR->     ;e = envGate 1 (k "gate" 1) (k "fadeTime" 0.02) RemoveSynth EnvSin}-> in audition (out 0 (lpf (saw AR 200) 600 * 0.1 * e))--Set fade time, then release gate.--> withSC3 (send (n_set1 (-1) "fadeTime" 2))-> withSC3 (send (n_set1 (-1) "gate" 0))--The same, but built in defaults.--> let e = envGate'-> in audition (out 0 (lpf (saw AR 200) 600 * 0.1 * e))--Several envGate nodes can coexist in one synth, but if they are the-same they're shared (as ever).--> let {e = envGate'->     ;s1 = lpf (saw AR 80) 600 * e->     ;s2 = rlpf (saw AR 200 * 0.5) (6000 * e + 60) 0.1 * e}-> in audition (out 0 (mce2 s1 s2 * 0.1))--> withSC3 (send (n_set1 (-1) "fadeTime" 5))-> withSC3 (send (n_set1 (-1) "gate" 0))
− Help/UGen/Envelope/envGen.help.lhs
@@ -1,33 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "EnvGen"-> Sound.SC3.UGen.DB.ugenSummary "EnvGen"--At least the following envelope constructors are provided:-envPerc, envSine, envCoord, envTrapezoid, and envLinen.--> import Sound.SC3 {- hsc3 -}--env_circle joins the end of the envelope to the start--> let {e = Envelope [6000,700,100] [1,1] [EnvExp,EnvLin] Nothing Nothing->     ;f = envGen KR 1 1 0 1 DoNothing (env_circle e 0 EnvLin)->     ;o = sinOsc AR f 0 * 0.1 + impulse AR 1 0}-> in audition (out 0 o)--Env([6000,700,100],[1,1],['exp','lin']).circle.asArray--> let {e = Envelope [6000,700,100] [1,1] [EnvExp,EnvLin] Nothing Nothing->     ;r = [0,4,3,0,6000,0,1,0,700,1,2,0,100,1,1,0,0,9e8,1,0]}-> in envelope_sc3_array (env_circle e 0 EnvLin) == Just r--Env([0,1],[0.1]).asArray == [0,1,-99,-99,1,0.1,1,0]--> let e = (Envelope [0,1] [0.1] [EnvLin] Nothing Nothing)-> in envelope_sc3_array e == Just [0,1,-99,-99,1,0.1,1,0]--https://www.listarc.bham.ac.uk/lists/sc-users/msg14815.html--> let {n = range 0.01 0.1 (lfNoise1 'α' KR 2)->     ;e = Envelope [0,1] [n] [EnvLin] Nothing (Just 0)->     ;a = envGen AR 1 1 0 1 DoNothing (env_circle e 0 EnvLin)->     ;o = sinOsc AR (a * 400 + 500) 0 * 0.1}-> in audition (out 0 o)
− Help/UGen/Envelope/envLinen.help.lhs
@@ -1,26 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*linen"-> :i Sound.SC3.LINEN-> :t envLinen--> import Sound.SC3--> let {t = envLinen 0.4 2 0.4 0.1->     ;e = envGen KR 1 1 0 1 RemoveSynth t}-> in audition (out 0 (sinOsc AR 440 0 * e))--> import Sound.SC3.Plot--> plotEnvelope [envLinen 0 1 0 0.4->              ,envelope_normalise (envLinen 0 2 0 0.5)->              ,envLinen 0.4 2 0.4 0.6->              ,envLinen 0.6 1 1.2 0.7]--> let e = envLinen 0 1 0 1-> in (envelope_duration e->    ,envelope_segment_ix e 0->    ,envelope_segment_ix e 1->    ,envelope_segment e 0->    ,envelope_segment e 1->    ,envelope_at e 0->    ,envelope_at e 1->    ,envelope_render 10 e)
− Help/UGen/Envelope/envPerc.help.lhs
@@ -1,19 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*perc"-> :t envPerc'--> import Sound.SC3 {- hsc3 -}--> let {a = 0.1->     ;p = envPerc 0.01 1->     ;e = envGen KR 1 a 0 1 RemoveSynth p }-> in audition (out 0 (sinOsc AR 440 0 * e))--> let {a = 0.1->     ;c = EnvNum (-4)->     ;p = envPerc' 0.01 1 a (c,c)->     ;e = envGen KR 1 1 0 1 RemoveSynth p }-> in audition (out 0 (sinOsc AR 440 0 * e))--> import Sound.SC3.Plot {- hsc3-plot -}--> plotEnvelope [envPerc 0.05 1,envPerc 0.2 0.75]
− Help/UGen/Envelope/envSine.help.lhs
@@ -1,12 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*sine"-> :t Sound.SC3.envSine--> import Sound.SC3 {- hsc3 -}--> let {s = envSine 9 0.1->     ;e = envGen KR 1 1 0 1 RemoveSynth s}-> in audition (out 0 (sinOsc AR 440 0 * e))--> import Sound.SC3.Plot {- hsc3-plot -}--> plotEnvelope [envSine 9 1,envSine 3 0.25]
− Help/UGen/Envelope/envStep.help.lhs
@@ -1,22 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*step"-> :i Sound.SC3.envStep--> import Sound.SC3 {- hsc3 -}--> let {env = envStep [0.0,0.5,0.7,1.0,0.9,0.0] [0.5,0.1,0.2,1.0,1.5,3] Nothing Nothing->     ;envgen = envGen AR 1 1 0 1 RemoveSynth env->     ;o = sinOsc AR (envgen * 1000 + 440) 0 * (envgen + 1) * 0.1}-> in audition (out 0 o)--major scale, accelerating--> let {env = envStep [0,2,4,5,7,9,11,12] (take 8 (iterate (* 0.75) 1)) Nothing Nothing->     ;envgen = envGen AR 1 1 0 1 DoNothing env->     ;o = sinOsc AR (midiCPS (envgen + 60)) 0 * 0.1}-> in audition (out 0 o)--draw envelope--> import Sound.SC3.Plot--> plotEnvelope [envStep [0,2,4,5,7,9,11,12] (take 8 (iterate (* 0.75) 1)) Nothing Nothing]
− Help/UGen/Envelope/envTrapezoid.help.lhs
@@ -1,13 +0,0 @@-> :t Sound.SC3.envTrapezoid--> import Sound.SC3--> let { t = envTrapezoid 0.05 0.95 3 0.1->     ; e = envGen KR 1 1 0 1 RemoveSynth t }-> in audition (out 0 (sinOsc AR 440 0 * e))--> let e = [0,3,-99,-99,0.1,0.5,1,0,0.1,0,1,0,0,1.5,1,0]-> in envelope_sc3_array (envTrapezoid 0 0.25 2 0.1) == Just e--> import Sound.SC3.Plot-> plotEnvelope [envTrapezoid 0.75 0.25 2 1,envTrapezoid 0.25 0.75 3 0.5]
− Help/UGen/Envelope/envTriangle.help.lhs
@@ -1,11 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Env.*triangle"-> :t envTriangle--> import Sound.SC3--> let {t = envTriangle 1 0.1->     ;e = envGen KR 1 1 0 1 RemoveSynth t}-> in audition (out 0 (sinOsc AR 440 0 * e))--> import Sound.SC3.Plot-> plotEnvelope [envTriangle 1 1,envTriangle 0.25 0.5]
− Help/UGen/Envelope/free.help.lhs
@@ -1,13 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Free"-> Sound.SC3.UGen.DB.ugenSummary "Free"--> import Sound.SC3.ID--> let {a = out 0 (sinOsc AR 880 0 * 0.1)->     ;n0 = pinkNoise 'a' AR->     ;n1 = dust 'b' AR 20->     ;b = mrg [out 1 (n0 * 0.1), free n1 1001]}-> in withSC3 (do {_ <- async (d_recv (synthdef "a" a))->                ;_ <- async (d_recv (synthdef "b" b))->                ;send (s_new "a" 1001 AddToTail 1 [])->                ;send (s_new "b" (-1) AddToTail 1 [])})
− Help/UGen/Envelope/freeSelf.help.lhs
@@ -1,9 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "FreeSelf"-> Sound.SC3.UGen.DB.ugenSummary "FreeSelf"--> import Sound.SC3.ID--> let {n = dust 'a' KR 0.5->     ;a = freeSelf n->     ;b = out 0 (sinOsc AR 440 0 * 0.1)}-> in audition (mrg [a,b])
− Help/UGen/Envelope/freeSelfWhenDone.help.lhs
@@ -1,14 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "FreeSelfWhenDone"-> Sound.SC3.UGen.DB.ugenSummary "FreeSelfWhenDone"--> import Sound.SC3--using RemoveSynth doneAction-> let {x = mouseX KR (-1) 1 Linear 0.1->     ;e = linen x 1 0.1 1 RemoveSynth}-> in audition (out 0 (sinOsc AR 440 0 * e))--using FreeSelfWhenDone UGen-> let {x = mouseX KR (-1) 1 Linear 0.1->     ;e = linen x 1 0.1 1 DoNothing}-> in audition (mrg [freeSelfWhenDone e, out 0 (sinOsc AR 440 0 * e)])
− Help/UGen/Envelope/iEnvGen.help.lhs
@@ -1,25 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "IEnvGen"-> Sound.SC3.UGen.DB.ugenSummary "IEnvGen"--> import Sound.SC3.ID--> let {l = [0,0.6,0.3,1.0,0]->     ;t = [0.1,0.02,0.4,1.1]->     ;c = [EnvLin,EnvExp,EnvNum (-6),EnvSin]->     ;e = Envelope l t c Nothing Nothing->     ;x = mouseX KR 0 (sum t) Linear 0.2->     ;g = iEnvGen KR x e->     ;o = sinOsc AR (g * 500 + 440) 0 * 0.1}-> in audition (out 0 o)--index with an SinOsc ... mouse controls amplitude of SinOsc-use offset so negative values of SinOsc will map into the Env--> let {l = [-1,-0.7,0.7,1]->     ;t = [0.8666,0.2666,0.8668]->     ;c = [EnvLin,EnvLin]->     ;e = Envelope l t c Nothing Nothing->     ;x = mouseX KR 0 1 Linear 0.2->     ;o = (sinOsc AR 440 0 + 1) * x->     ;g = iEnvGen AR o e * 0.1}-> in audition (out 0 g)
− Help/UGen/Envelope/line.help.lhs
@@ -1,16 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Line"-> Sound.SC3.UGen.DB.ugenSummary "Line"--#SC3 reorders the mul and add inputs to precede the doneAction input.--> import Sound.SC3--> let f = line KR 200 17000 5 RemoveSynth-> in audition (out 0 (sinOsc AR f 0 * 0.1))--Demonstrate RemoveGroup done-action.--> withSC3 (send (g_new [(10,AddToTail,1)]))--> let f = line KR 200 (mce2 209 211) 5 RemoveGroup-> in audition_at (-1,AddToTail,10) (out 0 (sinOsc AR f 0 * 0.1))
− Help/UGen/Envelope/linen.help.lhs
@@ -1,12 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Linen"-> Sound.SC3.UGen.DB.ugenSummary "Linen"--> import Sound.SC3--> let e = linen (impulse KR 2 0) 0.01 0.6 0.4 DoNothing-> in audition (out 0 (e * sinOsc AR 440 0 * 0.1))--> let {x = mouseX KR (-1) 1 Linear 0.1->     ;y = mouseY KR 0.1 0.5 Linear 0.1->     ;e = linen x 1 y 1.0 DoNothing}-> in audition (out 0 (sinOsc AR 440 0 * e))
− Help/UGen/Envelope/pause.help.lhs
@@ -1,18 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Pause"-> Sound.SC3.UGen.DB.ugenSummary "Pause"--> import Sound.SC3--> let {f = control KR "f" 440->     ;g = control KR "g" 1->     ;a = mrg [out 0 (sinOsc AR f 0 * 0.1),pause g 1001]->     ;a' = synthdef "a" a}-> in withSC3 (do {_ <- async (d_recv a')->                ;send (s_new "a" 1001 AddToTail 1 [])->                ;send (s_new "a" 1002 AddToTail 1 [("f",880)])})--Request that node 1002 pause node 1001.-> withSC3 (send (n_set 1002 [("g",0)]))--Restart node 1001.-> withSC3 (send (n_set 1002 [("g",1)]))
− Help/UGen/Envelope/pauseSelf.help.lhs
@@ -1,11 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "PauseSelf"-> Sound.SC3.UGen.DB.ugenSummary "PauseSelf"--> import Sound.SC3--> let {x = mouseX KR (-1) 1 Linear 0.1->     ;o = sinOsc AR 440 0 * 0.1}-> in audition (mrg [pauseSelf x, out 0 o])--Run paused node (assuming no intermediate node is created).-> withSC3 (send (n_run [(-1, True)]))
− Help/UGen/Envelope/pauseSelfWhenDone.help.lhs
@@ -1,19 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "PauseSelfWhenDone"-> Sound.SC3.UGen.DB.ugenSummary "PauseSelfWhenDone"--> import Sound.SC3--using PauseSynth done action-> let { x = mouseX KR (-1) 1 Linear 0.1->     ; e = linen x 1 0.1 1 PauseSynth }-> in audition (out 0 (sinOsc AR 440 0 * e))--Run paused node (assuming no intermediate node is created).-> withSC3 (send (n_run [(-1, True)]))--> let {x = mouseX KR (-1) 1 Linear 0.1->     ;e = linen x 1 0.1 1 DoNothing->     ;o = sinOsc AR 440 0 * e}-> in audition (mrg [pauseSelfWhenDone e, out 0 o])--> withSC3 (send (n_run [(-1, True)]))
− Help/UGen/Envelope/xLine.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "XLine"-> Sound.SC3.UGen.DB.ugenSummary "XLine"--# SC3 reorders mul and add inputs to precede the doneAction input.--> import Sound.SC3--> let {f = xLine KR 200 17000 10 RemoveSynth->     ;o = sinOsc AR f 0 * 0.1}-> in audition (out 0 o)
− Help/UGen/External/atari2600.help.lhs
@@ -1,68 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Atari2600"-> Sound.SC3.UGen.DB.ugenSummary "Atari2600"--> import Sound.SC3 {- hsc3 -}--> audition (out 0 (atari2600 1 2 3 4 5 5 1))-> audition (out 0 (atari2600 2 3 10 10 5 5 1))--> let {x = mouseX KR 0 15 Linear 0.1->     ;y = mouseY KR 0 15 Linear 0.1}-> in audition (out 0 (atari2600 x y 10 10 5 5 1))--> let {x = mouseX KR 0 31 Linear 0.1->     ;y = mouseY KR 0 31 Linear 0.1}-> in audition (out 0 (atari2600 2 3 x y 5 5 1))--> let {x = mouseX KR 0 15 Linear 0.1->     ;y = mouseY KR 0 15 Linear 0.1}-> in audition (out 0 (atari2600 2 3 10 10 x y 1))--> let {x = mouseX KR 0 15 Linear 0.1->     ;o1 = sinOsc KR 0.35 0 * 7.5 + 7.5->     ;y = mouseY KR 0 31 Linear 0.1->     ;o2 = sinOsc KR 0.3 0 * 5.5 + 5.5}-> in audition (out 0 (atari2600 x o1 10 y o2 5 1))--> let ati = let {gate' = control KR "gate" 1->               ;tone0 = control KR "tone0" 5->               ;tone1 = control KR "tone1" 8->               ;freq0 = control KR "freq0" 10->               ;freq1 = control KR "freq1" 20->               ;rate = control KR "rate" 1->               ;amp = control KR "amp" 1->               ;pan = control KR "pan" 0->               ;e = envASR 0.01 amp 0.05 (EnvNum (-4))->               ;eg = envGen KR gate' 1 0 1 RemoveSynth e->               ;z = atari2600 tone0 tone1 freq0 freq1 15 15 rate->               ;o = out 0 (pan2 (z * eg) pan 1)}->           in synthdef "atari2600" o--> import Sound.SC3.Lang.Pattern--> let p = [(K_instr,psynth ati)->         ,(K_dur,0.125)->         ,(K_amp,0.5)->         ,(K_param "tone0",pseq [pn 3 64,pn 2 128,pn 10 8] inf)->         ,(K_param "tone1",pseqn [32,12] [8,pwhite 'α' 0 15 inf] inf)->         ,(K_param "freq0",pseqn [17,4,3] [10,prand 'β' [1,2,3] inf,10] inf)->         ,(K_param "freq1",pseq1 [10,3,pwrand 'γ' [20,1] [0.6,0.4] inf] inf)]-> in audition (pbind p)--> let p = [(K_instr,psynth ati)->         ,(K_dur,pseq [0.25,0.25,0.25,0.45] inf)->         ,(K_amp,0.5)->         ,(K_param "tone0",pseq [pseq [2,5] 32,pseq [3,5] 32] inf)->         ,(K_param "tone1",14)->         ,(K_param "freq0",pseq [pbrown 'α' 28 31 1 32,pbrown 'β' 23 26 3 32] inf)->         ,(K_param "freq1",pseq [pn 10 16,pn 11 16] inf)]-> in audition (pbind p)--> let p = [(K_instr,psynth ati)->         ,(K_dur,pbrown 'α' 0.1 0.15 0.1 inf)->         ,(K_amp,0.5)->         ,(K_param "tone0",1)->         ,(K_param "tone1",2)->         ,(K_param "freq0",pseqn [2,1] [24,pwrand 'β' [20,23] [0.6,0.4] inf] inf)->         ,(K_param "freq1",pseqn [1,1,1] [1,3,pwrand 'γ' [2,1] [0.6,0.4] inf] inf)]-> in audition (pbind p)
− Help/UGen/External/atsNoiSynth.help.lhs
@@ -1,27 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "AtsNoiSynth"-> Sound.SC3.UGen.DB.ugenSummary "AtsNoiSynth"--> import Sound.SC3--segmented file loader-> let load_data b i d =->         if length d < 512->         then send (b_setn1 b i d)->         else do {send (b_setn1 b i (take 512 d))->                 ;load_data b (i + 512) (drop 512 d)}--read file-> ats <- atsRead "/home/rohan/cvs/tn/tn-56/ats/metal.ats"--run re-synthesis-> let {d = atsData ats->     ;h = atsHeader ats->     ;x = mouseX KR 0.05 1.5 Linear 0.2->     ;y = mouseY KR 0 1 Linear 0.2->     ;np = constant (atsNPartials h)->     ;f = x / constant (atsAnalysisDuration h)->     ;ptr = clip (lfSaw AR f 1 * 0.5 + 0.5) 0 1->     ;rs = atsNoiSynth 10 np 0 1 ptr (1 - y) y 1 0 25 0 1}-> in withSC3 (do {_ <- async (b_alloc 10 (length d) 1)->                ;load_data 10 0 d->                ;play (out 0 rs)})
− Help/UGen/External/atsSynth.help.lhs
@@ -1,30 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "AtsSynth"-> Sound.SC3.UGen.DB.ugenSummary "AtsSynth"--> import Sound.SC3--read file-> ats <- atsRead "/home/rohan/cvs/tn/tn-56/ats/metal.ats"--show header-> atsHeader ats--data loader that works in segments (udp packet limits)-> let load_data b i d =->         if length d < 512->         then send (b_setn1 b i d)->         else do {send (b_setn1 b i (take 512 d))->                 ;load_data b (i + 512) (drop 512 d)}--simple re-synthesiser-> let {h = atsHeader ats->     ;d = atsData ats->     ;x = mouseX KR 0.05 1.5 Linear 0.2->     ;y = mouseY KR 0.25 2.0 Linear 0.2->     ;np = constant (atsNPartials h)->     ;f = x / constant (atsAnalysisDuration h)->     ;ptr = lfSaw AR f 1 * 0.5 + 0.5->     ;rs = atsSynth 10 np 0 1 (clip ptr 0 1) y 0}-> in withSC3 (do {_ <- async (b_alloc 10 (length d) 1)->                ;load_data 10 0 d->                ;play (out 0 rs)})
− Help/UGen/External/ay.help.lhs
@@ -1,33 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "AY"-> Sound.SC3.UGen.DB.ugenSummary "AY"--> import Sound.SC3.ID-> import qualified Sound.SC3.Monad as M--> audition (out 0 (ay 1777 1666 1555 1 7 15 15 15 4 1 0))--> let { tonea = mouseY KR 10 3900 Exponential 0.2->     ; toneb = mouseX KR 10 3900 Exponential 0.2->     ; ctl = 3->     ; vola = 14->     ; volb = 14->     ; volc = 0->     ; s = ay tonea toneb 1555 1 ctl vola volb volc 4 1 0 }-> in audition (out 0 (pan2 s 0 0.25))--> let {rate = mouseX KR 0.1 10 Linear 0.2->     ;rng l r i = return (linLin i (-1) 1 l r)->     ;mk_ctl l r = M.lfdNoise3 KR rate >>= rng l r->     ;mk_ctl_0 l r = M.lfdNoise0 KR rate >>= rng l r}-> in do {tonea <- mk_ctl 10 3900->       ;toneb <- mk_ctl 10 3900->       ;tonec <- mk_ctl 10 3900->       ;n <- mk_ctl 0 31->       ;ctl <- mk_ctl_0 0 31->       ;vola <- mk_ctl 0 15->       ;volb <- mk_ctl 0 15->       ;volc <- mk_ctl 0 15->       ;efreq <- mk_ctl 0 4095->       ;estyle <- mk_ctl 0 15->       ;let s = ay tonea toneb tonec n ctl vola volb volc efreq estyle 0->        in audition (out 0 (pan2 s 0 0.5))}
− Help/UGen/External/concat.help.lhs
@@ -1,20 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Concat"-> Sound.SC3.UGen.DB.ugenSummary "Concat"--> import Sound.SC3.ID--> let fileName = "/home/rohan/data/audio/pf-c5.snd"-> in withSC3 (async (b_allocRead 12 fileName 0 0))--Granulator-> let {y0 = mouseY KR 0.01 1 Linear 0.2->     ;y1 = mouseY KR 12 100 Linear 0.2->     ;n = lfNoise0 'α' KR y0 * 3 + 4.5->     ;k = saw AR (sinOsc KR n 0 * 10 + y1)->     ;i = playBuf 1 AR 12 (bufRateScale KR 12) 0 0 Loop DoNothing->     ;x0 = mouseX KR 0.01 0.1 Linear 0.2->     ;y2 = mouseY KR 0 0.1 Linear 0.2->     ;c :: UGen->     ;c = concat' k i 2 2 2 x0 0 y2 1 0.5 0 0->     ;o = out 0 (pan2 c 0 1)}-> in audition o
− Help/UGen/External/coyote.help.lhs
@@ -1,9 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Coyote"-> Sound.SC3.UGen.DB.ugenSummary "Coyote"--> import Sound.SC3.ID--> let {i = soundIn 4->     ;c = coyote KR i 0.2 0.2 0.01 0.5 0.05 0.05->     ;o = pinkNoise 'a' AR * decay c 1}-> in audition (out 0 (mce2 i o))
− Help/UGen/External/dPW3Tri.help.lhs
@@ -1,42 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DPW3Tri"-> Sound.SC3.UGen.DB.ugenSummary "DPW3Tri"--> import Sound.SC3.ID--distortion creeps in under 200Hz-> let o = dPW3Tri AR (xLine KR 2000 20 10 DoNothing)-> in audition (out 0 (o * 0.1))--very fast sweeps can have transient distortion effects-> let o = dPW3Tri AR (mouseX KR 200 12000 Exponential 0.2)-> in audition (out 0 (o * 0.1))--compare-> let o = lfTri AR (mouseX KR 200 12000 Exponential 0.2) 0-> in audition (out 0 (o * 0.1))--(for randN)-> import Sound.SC3.UGen.External.RDU.ID--less efficient than LFTri-> let f = randN 50 'a' 50 5000-> in audition (out 0 (splay (dPW3Tri AR f) 1 0.1 0 True))--> let f = randN 50 'a' 50 5000-> in audition (out 0 (splay (lfTri AR f 0) 1 0.1 0 True))--triangle is integration of square wave-> let {f = mouseX KR 440 8800 Exponential 0.2->     ;o = pulse AR f 0.5->     ;s = integrator o 0.99}-> in audition (out 0 (s * 0.05))--differentiation of triangle is square-> let {f = mouseX KR 440 8800 Exponential 0.2->     ;o = dPW3Tri AR f->     ;s = hpz1 (o * 2)}-> in audition (out 0 (s * 0.25))--compare-> let f = mouseX KR 440 8800 Exponential 0.2-> in audition (out 0 (pulse AR f 0.5 * 0.1))
− Help/UGen/External/dWGPlucked2.help.lhs
@@ -1,37 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DWGPlucked2"-> Sound.SC3.UGen.DB.ugenSummary "DWGPlucked2"--> import Sound.SC3.ID--self deleting-> let {amp = 0.5->     ;gate = 1->     ;freq = 440->     ;c3 = 20->     ;pan = 0->     ;e = Envelope->      [0,1,1,0] [0.001,0.006,0.0005]->      (map EnvNum [5,-5,-8]) Nothing Nothing->     ;i = amp * lfClipNoise 'α' AR 2000 * envGen AR gate 1 0 1 DoNothing e->     ;s = dWGPlucked2 AR freq amp gate 0.1 1 c3 i 0.1 1.008 0.55 0.01->     ;z = detectSilence s 0.001 0.1 RemoveSynth}-> in audition (out 0 (mrg2 (pan2 s pan 0.1) z))--re-sounding-> let {sequ e s tr = demand tr 0 (dseq e dinf (mce s))->     ;d = dseq 'α' dinf (mce [1,1,2,1,1,1,2,3,1,1,1,1,2,3,4] * 0.175)->     ;t = tDuty AR d 0 DoNothing 1 0->     ;amp = tRand 'β' 0.01 0.25 t->     ;n0 = sequ 'γ' [60,62,63,58,48,55] t->     ;n1 = sequ 'δ' [63,60,48,62,55,58] t->     ;freq = midiCPS (mce2 n0 n1)->     ;c3 = tRand 'ε' 300 1400 t->     ;pan = tRand 'ζ' (-1) 1 t->     ;e_dt = tRand 'η' 0.05 0.150 t->     ;mt = tRand 'θ' 0.992 1.008 t->     ;pp = tRand 'ι' 0.05 0.15 t->     ;dt = tRand 'κ' 0.25 1.75 t->     ;env = decay2 t 0.001 e_dt * lfClipNoise 'λ' AR 2000->     ;i = amp * lfClipNoise 'μ' AR 2000 * env->     ;ps = dWGPlucked2 AR freq amp 1 pp (1 / dt) c3 i 0.1 mt 0.55 0.01}-> in audition (out 0 (pan2 ps pan 0.1))
− Help/UGen/External/dfm1.help.lhs
@@ -1,18 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "DFM1"-> Sound.SC3.UGen.DB.ugenSummary "DFM1"--> import Sound.SC3.ID--Play it with the mouse--> let { n = pinkNoise 'α' AR * 0.5->     ; x = mouseX KR 80 5000 Exponential 0.1->     ; y = mouseX KR 0.1 1.2 Linear 0.1 }-> in audition (out 0 (dfm1 n x y 1 0 3e-4))--Bass...--> let { i = pulse AR 100 0.5 * 0.4 + pulse AR 100.1 0.5 * 0.4->     ; f = range 80 2000 (sinOsc KR (range 0.2 5 (sinOsc KR 0.3 0)) 0)->     ; s = dfm1 i f 1.1 2 0 3e-4 * 0.1 }-> in audition (out 0 (mce2 s s))
− Help/UGen/External/disintegrator.help.lhs
@@ -1,10 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Disintegrator"-> Sound.SC3.UGen.DB.ugenSummary "Disintegrator"--> import Sound.SC3--> let {x = mouseX KR 0 1 Linear 0.2->     ;y = mouseY KR 0 1 Linear 0.2->     ;s = sinOsc AR (mce2 400 404) 0 * 0.2->     ;o = disintegrator 'α' s x y}-> in audition (out 0 o)
− Help/UGen/External/envDetect.help.lhs

file too large to diff

− Help/UGen/External/envFollow.help.lhs

file too large to diff

− Help/UGen/External/fm7.help.lhs

file too large to diff

− Help/UGen/External/fmGrain.help.lhs

file too large to diff

− Help/UGen/External/fmGrainB.help.lhs

file too large to diff

− Help/UGen/External/lfBrownNoise.help.lhs

file too large to diff

− Help/UGen/External/lpcSynth.help.lhs

file too large to diff

− Help/UGen/External/lpcVals.help.lhs

file too large to diff

− Help/UGen/External/lti.help.lhs

file too large to diff

− Help/UGen/External/membraneCircle.help.lhs

file too large to diff

− Help/UGen/External/membraneHexagon.help.lhs

file too large to diff

− Help/UGen/External/metro.help.lhs

file too large to diff

− Help/UGen/External/mzPokey.help.lhs

file too large to diff

− Help/UGen/External/playBufCF.help.lhs

file too large to diff

− Help/UGen/External/pv_BufRd.help.lhs

file too large to diff

− Help/UGen/External/pv_Invert.help.lhs

file too large to diff

− Help/UGen/External/qitch.help.lhs

file too large to diff

− Help/UGen/External/sms.help.lhs

file too large to diff

− Help/UGen/External/squiz.help.lhs

file too large to diff

− Help/UGen/External/stkBowed.help.lhs

file too large to diff

− Help/UGen/External/stkFlute.help.lhs

file too large to diff

− Help/UGen/External/stkMandolin.help.lhs

file too large to diff

− Help/UGen/External/stkModalBar.help.lhs

file too large to diff

− Help/UGen/External/stkShakers.help.lhs

file too large to diff

− Help/UGen/External/streson.help.lhs

file too large to diff

− Help/UGen/External/switchDelay.help.lhs

file too large to diff

− Help/UGen/External/tBetaRand.help.lhs

file too large to diff

− Help/UGen/External/tBrownRand.help.lhs

file too large to diff

− Help/UGen/External/tGaussRand.help.lhs

file too large to diff

− Help/UGen/External/tartini.help.lhs

file too large to diff

− Help/UGen/External/tpv.help.lhs

file too large to diff

− Help/UGen/External/vosim.help.lhs

file too large to diff

− Help/UGen/External/waveTerrain.help.lhs

file too large to diff

− Help/UGen/External/zitaRev1.help.lhs

file too large to diff

− Help/UGen/FFT/convolution.help.lhs

file too large to diff

− Help/UGen/FFT/fft.help.lhs

file too large to diff

− Help/UGen/FFT/fftTrigger.help.lhs

file too large to diff

− Help/UGen/FFT/ifft.help.lhs

file too large to diff

− Help/UGen/FFT/packFFT.help.lhs

file too large to diff

− Help/UGen/FFT/partConv.help.lhs

file too large to diff

− Help/UGen/FFT/pv_BinDelay.help.lhs

file too large to diff

− Help/UGen/FFT/pv_BinScramble.help.lhs

file too large to diff

− Help/UGen/FFT/pv_BinShift.help.lhs

file too large to diff

− Help/UGen/FFT/pv_BinWipe.help.lhs

file too large to diff

− Help/UGen/FFT/pv_BrickWall.help.lhs

file too large to diff

− Help/UGen/FFT/pv_ConformalMap.help.lhs

file too large to diff

− Help/UGen/FFT/pv_Diffuser.help.lhs

file too large to diff

− Help/UGen/FFT/pv_HainsworthFoote.help.lhs

file too large to diff

− Help/UGen/FFT/pv_LocalMax.help.lhs

file too large to diff

− Help/UGen/FFT/pv_MagAbove.help.lhs

file too large to diff

− Help/UGen/FFT/pv_MagBelow.help.lhs

file too large to diff

− Help/UGen/FFT/pv_MagClip.help.lhs

file too large to diff

− Help/UGen/FFT/pv_MagFreeze.help.lhs

file too large to diff

− Help/UGen/FFT/pv_RandComb.help.lhs

file too large to diff

− Help/UGen/FFT/pv_RandWipe.help.lhs

file too large to diff

− Help/UGen/FFT/pv_RectComb.help.lhs

file too large to diff

− Help/UGen/FFT/pvcollect.help.lhs

file too large to diff

− Help/UGen/Filter/allpassC.help.lhs

file too large to diff

− Help/UGen/Filter/allpassL.help.lhs

file too large to diff

− Help/UGen/Filter/allpassN.help.lhs

file too large to diff

− Help/UGen/Filter/bBandPass.help.lhs

file too large to diff

− Help/UGen/Filter/bBandStop.help.lhs

file too large to diff

− Help/UGen/Filter/bHiPass.help.lhs

file too large to diff

− Help/UGen/Filter/bHiShelf.help.lhs

file too large to diff

− Help/UGen/Filter/bLowPass.help.lhs

file too large to diff

− Help/UGen/Filter/bLowShelf.help.lhs

file too large to diff

− Help/UGen/Filter/bPeakEQ.help.lhs

file too large to diff

− Help/UGen/Filter/bpf.help.lhs

file too large to diff

− Help/UGen/Filter/bpz2.help.lhs

file too large to diff

− Help/UGen/Filter/brf.help.lhs

file too large to diff

− Help/UGen/Filter/changed.help.lhs

file too large to diff

− Help/UGen/Filter/clip.help.lhs

file too large to diff

− Help/UGen/Filter/combC.help.lhs

file too large to diff

− Help/UGen/Filter/combL.help.lhs

file too large to diff

− Help/UGen/Filter/combN.help.lhs

file too large to diff

− Help/UGen/Filter/decay.help.lhs

file too large to diff

− Help/UGen/Filter/decay2.help.lhs

file too large to diff

− Help/UGen/Filter/degreeToKey.help.lhs

file too large to diff

− Help/UGen/Filter/delay1.help.lhs

file too large to diff

− Help/UGen/Filter/delay2.help.lhs

file too large to diff

− Help/UGen/Filter/delayC.help.lhs

file too large to diff

− Help/UGen/Filter/delayL.help.lhs

file too large to diff

− Help/UGen/Filter/delayN.help.lhs

file too large to diff

− Help/UGen/Filter/dynKlank.help.lhs

file too large to diff

− Help/UGen/Filter/formlet.help.lhs

file too large to diff

− Help/UGen/Filter/fos.help.lhs

file too large to diff

− Help/UGen/Filter/freeVerb.help.lhs

file too large to diff

− Help/UGen/Filter/freqShift.help.lhs

file too large to diff

− Help/UGen/Filter/gVerb.help.lhs

file too large to diff

− Help/UGen/Filter/hasher.help.lhs

file too large to diff

− Help/UGen/Filter/hpf.help.lhs

file too large to diff

− Help/UGen/Filter/hpz1.help.lhs

file too large to diff

− Help/UGen/Filter/hpz2.help.lhs

file too large to diff

− Help/UGen/Filter/klank.help.lhs

file too large to diff

− Help/UGen/Filter/lag.help.lhs

file too large to diff

− Help/UGen/Filter/lag2.help.lhs

file too large to diff

− Help/UGen/Filter/lag3.help.lhs

file too large to diff

− Help/UGen/Filter/lagUD.help.lhs

file too large to diff

− Help/UGen/Filter/latch.help.lhs

file too large to diff

− Help/UGen/Filter/leakDC.help.lhs

file too large to diff

− Help/UGen/Filter/limiter.help.lhs

file too large to diff

− Help/UGen/Filter/linExp.help.lhs

file too large to diff

− Help/UGen/Filter/linLin.help.lhs

file too large to diff

− Help/UGen/Filter/linXFade2.help.lhs

file too large to diff

− Help/UGen/Filter/lpf.help.lhs

file too large to diff

− Help/UGen/Filter/lpz1.help.lhs

file too large to diff

− Help/UGen/Filter/lpz2.help.lhs

file too large to diff

− Help/UGen/Filter/mantissaMask.help.lhs

file too large to diff

− Help/UGen/Filter/median.help.lhs

file too large to diff

− Help/UGen/Filter/midEQ.help.lhs

file too large to diff

− Help/UGen/Filter/moogFF.help.lhs

file too large to diff

− Help/UGen/Filter/normalizer.help.lhs

file too large to diff

− Help/UGen/Filter/onePole.help.lhs

file too large to diff

− Help/UGen/Filter/oneZero.help.lhs

file too large to diff

− Help/UGen/Filter/pitchShift.help.lhs

file too large to diff

− Help/UGen/Filter/pluck.help.lhs

file too large to diff

− Help/UGen/Filter/ramp.help.lhs

file too large to diff

− Help/UGen/Filter/resonz.help.lhs

file too large to diff

− Help/UGen/Filter/rhpf.help.lhs

file too large to diff

− Help/UGen/Filter/ringz.help.lhs

file too large to diff

− Help/UGen/Filter/rlpf.help.lhs

file too large to diff

− Help/UGen/Filter/select.help.lhs

file too large to diff

− Help/UGen/Filter/selectX.help.lhs

file too large to diff

− Help/UGen/Filter/shaper.help.lhs

file too large to diff

− Help/UGen/Filter/slew.help.lhs

file too large to diff

− Help/UGen/Filter/sos.help.lhs

file too large to diff

− Help/UGen/Filter/twoPole.help.lhs

file too large to diff

− Help/UGen/Filter/twoZero.help.lhs

file too large to diff

− Help/UGen/Filter/varLag.help.lhs

file too large to diff

− Help/UGen/Filter/wrapIndex.help.lhs

file too large to diff

− Help/UGen/Filter/xFade2.help.lhs

file too large to diff

− Help/UGen/Granular/grainBuf.help.lhs

file too large to diff

− Help/UGen/Granular/grainFM.help.lhs

file too large to diff

− Help/UGen/Granular/grainIn.help.lhs

file too large to diff

− Help/UGen/Granular/grainSin.help.lhs

file too large to diff

− Help/UGen/Granular/warp1.help.lhs

file too large to diff

− Help/UGen/IO/in.help.lhs

file too large to diff

− Help/UGen/IO/inFeedback.help.lhs

file too large to diff

− Help/UGen/IO/inTrig.help.lhs

file too large to diff

− Help/UGen/IO/keyState.help.lhs

file too large to diff

− Help/UGen/IO/lagIn.help.lhs

file too large to diff

− Help/UGen/IO/localBuf.help.lhs

file too large to diff

− Help/UGen/IO/localOut.help.lhs

file too large to diff

− Help/UGen/IO/mouseButton.help.lhs

file too large to diff

− Help/UGen/IO/mouseX.help.lhs

file too large to diff

− Help/UGen/IO/mouseY.help.lhs

file too large to diff

− Help/UGen/IO/offsetOut.help.lhs

file too large to diff

− Help/UGen/IO/out.help.lhs

file too large to diff

− Help/UGen/IO/replaceOut.help.lhs

file too large to diff

− Help/UGen/IO/soundIn.help.lhs

file too large to diff

− Help/UGen/IO/xOut.help.lhs

file too large to diff

− Help/UGen/Information/controlDur.help.lhs

file too large to diff

− Help/UGen/Information/controlRate.help.lhs

file too large to diff

− Help/UGen/Information/numAudioBuses.help.lhs

file too large to diff

− Help/UGen/Information/numBuffers.help.lhs

file too large to diff

− Help/UGen/Information/numControlBuses.help.lhs

file too large to diff

− Help/UGen/Information/numInputBuses.help.lhs

file too large to diff

− Help/UGen/Information/numOutputBuses.help.lhs

file too large to diff

− Help/UGen/Information/numRunningSynths.help.lhs

file too large to diff

− Help/UGen/Information/poll.help.lhs

file too large to diff

− Help/UGen/Information/radiansPerSample.help.lhs

file too large to diff

− Help/UGen/Information/sampleDur.help.lhs

file too large to diff

− Help/UGen/Information/sampleRate.help.lhs

file too large to diff

− Help/UGen/Information/subsampleOffset.help.lhs

file too large to diff

− Help/UGen/MachineListening/beatTrack.help.lhs

file too large to diff

− Help/UGen/MachineListening/loudness.help.lhs

file too large to diff

− Help/UGen/MachineListening/onsets.help.lhs

file too large to diff

− Help/UGen/MachineListening/specCentroid.help.lhs

file too large to diff

− Help/UGen/MachineListening/specFlatness.help.lhs

file too large to diff

− Help/UGen/Math/abs.help.lhs

file too large to diff

− Help/UGen/Math/absDif.help.lhs

file too large to diff

− Help/UGen/Math/add.help.lhs

file too large to diff

− Help/UGen/Math/amClip.help.lhs

file too large to diff

− Help/UGen/Math/atan2.help.lhs

file too large to diff

− Help/UGen/Math/clip2.help.lhs

file too large to diff

− Help/UGen/Math/dbAmp.help.lhs

file too large to diff

− Help/UGen/Math/difSqr.help.lhs

file too large to diff

− Help/UGen/Math/distort.help.lhs

file too large to diff

− Help/UGen/Math/eq.help.lhs

file too large to diff

− Help/UGen/Math/excess.help.lhs

file too large to diff

− Help/UGen/Math/fdiv.help.lhs

file too large to diff

− Help/UGen/Math/fold2.help.lhs

file too large to diff

− Help/UGen/Math/gt.help.lhs

file too large to diff

− Help/UGen/Math/hypot.help.lhs

file too large to diff

− Help/UGen/Math/max.help.lhs

file too large to diff

− Help/UGen/Math/mod.help.lhs

file too large to diff

− Help/UGen/Math/mul.help.lhs

file too large to diff

− Help/UGen/Math/pow.help.lhs

file too large to diff

− Help/UGen/Math/ring1.help.lhs

file too large to diff

− Help/UGen/Math/roundUp.help.lhs

file too large to diff

− Help/UGen/Math/scaleNeg.help.lhs

file too large to diff

− Help/UGen/Math/softClip.help.lhs

file too large to diff

− Help/UGen/Math/sumSqr.help.lhs

file too large to diff

− Help/UGen/Math/thresh.help.lhs

file too large to diff

− Help/UGen/Noise/brownNoise.help.lhs

file too large to diff

− Help/UGen/Noise/choose.help.lhs

file too large to diff

− Help/UGen/Noise/clipNoise.help.lhs

file too large to diff

− Help/UGen/Noise/coinGate.help.lhs

file too large to diff

− Help/UGen/Noise/dust.help.lhs

file too large to diff

− Help/UGen/Noise/dust2.help.lhs

file too large to diff

− Help/UGen/Noise/expRand.help.lhs

file too large to diff

− Help/UGen/Noise/grayNoise.help.lhs

file too large to diff

− Help/UGen/Noise/iRand.help.lhs

file too large to diff

− Help/UGen/Noise/lfClipNoise.help.lhs

file too large to diff

− Help/UGen/Noise/lfNoise0.help.lhs

file too large to diff

− Help/UGen/Noise/lfNoise1.help.lhs

file too large to diff

− Help/UGen/Noise/lfNoise2.help.lhs

file too large to diff

− Help/UGen/Noise/lfdClipNoise.help.lhs

file too large to diff

− Help/UGen/Noise/lfdNoise0.help.lhs

file too large to diff

− Help/UGen/Noise/lfdNoise1.help.lhs

file too large to diff

− Help/UGen/Noise/lfdNoise3.help.lhs

file too large to diff

− Help/UGen/Noise/linRand.help.lhs

file too large to diff

− Help/UGen/Noise/nRand.help.lhs

file too large to diff

− Help/UGen/Noise/pinkNoise.help.lhs

file too large to diff

− Help/UGen/Noise/rand.help.lhs

file too large to diff

− Help/UGen/Noise/randID.help.lhs

file too large to diff

− Help/UGen/Noise/randSeed.help.lhs

file too large to diff

− Help/UGen/Noise/tExpRand.help.lhs

file too large to diff

− Help/UGen/Noise/tIRand.help.lhs

file too large to diff

− Help/UGen/Noise/tRand.help.lhs

file too large to diff

− Help/UGen/Noise/whiteNoise.help.lhs

file too large to diff

− Help/UGen/Oscillator/blip.help.lhs

file too large to diff

− Help/UGen/Oscillator/cOsc.help.lhs

file too large to diff

− Help/UGen/Oscillator/dc.help.lhs

file too large to diff

− Help/UGen/Oscillator/dynKlang.help.lhs

file too large to diff

− Help/UGen/Oscillator/fSinOsc.help.lhs

file too large to diff

− Help/UGen/Oscillator/formant.help.lhs

file too large to diff

− Help/UGen/Oscillator/gendy1.help.lhs

file too large to diff

− Help/UGen/Oscillator/impulse.help.lhs

file too large to diff

− Help/UGen/Oscillator/klang.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfCub.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfGauss.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfPar.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfPulse.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfSaw.help.lhs

file too large to diff

− Help/UGen/Oscillator/lfTri.help.lhs

file too large to diff

− Help/UGen/Oscillator/osc1.help.lhs

file too large to diff

− Help/UGen/Oscillator/oscN.help.lhs

file too large to diff

− Help/UGen/Oscillator/pmOsc.help.lhs

file too large to diff

− Help/UGen/Oscillator/pulse.help.lhs

file too large to diff

− Help/UGen/Oscillator/saw.help.lhs

file too large to diff

− Help/UGen/Oscillator/silent.help.lhs

file too large to diff

− Help/UGen/Oscillator/sinOsc.help.lhs

file too large to diff

− Help/UGen/Oscillator/sinOscFB.help.lhs

file too large to diff

− Help/UGen/Oscillator/syncSaw.help.lhs

file too large to diff

− Help/UGen/Oscillator/tChoose.help.lhs

file too large to diff

− Help/UGen/Oscillator/tGrains.help.lhs

file too large to diff

− Help/UGen/Oscillator/tWindex.help.lhs

file too large to diff

− Help/UGen/Oscillator/twChoose.help.lhs

file too large to diff

− Help/UGen/Oscillator/varSaw.help.lhs

file too large to diff

− Help/UGen/Oscillator/vibrato.help.lhs

file too large to diff

− Help/UGen/Panner/balance2.help.lhs

file too large to diff

− Help/UGen/Panner/decodeB2.help.lhs

file too large to diff

− Help/UGen/Panner/linPan2.help.lhs

file too large to diff

− Help/UGen/Panner/pan2.help.lhs

file too large to diff

− Help/UGen/Panner/panAz.help.lhs

file too large to diff

− Help/UGen/Panner/rotate2.help.lhs

file too large to diff

− Help/UGen/Panner/splay.help.lhs

file too large to diff

− Help/UGen/Trigger/gate.help.lhs

file too large to diff

− Help/UGen/Trigger/inRange.help.lhs

file too large to diff

− Help/UGen/Trigger/lastValue.help.lhs

file too large to diff

− Help/UGen/Trigger/mostChange.help.lhs

file too large to diff

− Help/UGen/Trigger/peak.help.lhs

file too large to diff

− Help/UGen/Trigger/phasor.help.lhs

file too large to diff

− Help/UGen/Trigger/pulseCount.help.lhs

file too large to diff

− Help/UGen/Trigger/pulseDivider.help.lhs

file too large to diff

− Help/UGen/Trigger/runningMax.help.lhs

file too large to diff

− Help/UGen/Trigger/runningMin.help.lhs

file too large to diff

− Help/UGen/Trigger/sendReply.help.lhs

file too large to diff

− Help/UGen/Trigger/sendTrig.help.lhs

file too large to diff

− Help/UGen/Trigger/setResetFF.help.lhs

file too large to diff

− Help/UGen/Trigger/stepper.help.lhs

file too large to diff

− Help/UGen/Trigger/sweep.help.lhs

file too large to diff

− Help/UGen/Trigger/tDelay.help.lhs

file too large to diff

− Help/UGen/Trigger/timer.help.lhs

file too large to diff

− Help/UGen/Trigger/toggleFF.help.lhs

file too large to diff

− Help/UGen/Trigger/trig.help.lhs

file too large to diff

− Help/UGen/Trigger/trig1.help.lhs

file too large to diff

− Help/UGen/Wavelets/dwt.help.lhs

file too large to diff

− Help/UGen/Wavelets/idwt.help.lhs

file too large to diff

− Help/UGen/Wavelets/wt_FilterScale.help.lhs

file too large to diff

− Help/UGen/Wavelets/wt_TimeWipe.help.lhs

file too large to diff

+ Help/Ugen/abs.help.hs view

file too large to diff

+ Help/Ugen/absDif.help.hs view

file too large to diff

+ Help/Ugen/acos.help.hs view

file too large to diff

+ Help/Ugen/add.help.hs view

file too large to diff

+ Help/Ugen/allpassC.help.hs view

file too large to diff

+ Help/Ugen/allpassL.help.hs view

file too large to diff

+ Help/Ugen/allpassN.help.hs view

file too large to diff

+ Help/Ugen/amClip.help.hs view

file too large to diff

+ Help/Ugen/ampComp.help.hs view

file too large to diff

+ Help/Ugen/ampDb.help.hs view

file too large to diff

+ Help/Ugen/amplitude.help.hs view

file too large to diff

+ Help/Ugen/analogBassDrum.help.hs view

file too large to diff

+ Help/Ugen/analogPhaser.help.hs view

file too large to diff

+ Help/Ugen/analogPhaserMod.help.hs view

file too large to diff

+ Help/Ugen/analogSnareDrum.help.hs view

file too large to diff

+ Help/Ugen/analogTape.help.hs view

file too large to diff

+ Help/Ugen/analogVintageDistortion.help.hs view

file too large to diff

+ Help/Ugen/arrayMax.help.hs view

file too large to diff

+ Help/Ugen/arrayMin.help.hs view

file too large to diff

+ Help/Ugen/asin.help.hs view

file too large to diff

+ Help/Ugen/atan.help.hs view

file too large to diff

+ Help/Ugen/atan2.help.hs view

file too large to diff

+ Help/Ugen/atari2600.help.hs view

file too large to diff

+ Help/Ugen/audioMSG.help.hs view

file too large to diff

+ Help/Ugen/ay.help.hs view

file too large to diff

+ Help/Ugen/bAllPass.help.hs view

file too large to diff

+ Help/Ugen/bBandPass.help.hs view

file too large to diff

+ Help/Ugen/bBandStop.help.hs view

file too large to diff

+ Help/Ugen/bGen.help.hs view

file too large to diff

+ Help/Ugen/bHiPass.help.hs view

file too large to diff

+ Help/Ugen/bHiPass4.help.hs view

file too large to diff

+ Help/Ugen/bHiShelf.help.hs view

file too large to diff

+ Help/Ugen/bLowPass.help.hs view

file too large to diff

+ Help/Ugen/bLowPass4.help.hs view

file too large to diff

+ Help/Ugen/bLowShelf.help.hs view

file too large to diff

+ Help/Ugen/bMoog.help.hs view

file too large to diff

+ Help/Ugen/bPeakEQ.help.hs view

file too large to diff

+ Help/Ugen/balance2.help.hs view

file too large to diff

+ Help/Ugen/beatTrack.help.hs view

file too large to diff

+ Help/Ugen/bezier.help.hs view

file too large to diff

+ Help/Ugen/blOsc.help.hs view

file too large to diff

+ Help/Ugen/blip.help.hs view

file too large to diff

+ Help/Ugen/blitB3.help.hs view

file too large to diff

+ Help/Ugen/blitB3Saw.help.hs view

file too large to diff

+ Help/Ugen/blitB3Square.help.hs view

file too large to diff

+ Help/Ugen/blitB3Tri.help.hs view

file too large to diff

+ Help/Ugen/blockSize.help.hs view

file too large to diff

+ Help/Ugen/bpf.help.hs view

file too large to diff

+ Help/Ugen/bpz2.help.hs view

file too large to diff

+ Help/Ugen/brf.help.hs view

file too large to diff

+ Help/Ugen/brownNoise.help.hs view

file too large to diff

+ Help/Ugen/brz2.help.hs view

file too large to diff

+ Help/Ugen/bufAllpassC.help.hs view

file too large to diff

+ Help/Ugen/bufAllpassL.help.hs view

file too large to diff

+ Help/Ugen/bufAllpassN.help.hs view

file too large to diff

+ Help/Ugen/bufChannels.help.hs view

file too large to diff

+ Help/Ugen/bufCombC.help.hs view

file too large to diff

+ Help/Ugen/bufCombL.help.hs view

file too large to diff

+ Help/Ugen/bufCombN.help.hs view

file too large to diff

+ Help/Ugen/bufDelayC.help.hs view

file too large to diff

+ Help/Ugen/bufDelayL.help.hs view

file too large to diff

+ Help/Ugen/bufDelayN.help.hs view

file too large to diff

+ Help/Ugen/bufDur.help.hs view

file too large to diff

+ Help/Ugen/bufFrames.help.hs view

file too large to diff

+ Help/Ugen/bufGrain.help.hs view

file too large to diff

+ Help/Ugen/bufRateScale.help.hs view

file too large to diff

+ Help/Ugen/bufRd.help.hs view

file too large to diff

+ Help/Ugen/bufSampleRate.help.hs view

file too large to diff

+ Help/Ugen/bufWr.help.hs view

file too large to diff

+ Help/Ugen/cOsc.help.hs view

file too large to diff

+ Help/Ugen/changed.help.hs view

file too large to diff

+ Help/Ugen/checkBadValues.help.hs view

file too large to diff

+ Help/Ugen/chen.help.hs view

file too large to diff

+ Help/Ugen/choose.help.hs view

file too large to diff

+ Help/Ugen/chromagram.help.hs view

file too large to diff

+ Help/Ugen/circleRamp.help.hs view

file too large to diff

+ Help/Ugen/clearBuf.help.hs view

file too large to diff

+ Help/Ugen/clip.help.hs view

file too large to diff

+ Help/Ugen/clip2.help.hs view

file too large to diff

+ Help/Ugen/clipNoise.help.hs view

file too large to diff

+ Help/Ugen/coinGate.help.hs view

file too large to diff

+ Help/Ugen/combC.help.hs view

file too large to diff

+ Help/Ugen/combL.help.hs view

file too large to diff

+ Help/Ugen/combN.help.hs view

file too large to diff

+ Help/Ugen/compander.help.hs view

file too large to diff

+ Help/Ugen/complexRes.help.hs view

file too large to diff

+ Help/Ugen/concat.help.hs view

file too large to diff

+ Help/Ugen/control.hs view

file too large to diff

+ Help/Ugen/controlDur.help.hs view

file too large to diff

+ Help/Ugen/controlRate.help.hs view

file too large to diff

+ Help/Ugen/convolution.help.hs view

file too large to diff

+ Help/Ugen/cos.help.hs view

file too large to diff

+ Help/Ugen/cosh.help.hs view

file too large to diff

+ Help/Ugen/coyote.help.hs view

file too large to diff

+ Help/Ugen/crackle.help.hs view

file too large to diff

+ Help/Ugen/crest.help.hs view

file too large to diff

+ Help/Ugen/crossoverDistortion.help.hs view

file too large to diff

+ Help/Ugen/ctl8Voicer.help.hs view

file too large to diff

+ Help/Ugen/cuspL.help.hs view

file too large to diff

+ Help/Ugen/cuspN.help.hs view

file too large to diff

+ Help/Ugen/dNoiseRing.help.hs view

file too large to diff

+ Help/Ugen/dbAmp.help.hs view

file too large to diff

+ Help/Ugen/dbrown.help.hs view

file too large to diff

+ Help/Ugen/dbufrd.help.hs view

file too large to diff

+ Help/Ugen/dbufwr.help.hs view

file too large to diff

+ Help/Ugen/dc.help.hs view

file too large to diff

+ Help/Ugen/dconst.help.hs view

file too large to diff

+ Help/Ugen/decay.help.hs view

file too large to diff

+ Help/Ugen/decay2.help.hs view

file too large to diff

+ Help/Ugen/degreeToKey.help.hs view

file too large to diff

+ Help/Ugen/delTapWr.help.hs view

file too large to diff

+ Help/Ugen/delay1.help.hs view

file too large to diff

+ Help/Ugen/delay2.help.hs view

file too large to diff

+ Help/Ugen/delayC.help.hs view

file too large to diff

+ Help/Ugen/delayL.help.hs view

file too large to diff

+ Help/Ugen/delayN.help.hs view

file too large to diff

+ Help/Ugen/demand.help.hs view

file too large to diff

+ Help/Ugen/demandEnvGen.help.hs view

file too large to diff

+ Help/Ugen/detectIndex.help.hs view

file too large to diff

+ Help/Ugen/detectSilence.help.hs view

file too large to diff

+ Help/Ugen/dfm1.help.hs view

file too large to diff

+ Help/Ugen/dgeom.help.hs view

file too large to diff

+ Help/Ugen/dibrown.help.hs view

file too large to diff

+ Help/Ugen/difSqr.help.hs view

file too large to diff

+ Help/Ugen/diodeRingMod.help.hs view

file too large to diff

+ Help/Ugen/disintegrator.help.hs view

file too large to diff

+ Help/Ugen/diskIn.help.hs view

file too large to diff

+ Help/Ugen/distort.help.hs view

file too large to diff

+ Help/Ugen/div.help.hs view

file too large to diff

+ Help/Ugen/diwhite.help.hs view

file too large to diff

+ Help/Ugen/dneuromodule.help.hs view

file too large to diff

+ Help/Ugen/done.help.hs view

file too large to diff

+ Help/Ugen/doubleWell3.help.hs view

file too large to diff

+ Help/Ugen/dpw3Tri.help.hs view

file too large to diff

+ Help/Ugen/dpw4Saw.help.hs view

file too large to diff

+ Help/Ugen/drand.help.hs view

file too large to diff

+ Help/Ugen/dseq.help.hs view

file too large to diff

+ Help/Ugen/dser.help.hs view

file too large to diff

+ Help/Ugen/dseries.help.hs view

file too large to diff

+ Help/Ugen/dshuf.help.hs view

file too large to diff

+ Help/Ugen/dstutter.help.hs view

file too large to diff

+ Help/Ugen/dswitch.help.hs view

file too large to diff

+ Help/Ugen/dswitch1.help.hs view

file too large to diff

+ Help/Ugen/dust.help.hs view

file too large to diff

+ Help/Ugen/dust2.help.hs view

file too large to diff

+ Help/Ugen/dustRange.help.hs view

file too large to diff

+ Help/Ugen/duty.help.hs view

file too large to diff

+ Help/Ugen/dwgBowed.help.hs view

file too large to diff

+ Help/Ugen/dwgBowedTor.help.hs view

file too large to diff

+ Help/Ugen/dwgClarinet3.help.hs view

file too large to diff

+ Help/Ugen/dwgFlute.help.hs view

file too large to diff

+ Help/Ugen/dwgPlucked2.help.hs view

file too large to diff

+ Help/Ugen/dwgPluckedStiff.help.hs view

file too large to diff

+ Help/Ugen/dwgSoundBoard.help.hs view

file too large to diff

+ Help/Ugen/dwhite.help.hs view

file too large to diff

+ Help/Ugen/dwrand.help.hs view

file too large to diff

+ Help/Ugen/dx7.help.hs view

file too large to diff

+ Help/Ugen/dxrand.help.hs view

file too large to diff

+ Help/Ugen/dynKlang.help.hs view

file too large to diff

+ Help/Ugen/dynKlank.help.hs view

file too large to diff

+ Help/Ugen/envAdsr.help.hs view

file too large to diff

+ Help/Ugen/envAsr.help.hs view

file too large to diff

+ Help/Ugen/envCoord.help.hs view

file too large to diff

+ Help/Ugen/envDetect.help.hs view

file too large to diff

+ Help/Ugen/envFollow.help.hs view

file too large to diff

+ Help/Ugen/envGate.help.hs view

file too large to diff

+ Help/Ugen/envGen.help.hs view

file too large to diff

+ Help/Ugen/envLinen.help.hs view

file too large to diff

+ Help/Ugen/envPairs.help.hs view

file too large to diff

+ Help/Ugen/envPerc.help.hs view

file too large to diff

+ Help/Ugen/envSine.help.hs view

file too large to diff

+ Help/Ugen/envStep.help.hs view

file too large to diff

+ Help/Ugen/envTrapezoid.help.hs view

file too large to diff

+ Help/Ugen/envTriangle.help.hs view

file too large to diff

+ Help/Ugen/envXyc.help.hs view

file too large to diff

+ Help/Ugen/equal_to.help.hs view

file too large to diff

+ Help/Ugen/eventVoicer.help.hs view

file too large to diff

+ Help/Ugen/excess.help.hs view

file too large to diff

+ Help/Ugen/expRand.help.hs view

file too large to diff

+ Help/Ugen/expRandN.help.hs view

file too large to diff

+ Help/Ugen/fSinOsc.help.hs view

file too large to diff

+ Help/Ugen/fbSineC.help.hs view

file too large to diff

+ Help/Ugen/fbSineL.help.hs view

file too large to diff

+ Help/Ugen/fbSineN.help.hs view

file too large to diff

+ Help/Ugen/fdiv.help.hs view

file too large to diff

+ Help/Ugen/fft.help.hs view

file too large to diff

+ Help/Ugen/fftTrigger.help.hs view

file too large to diff

+ Help/Ugen/fm7.help.hs view

file too large to diff

+ Help/Ugen/fmGrain.help.hs view

file too large to diff

+ Help/Ugen/fmGrainB.help.hs view

file too large to diff

+ Help/Ugen/fold2.help.hs view

file too large to diff

+ Help/Ugen/formant.help.hs view

file too large to diff

+ Help/Ugen/formlet.help.hs view

file too large to diff

+ Help/Ugen/fos.help.hs view

file too large to diff

+ Help/Ugen/frac.help.hs view

file too large to diff

+ Help/Ugen/free.help.hs view

file too large to diff

+ Help/Ugen/freeSelf.help.hs view

file too large to diff

+ Help/Ugen/freeSelfWhenDone.help.hs view

file too large to diff

+ Help/Ugen/freeVerb.help.hs view

file too large to diff

+ Help/Ugen/freezer.help.hs view

file too large to diff

+ Help/Ugen/freqShift.help.hs view

file too large to diff

+ Help/Ugen/friction.help.hs view

file too large to diff

+ Help/Ugen/gVerb.help.hs view

file too large to diff

+ Help/Ugen/gammatone.help.hs view

file too large to diff

+ Help/Ugen/gate.help.hs view

file too large to diff

+ Help/Ugen/gateReset.help.hs view

file too large to diff

+ Help/Ugen/gaussTrig.help.hs view

file too large to diff

+ Help/Ugen/gbmanL.help.hs view

file too large to diff

+ Help/Ugen/gbmanN.help.hs view

file too large to diff

+ Help/Ugen/gcd.help.hs view

file too large to diff

+ Help/Ugen/gendy1.help.hs view

file too large to diff

+ Help/Ugen/grainBuf.help.hs view

file too large to diff

+ Help/Ugen/grainFM.help.hs view

file too large to diff

+ Help/Ugen/grainIn.help.hs view

file too large to diff

+ Help/Ugen/grainSin.help.hs view

file too large to diff

+ Help/Ugen/grayNoise.help.hs view

file too large to diff

+ Help/Ugen/greater_than.help.hs view

file too large to diff

+ Help/Ugen/greyholeRaw.help.hs view

file too large to diff

+ Help/Ugen/hairCell.help.hs view

file too large to diff

+ Help/Ugen/harmonicOsc.help.hs view

file too large to diff

+ Help/Ugen/hasher.help.hs view

file too large to diff

+ Help/Ugen/henonC.help.hs view

file too large to diff

+ Help/Ugen/henonL.help.hs view

file too large to diff

+ Help/Ugen/henonN.help.hs view

file too large to diff

+ Help/Ugen/hilbert.help.hs view

file too large to diff

+ Help/Ugen/hilbertFIR.help.hs view

file too large to diff

+ Help/Ugen/hpf.help.hs view

file too large to diff

+ Help/Ugen/hpz1.help.hs view

file too large to diff

+ Help/Ugen/hpz2.help.hs view

file too large to diff

+ Help/Ugen/hypot.help.hs view

file too large to diff

+ Help/Ugen/iEnvGen.help.hs view

file too large to diff

+ Help/Ugen/iRand.help.hs view

file too large to diff

+ Help/Ugen/iRandN.help.hs view

file too large to diff

+ Help/Ugen/ifft.help.hs view

file too large to diff

+ Help/Ugen/iirFilter.help.hs view

file too large to diff

+ Help/Ugen/impulse.help.hs view

file too large to diff

+ Help/Ugen/in.help.hs view

file too large to diff

+ Help/Ugen/inFeedback.help.hs view

file too large to diff

+ Help/Ugen/inRange.help.hs view

file too large to diff

+ Help/Ugen/inTrig.help.hs view

file too large to diff

+ Help/Ugen/index.help.hs view

file too large to diff

+ Help/Ugen/indexInBetween.help.hs view

file too large to diff

+ Help/Ugen/indexL.help.hs view

file too large to diff

+ Help/Ugen/integrator.help.hs view

file too large to diff

+ Help/Ugen/jPverbRaw.help.hs view

file too large to diff

+ Help/Ugen/k2a.help.hs view

file too large to diff

+ Help/Ugen/keyState.help.hs view

file too large to diff

+ Help/Ugen/keyTrack.help.hs view

file too large to diff

+ Help/Ugen/klang.help.hs view

file too large to diff

+ Help/Ugen/klank.help.hs view

file too large to diff

+ Help/Ugen/ladspa.help.hs view

file too large to diff

+ Help/Ugen/lag.help.hs view

file too large to diff

+ Help/Ugen/lag2.help.hs view

file too large to diff

+ Help/Ugen/lag3.help.hs view

file too large to diff

+ Help/Ugen/lagIn.help.hs view

file too large to diff

+ Help/Ugen/lagUD.help.hs view

file too large to diff

+ Help/Ugen/lastValue.help.hs view

file too large to diff

+ Help/Ugen/latch.help.hs view

file too large to diff

+ Help/Ugen/latoocarfianC.help.hs view

file too large to diff

+ Help/Ugen/lcm.help.hs view

file too large to diff

+ Help/Ugen/leakDC.help.hs view

file too large to diff

+ Help/Ugen/lfBrownNoise0.help.hs view

file too large to diff

+ Help/Ugen/lfBrownNoise2.help.hs view

file too large to diff

+ Help/Ugen/lfClipNoise.help.hs view

file too large to diff

+ Help/Ugen/lfCub.help.hs view

file too large to diff

+ Help/Ugen/lfGauss.help.hs view

file too large to diff

+ Help/Ugen/lfNoise0.help.hs view

file too large to diff

+ Help/Ugen/lfNoise1.help.hs view

file too large to diff

+ Help/Ugen/lfNoise2.help.hs view

file too large to diff

+ Help/Ugen/lfPar.help.hs view

file too large to diff

+ Help/Ugen/lfPulse.help.hs view

file too large to diff

+ Help/Ugen/lfSaw.help.hs view

file too large to diff

+ Help/Ugen/lfTri.help.hs view

file too large to diff

+ Help/Ugen/lfdClipNoise.help.hs view

file too large to diff

+ Help/Ugen/lfdNoise0.help.hs view

file too large to diff

+ Help/Ugen/lfdNoise1.help.hs view

file too large to diff

+ Help/Ugen/lfdNoise3.help.hs view

file too large to diff

+ Help/Ugen/limiter.help.hs view

file too large to diff

+ Help/Ugen/linCongC.help.hs view

file too large to diff

+ Help/Ugen/linCongL.help.hs view

file too large to diff

+ Help/Ugen/linCongN.help.hs view

file too large to diff

+ Help/Ugen/linExp.help.hs view

file too large to diff

+ Help/Ugen/linLin.help.hs view

file too large to diff

+ Help/Ugen/linPan2.help.hs view

file too large to diff

+ Help/Ugen/linRand.help.hs view

file too large to diff

+ Help/Ugen/linXFade2.help.hs view

file too large to diff

+ Help/Ugen/line.help.hs view

file too large to diff

+ Help/Ugen/linen.help.hs view

file too large to diff

+ Help/Ugen/localBuf.help.hs view

file too large to diff

+ Help/Ugen/localIn.help.hs view

file too large to diff

+ Help/Ugen/localOut.help.hs view

file too large to diff

+ Help/Ugen/log.help.hs view

file too large to diff

+ Help/Ugen/logistic.help.hs view

file too large to diff

+ Help/Ugen/loopBuf.help.hs view

file too large to diff

+ Help/Ugen/lorenzL.help.hs view

file too large to diff

+ Help/Ugen/lorenzTrig.help.hs view

file too large to diff

+ Help/Ugen/lores.help.hs view

file too large to diff

+ Help/Ugen/loudness.help.hs view

file too large to diff

+ Help/Ugen/lpcAnalyzer.help.hs view

file too large to diff

+ Help/Ugen/lpf.help.hs view

file too large to diff

+ Help/Ugen/lpg.help.hs view

file too large to diff

+ Help/Ugen/lpz1.help.hs view

file too large to diff

+ Help/Ugen/lpz2.help.hs view

file too large to diff

+ Help/Ugen/lti.help.hs view

file too large to diff

+ Help/Ugen/mantissaMask.help.hs view

file too large to diff

+ Help/Ugen/max.help.hs view

file too large to diff

+ Help/Ugen/mce.help.hs view

file too large to diff

+ Help/Ugen/mdaPiano.help.hs view

file too large to diff

+ Help/Ugen/meddis.help.hs view

file too large to diff

+ Help/Ugen/median.help.hs view

file too large to diff

+ Help/Ugen/membraneCircle.help.hs view

file too large to diff

+ Help/Ugen/membraneHexagon.help.hs view

file too large to diff

+ Help/Ugen/metro.help.hs view

file too large to diff

+ Help/Ugen/miBraids.help.hs view

file too large to diff

+ Help/Ugen/miClouds.help.hs view

file too large to diff

+ Help/Ugen/miElements.help.hs view

file too large to diff

+ Help/Ugen/miOmi.help.hs view

file too large to diff

+ Help/Ugen/miPlaits.help.hs view

file too large to diff

+ Help/Ugen/miRings.help.hs view

file too large to diff

+ Help/Ugen/miRipples.help.hs view

file too large to diff

+ Help/Ugen/miTides.help.hs view

file too large to diff

+ Help/Ugen/miVerb.help.hs view

file too large to diff

+ Help/Ugen/midEQ.help.hs view

file too large to diff

+ Help/Ugen/midiCPS.help.hs view

file too large to diff

+ Help/Ugen/min.help.hs view

file too large to diff

+ Help/Ugen/mix.help.hs view

file too large to diff

+ Help/Ugen/mod.help.hs view

file too large to diff

+ Help/Ugen/modDif.help.hs view

file too large to diff

+ Help/Ugen/monoGrain.help.hs view

file too large to diff

+ Help/Ugen/moogFF.help.hs view

file too large to diff

+ Help/Ugen/moogLadder.help.hs view

file too large to diff

+ Help/Ugen/moogVCF.help.hs view

file too large to diff

+ Help/Ugen/mostChange.help.hs view

file too large to diff

+ Help/Ugen/mouseButton.help.hs view

file too large to diff

+ Help/Ugen/mouseX.help.hs view

file too large to diff

+ Help/Ugen/mouseY.help.hs view

file too large to diff

+ Help/Ugen/mrg2.help.hs view

file too large to diff

+ Help/Ugen/mul.help.hs view

file too large to diff

+ Help/Ugen/mulAdd.help.hs view

file too large to diff

+ Help/Ugen/nRand.help.hs view

file too large to diff

+ Help/Ugen/neg.help.hs view

file too large to diff

+ Help/Ugen/neoFormant.help.hs view

file too large to diff

+ Help/Ugen/nestedAllpassC.help.hs view

file too large to diff

+ Help/Ugen/nhHall.help.hs view

file too large to diff

+ Help/Ugen/nodeId.help.hs view

file too large to diff

+ Help/Ugen/normalizer.help.hs view

file too large to diff

+ Help/Ugen/numBuffers.help.hs view

file too large to diff

+ Help/Ugen/numRunningSynths.help.hs view

file too large to diff

+ Help/Ugen/obxdFilter.help.hs view

file too large to diff

+ Help/Ugen/offsetOut.help.hs view

file too large to diff

+ Help/Ugen/onePole.help.hs view

file too large to diff

+ Help/Ugen/oneZero.help.hs view

file too large to diff

+ Help/Ugen/onsets.help.hs view

file too large to diff

+ Help/Ugen/osc.help.hs view

file too large to diff

+ Help/Ugen/osc1.help.hs view

file too large to diff

+ Help/Ugen/oscN.help.hs view

file too large to diff

+ Help/Ugen/oteyPianoStrings.help.hs view

file too large to diff

+ Help/Ugen/oteySoundBoard.help.hs view

file too large to diff

+ Help/Ugen/out.help.hs view

file too large to diff

+ Help/Ugen/packFFT.help.hs view

file too large to diff

+ Help/Ugen/pan2.help.hs view

file too large to diff

+ Help/Ugen/panAz.help.hs view

file too large to diff

+ Help/Ugen/pause.help.hs view

file too large to diff

+ Help/Ugen/pauseSelf.help.hs view

file too large to diff

+ Help/Ugen/pauseSelfWhenDone.help.hs view

file too large to diff

+ Help/Ugen/peak.help.hs view

file too large to diff

+ Help/Ugen/peakFollower.help.hs view

file too large to diff

+ Help/Ugen/perlin3.help.hs view

file too large to diff

+ Help/Ugen/phasor.help.hs view

file too large to diff

+ Help/Ugen/phasorModal.help.hs view

file too large to diff

+ Help/Ugen/pinkNoise.help.hs view

file too large to diff

+ Help/Ugen/pitch.help.hs view

file too large to diff

+ Help/Ugen/pitchShift.help.hs view

file too large to diff

+ Help/Ugen/playBuf.help.hs view

file too large to diff

+ Help/Ugen/playBufCF.help.hs view

file too large to diff

+ Help/Ugen/pluck.help.hs view

file too large to diff

+ Help/Ugen/pmOsc.help.hs view

file too large to diff

+ Help/Ugen/poll.help.hs view

file too large to diff

+ Help/Ugen/pow.help.hs view

file too large to diff

+ Help/Ugen/pulse.help.hs view

file too large to diff

+ Help/Ugen/pulseCount.help.hs view

file too large to diff

+ Help/Ugen/pulseDPW.help.hs view

file too large to diff

+ Help/Ugen/pulseDivider.help.hs view

file too large to diff

+ Help/Ugen/pv_BinBufRd.help.hs view

file too large to diff

+ Help/Ugen/pv_BinScramble.help.hs view

file too large to diff

+ Help/Ugen/pv_BinShift.help.hs view

file too large to diff

+ Help/Ugen/pv_BinWipe.help.hs view

file too large to diff

+ Help/Ugen/pv_BrickWall.help.hs view

file too large to diff

+ Help/Ugen/pv_BufRd.help.hs view

file too large to diff

+ Help/Ugen/pv_Compander.help.hs view

file too large to diff

+ Help/Ugen/pv_ConformalMap.help.hs view

file too large to diff

+ Help/Ugen/pv_Diffuser.help.hs view

file too large to diff

+ Help/Ugen/pv_Freeze.help.hs view

file too large to diff

+ Help/Ugen/pv_HainsworthFoote.help.hs view

file too large to diff

+ Help/Ugen/pv_Invert.help.hs view

file too large to diff

+ Help/Ugen/pv_JensenAndersen.help.hs view

file too large to diff

+ Help/Ugen/pv_LocalMax.help.hs view

file too large to diff

+ Help/Ugen/pv_MagAbove.help.hs view

file too large to diff

+ Help/Ugen/pv_MagBelow.help.hs view

file too large to diff

+ Help/Ugen/pv_MagClip.help.hs view

file too large to diff

+ Help/Ugen/pv_MagFreeze.help.hs view

file too large to diff

+ Help/Ugen/pv_MagGate.help.hs view

file too large to diff

+ Help/Ugen/pv_MagMul.help.hs view

file too large to diff

+ Help/Ugen/pv_MagSmear.help.hs view

file too large to diff

+ Help/Ugen/pv_Morph.help.hs view

file too large to diff

+ Help/Ugen/pv_Mul.help.hs view

file too large to diff

+ Help/Ugen/pv_PlayBuf.help.hs view

file too large to diff

+ Help/Ugen/pv_RandComb.help.hs view

file too large to diff

+ Help/Ugen/pv_RandWipe.help.hs view

file too large to diff

+ Help/Ugen/pv_RecordBuf.help.hs view

file too large to diff

+ Help/Ugen/pv_RectComb.help.hs view

file too large to diff

+ Help/Ugen/pv_SpectralMap.help.hs view

file too large to diff

+ Help/Ugen/pv_Split.help.hs view

file too large to diff

+ Help/Ugen/pv_xFade.help.hs view

file too large to diff

+ Help/Ugen/quadC.help.hs view

file too large to diff

+ Help/Ugen/quadL.help.hs view

file too large to diff

+ Help/Ugen/quadN.help.hs view

file too large to diff

+ Help/Ugen/rDelayMap.help.hs view

file too large to diff

+ Help/Ugen/rDelaySet.help.hs view

file too large to diff

+ Help/Ugen/rDelaySetBuf.help.hs view

file too large to diff

+ Help/Ugen/rLagC.help.hs view

file too large to diff

+ Help/Ugen/rLoopSet.help.hs view

file too large to diff

+ Help/Ugen/rShufflerL.help.hs view

file too large to diff

+ Help/Ugen/rSmplrIndex.help.hs view

file too large to diff

+ Help/Ugen/rTracePlay.help.hs view

file too large to diff

+ Help/Ugen/rTraceRd.help.hs view

file too large to diff

+ Help/Ugen/radiansPerSample.help.hs view

file too large to diff

+ Help/Ugen/ramp.help.hs view

file too large to diff

+ Help/Ugen/rand.help.hs view

file too large to diff

+ Help/Ugen/rand2.help.hs view

file too large to diff

+ Help/Ugen/randN.help.hs view

file too large to diff

+ Help/Ugen/randSeed.help.hs view

file too large to diff

+ Help/Ugen/rcd.help.hs view

file too large to diff

+ Help/Ugen/rdl.help.hs view

file too large to diff

+ Help/Ugen/rdx7Env.help.hs view

file too large to diff

+ Help/Ugen/recordBuf.help.hs view

file too large to diff

+ Help/Ugen/redPhasor.help.hs view

file too large to diff

+ Help/Ugen/redPhasor2.help.hs view

file too large to diff

+ Help/Ugen/replaceOut.help.hs view

file too large to diff

+ Help/Ugen/resonator.help.hs view

file too large to diff

+ Help/Ugen/resonz.help.hs view

file too large to diff

+ Help/Ugen/rhpf.help.hs view

file too large to diff

+ Help/Ugen/ring1.help.hs view

file too large to diff

+ Help/Ugen/ring2.help.hs view

file too large to diff

+ Help/Ugen/ring3.help.hs view

file too large to diff

+ Help/Ugen/ring4.help.hs view

file too large to diff

+ Help/Ugen/ringz.help.hs view

file too large to diff

+ Help/Ugen/rlpf.help.hs view

file too large to diff

+ Help/Ugen/rlpfd.help.hs view

file too large to diff

+ Help/Ugen/rmShelf.help.hs view

file too large to diff

+ Help/Ugen/rmeq.help.hs view

file too large to diff

+ Help/Ugen/rongs.help.hs view

file too large to diff

+ Help/Ugen/rotate2.help.hs view

file too large to diff

+ Help/Ugen/roundUp.help.hs view

file too large to diff

+ Help/Ugen/rpvDecayTbl.help.hs view

file too large to diff

+ Help/Ugen/runningMax.help.hs view

file too large to diff

+ Help/Ugen/runningMin.help.hs view

file too large to diff

+ Help/Ugen/runningSum.help.hs view

file too large to diff

+ Help/Ugen/sampleDur.help.hs view

file too large to diff

+ Help/Ugen/sampleRate.help.hs view

file too large to diff

+ Help/Ugen/sanitize.help.hs view

file too large to diff

+ Help/Ugen/saw.help.hs view

file too large to diff

+ Help/Ugen/sawDPW.help.hs view

file too large to diff

+ Help/Ugen/scaleNeg.help.hs view

file too large to diff

+ Help/Ugen/schmidt.help.hs view

file too large to diff

+ Help/Ugen/select.help.hs view

file too large to diff

+ Help/Ugen/selectX.help.hs view

file too large to diff

+ Help/Ugen/sendReply.help.hs view

file too large to diff

+ Help/Ugen/sensoryDissonance.help.hs view

file too large to diff

+ Help/Ugen/setResetFF.help.hs view

file too large to diff

+ Help/Ugen/shaper.help.hs view

file too large to diff

+ Help/Ugen/shufflerB.help.hs view

file too large to diff

+ Help/Ugen/silent.help.hs view

file too large to diff

+ Help/Ugen/sin.help.hs view

file too large to diff

+ Help/Ugen/sinGrain.help.hs view

file too large to diff

+ Help/Ugen/sinOsc.help.hs view

file too large to diff

+ Help/Ugen/sinOscFB.help.hs view

file too large to diff

+ Help/Ugen/sineShaper.help.hs view

file too large to diff

+ Help/Ugen/sinh.help.hs view

file too large to diff

+ Help/Ugen/slew.help.hs view

file too large to diff

+ Help/Ugen/slope.help.hs view

file too large to diff

+ Help/Ugen/sms.help.hs view

file too large to diff

+ Help/Ugen/sndfileIn.help.hs view

file too large to diff

+ Help/Ugen/sndfileRead.help.hs view

file too large to diff

+ Help/Ugen/softClip.help.hs view

file too large to diff

+ Help/Ugen/softClipAmp.help.hs view

file too large to diff

+ Help/Ugen/sonLPC.help.hs view

file too large to diff

+ Help/Ugen/sortBuf.help.hs view

file too large to diff

+ Help/Ugen/sos.help.hs view

file too large to diff

+ Help/Ugen/soundIn.help.hs view

file too large to diff

+ Help/Ugen/specCentroid.help.hs view

file too large to diff

+ Help/Ugen/specFlatness.help.hs view

file too large to diff

+ Help/Ugen/spectralEntropy.help.hs view

file too large to diff

+ Help/Ugen/splay.help.hs view

file too large to diff

+ Help/Ugen/spreader.help.hs view

file too large to diff

+ Help/Ugen/spring.help.hs view

file too large to diff

+ Help/Ugen/sqrDif.help.hs view

file too large to diff

+ Help/Ugen/sqrSum.help.hs view

file too large to diff

+ Help/Ugen/squiz.help.hs view

file too large to diff

+ Help/Ugen/standard2DL.help.hs view

file too large to diff

+ Help/Ugen/standardL.help.hs view

file too large to diff

+ Help/Ugen/stepper.help.hs view

file too large to diff

+ Help/Ugen/stkBandedWG.help.hs view

file too large to diff

+ Help/Ugen/stkInst.help.hs view

file too large to diff

+ Help/Ugen/stkMandolin.help.hs view

file too large to diff

+ Help/Ugen/stkModalBar.help.hs view

file too large to diff

+ Help/Ugen/stkMoog.help.hs view

file too large to diff

+ Help/Ugen/stkPluck.help.hs view

file too large to diff

+ Help/Ugen/stkShakers.help.hs view

file too large to diff

+ Help/Ugen/streson.help.hs view

file too large to diff

+ Help/Ugen/stringVoice.help.hs view

file too large to diff

+ Help/Ugen/sub.help.hs view

file too large to diff

+ Help/Ugen/subsampleOffset.help.hs view

file too large to diff

+ Help/Ugen/sum3.help.hs view

file too large to diff

+ Help/Ugen/sum4.help.hs view

file too large to diff

+ Help/Ugen/sumSqr.help.hs view

file too large to diff

+ Help/Ugen/summer.help.hs view

file too large to diff

+ Help/Ugen/svf.help.hs view

file too large to diff

+ Help/Ugen/svfBp.help.hs view

file too large to diff

+ Help/Ugen/svfHp.help.hs view

file too large to diff

+ Help/Ugen/svfLp.help.hs view

file too large to diff

+ Help/Ugen/sweep.help.hs view

file too large to diff

+ Help/Ugen/switchDelay.help.hs view

file too large to diff

+ Help/Ugen/syncSaw.help.hs view

file too large to diff

+ Help/Ugen/t2a.help.hs view

file too large to diff

+ Help/Ugen/t2k.help.hs view

file too large to diff

+ Help/Ugen/tBall.help.hs view

file too large to diff

+ Help/Ugen/tBetaRand.help.hs view

file too large to diff

+ Help/Ugen/tBrownRand.help.hs view

file too large to diff

+ Help/Ugen/tChoose.help.hs view

file too large to diff

+ Help/Ugen/tDelay.help.hs view

file too large to diff

+ Help/Ugen/tDuty.help.hs view

file too large to diff

+ Help/Ugen/tExpRand.help.hs view

file too large to diff

+ Help/Ugen/tExpRandN.help.hs view

file too large to diff

+ Help/Ugen/tGaussRand.help.hs view

file too large to diff

+ Help/Ugen/tGrains.help.hs view

file too large to diff

+ Help/Ugen/tLine.help.hs view

file too large to diff

+ Help/Ugen/tRand.help.hs view

file too large to diff

+ Help/Ugen/tRandN.help.hs view

file too large to diff

+ Help/Ugen/tScramble.help.hs view

file too large to diff

+ Help/Ugen/tWindex.help.hs view

file too large to diff

+ Help/Ugen/tXLine.help.hs view

file too large to diff

+ Help/Ugen/tan.help.hs view

file too large to diff

+ Help/Ugen/tanh.help.hs view

file too large to diff

+ Help/Ugen/tap.help.hs view

file too large to diff

+ Help/Ugen/tartini.help.hs view

file too large to diff

+ Help/Ugen/thresh.help.hs view

file too large to diff

+ Help/Ugen/tiRand.help.hs view

file too large to diff

+ Help/Ugen/timer.help.hs view

file too large to diff

+ Help/Ugen/toggleFF.help.hs view

file too large to diff

+ Help/Ugen/trig.help.hs view

file too large to diff

+ Help/Ugen/trig1.help.hs view

file too large to diff

+ Help/Ugen/trigAvg.help.hs view

file too large to diff

+ Help/Ugen/trigControl.help.hs view

file too large to diff

+ Help/Ugen/twChoose.help.hs view

file too large to diff

+ Help/Ugen/twoPole.help.hs view

file too large to diff

+ Help/Ugen/twoTube.help.hs view

file too large to diff

+ Help/Ugen/twoZero.help.hs view

file too large to diff

+ Help/Ugen/vDiskIn.help.hs view

file too large to diff

+ Help/Ugen/vOsc.help.hs view

file too large to diff

+ Help/Ugen/vOsc3.help.hs view

file too large to diff

+ Help/Ugen/varLag.help.hs view

file too large to diff

+ Help/Ugen/varSaw.help.hs view

file too large to diff

+ Help/Ugen/varShapeOsc.help.hs view

file too large to diff

+ Help/Ugen/vbFourses.help.hs view

file too large to diff

+ Help/Ugen/vbJonVerb.help.hs view

file too large to diff

+ Help/Ugen/vbSlide.help.hs view

file too large to diff

+ Help/Ugen/vibrato.help.hs view

file too large to diff

+ Help/Ugen/vosim.help.hs view

file too large to diff

+ Help/Ugen/vosimOsc.help.hs view

file too large to diff

+ Help/Ugen/warp1.help.hs view

file too large to diff

+ Help/Ugen/weaklyNonlinear2.help.hs view

file too large to diff

+ Help/Ugen/whiteNoise.help.hs view

file too large to diff

+ Help/Ugen/wrap.help.hs view

file too large to diff

+ Help/Ugen/wrap2.help.hs view

file too large to diff

+ Help/Ugen/wrapIndex.help.hs view

file too large to diff

+ Help/Ugen/xFade2.help.hs view

file too large to diff

+ Help/Ugen/xLine.help.hs view

file too large to diff

+ Help/Ugen/xOut.help.hs view

file too large to diff

+ Help/Ugen/zOsc.help.hs view

file too large to diff

+ Help/Ugen/zeroCrossing.help.hs view

file too large to diff

+ Help/Ugen/zitaRev.help.hs view

file too large to diff

− README

file too large to diff

+ README.md view

file too large to diff

− Sound/SC3.hs

file too large to diff

− Sound/SC3/Common.hs

file too large to diff

− Sound/SC3/Common/Monad/Syntax.hs

file too large to diff

− Sound/SC3/FD.hs

file too large to diff

− Sound/SC3/Server.hs

file too large to diff

− Sound/SC3/Server/Command.hs

file too large to diff

− Sound/SC3/Server/Command/Completion.hs

file too large to diff

− Sound/SC3/Server/Command/Enum.hs

file too large to diff

− Sound/SC3/Server/Command/Generic.hs

file too large to diff

− Sound/SC3/Server/Command/Plain.hs

file too large to diff

− Sound/SC3/Server/Enum.hs

file too large to diff

− Sound/SC3/Server/FD.hs

file too large to diff

− Sound/SC3/Server/Graphdef.hs

file too large to diff

− Sound/SC3/Server/Graphdef/Graph.hs

file too large to diff

− Sound/SC3/Server/Graphdef/Read.hs

file too large to diff

− Sound/SC3/Server/Help.hs

file too large to diff

− Sound/SC3/Server/Monad.hs

file too large to diff

− Sound/SC3/Server/NRT.hs

file too large to diff

− Sound/SC3/Server/NRT/Edit.hs

file too large to diff

− Sound/SC3/Server/Recorder.hs

file too large to diff

− Sound/SC3/Server/Status.hs

file too large to diff

− Sound/SC3/Server/Synthdef.hs

file too large to diff

− Sound/SC3/Server/Transport/FD.hs

file too large to diff

− Sound/SC3/Server/Transport/Monad.hs

file too large to diff

− Sound/SC3/UGen.hs

file too large to diff

− Sound/SC3/UGen/Bindings.hs

file too large to diff

− Sound/SC3/UGen/Bindings/Composite.hs

file too large to diff

− Sound/SC3/UGen/Bindings/DB.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/Construct.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/ATS.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/F0.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/ID.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/LPC.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/SC3_Plugins.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/Wavelets.hs

file too large to diff

− Sound/SC3/UGen/Bindings/HW/External/Zita.hs

file too large to diff

− Sound/SC3/UGen/Bindings/Monad.hs

file too large to diff

− Sound/SC3/UGen/Enum.hs

file too large to diff

− Sound/SC3/UGen/Envelope.hs

file too large to diff

− Sound/SC3/UGen/Envelope/Construct.hs

file too large to diff

− Sound/SC3/UGen/Envelope/Interpolate.hs

file too large to diff

− Sound/SC3/UGen/Graph.hs

file too large to diff

− Sound/SC3/UGen/Graph/Reconstruct.hs

file too large to diff

− Sound/SC3/UGen/Graph/Transform.hs

file too large to diff

− Sound/SC3/UGen/Help.hs

file too large to diff

− Sound/SC3/UGen/Help/Graph.hs

file too large to diff

− Sound/SC3/UGen/Identifier.hs

file too large to diff

− Sound/SC3/UGen/MCE.hs

file too large to diff

− Sound/SC3/UGen/Math.hs

file too large to diff

− Sound/SC3/UGen/Name.hs

file too large to diff

− Sound/SC3/UGen/Operator.hs

file too large to diff

− Sound/SC3/UGen/Optimise.hs

file too large to diff

− Sound/SC3/UGen/PP.hs

file too large to diff

− Sound/SC3/UGen/Plain.hs

file too large to diff

− Sound/SC3/UGen/Protect.hs

file too large to diff

− Sound/SC3/UGen/Rate.hs

file too large to diff

− Sound/SC3/UGen/Type.hs

file too large to diff

− Sound/SC3/UGen/UGen.hs

file too large to diff

− Sound/SC3/UGen/UId.hs

file too large to diff

+ Sound/Sc3.hs view

file too large to diff

+ Sound/Sc3/Common.hs view

file too large to diff

+ Sound/Sc3/Common/Base.hs view

file too large to diff

+ Sound/Sc3/Common/Base/System.hs view

file too large to diff

+ Sound/Sc3/Common/Buffer.hs view

file too large to diff

+ Sound/Sc3/Common/Buffer/Array.hs view

file too large to diff

+ Sound/Sc3/Common/Buffer/Gen.hs view

file too large to diff

+ Sound/Sc3/Common/Buffer/Vector.hs view

file too large to diff

+ Sound/Sc3/Common/Context.hs view

file too large to diff

+ Sound/Sc3/Common/Enum.hs view

file too large to diff

+ Sound/Sc3/Common/Envelope.hs view

file too large to diff

+ Sound/Sc3/Common/Help.hs view

file too large to diff

+ Sound/Sc3/Common/Help/Sc2.hs view

file too large to diff

+ Sound/Sc3/Common/Math.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Filter.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Filter/Beq.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Interpolate.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Noise.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Operator.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Warp.hs view

file too large to diff

+ Sound/Sc3/Common/Math/Window.hs view

file too large to diff

+ Sound/Sc3/Common/Mce.hs view

file too large to diff

+ Sound/Sc3/Common/Monad.hs view

file too large to diff

+ Sound/Sc3/Common/Monad/Operators.hs view

file too large to diff

+ Sound/Sc3/Common/Random.hs view

file too large to diff

+ Sound/Sc3/Common/Rate.hs view

file too large to diff

+ Sound/Sc3/Common/SoundFile.hs view

file too large to diff

+ Sound/Sc3/Common/Uid.hs view

file too large to diff

+ Sound/Sc3/Common/Unsafe.hs view

file too large to diff

+ Sound/Sc3/Fd.hs view

file too large to diff

+ Sound/Sc3/Server.hs view

file too large to diff

+ Sound/Sc3/Server/Command.hs view

file too large to diff

+ Sound/Sc3/Server/Command/Completion.hs view

file too large to diff

+ Sound/Sc3/Server/Command/Enum.hs view

file too large to diff

+ Sound/Sc3/Server/Command/Generic.hs view

file too large to diff

+ Sound/Sc3/Server/Command/Plain.hs view

file too large to diff

+ Sound/Sc3/Server/Command/Plain/Completion.hs view

file too large to diff

+ Sound/Sc3/Server/Enum.hs view

file too large to diff

+ Sound/Sc3/Server/Fd.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef/Binary.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef/Graph.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef/Io.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef/Read.hs view

file too large to diff

+ Sound/Sc3/Server/Graphdef/Text.hs view

file too large to diff

+ Sound/Sc3/Server/Monad.hs view

file too large to diff

+ Sound/Sc3/Server/Nrt.hs view

file too large to diff

+ Sound/Sc3/Server/Nrt/Edit.hs view

file too large to diff

+ Sound/Sc3/Server/Nrt/Render.hs view

file too large to diff

+ Sound/Sc3/Server/Nrt/Stat.hs view

file too large to diff

+ Sound/Sc3/Server/Nrt/Ugen.hs view

file too large to diff

+ Sound/Sc3/Server/Options.hs view

file too large to diff

+ Sound/Sc3/Server/Param.hs view

file too large to diff

+ Sound/Sc3/Server/Recorder.hs view

file too large to diff

+ Sound/Sc3/Server/Scsynth.hs view

file too large to diff

+ Sound/Sc3/Server/Status.hs view

file too large to diff

+ Sound/Sc3/Server/Synthdef.hs view

file too large to diff

+ Sound/Sc3/Server/Transport/Fd.hs view

file too large to diff

+ Sound/Sc3/Server/Transport/Monad.hs view

file too large to diff

+ Sound/Sc3/Ugen.hs view

file too large to diff

+ Sound/Sc3/Ugen/Analysis.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Composite.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Composite/External.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Db.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Db/External.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/Construct.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/External.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/External/F0.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/External/Sc3_Plugins.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/External/Wavelets.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bindings/Hw/External/Zita.hs view

file too large to diff

+ Sound/Sc3/Ugen/Bracketed.hs view

file too large to diff

+ Sound/Sc3/Ugen/Brackets.hs view

file too large to diff

+ Sound/Sc3/Ugen/Constant.hs view

file too large to diff

+ Sound/Sc3/Ugen/Control.hs view

file too large to diff

+ Sound/Sc3/Ugen/Enum.hs view

file too large to diff

+ Sound/Sc3/Ugen/Envelope.hs view

file too large to diff

+ Sound/Sc3/Ugen/Event.hs view

file too large to diff

+ Sound/Sc3/Ugen/Graph.hs view

file too large to diff

+ Sound/Sc3/Ugen/Graph/Reconstruct.hs view

file too large to diff

+ Sound/Sc3/Ugen/Graph/Transform.hs view

file too large to diff

+ Sound/Sc3/Ugen/Help/Graph.hs view

file too large to diff

+ Sound/Sc3/Ugen/Hs.hs view

file too large to diff

+ Sound/Sc3/Ugen/Label.hs view

file too large to diff

+ Sound/Sc3/Ugen/Math.hs view

file too large to diff

+ Sound/Sc3/Ugen/Math/Composite.hs view

file too large to diff

+ Sound/Sc3/Ugen/Mce.hs view

file too large to diff

+ Sound/Sc3/Ugen/Mrg.hs view

file too large to diff

+ Sound/Sc3/Ugen/Name.hs view

file too large to diff

+ Sound/Sc3/Ugen/Optimise.hs view

file too large to diff

+ Sound/Sc3/Ugen/Plain.hs view

file too large to diff

+ Sound/Sc3/Ugen/Pp.hs view

file too large to diff

+ Sound/Sc3/Ugen/Primitive.hs view

file too large to diff

+ Sound/Sc3/Ugen/Proxy.hs view

file too large to diff

+ Sound/Sc3/Ugen/Types.hs view

file too large to diff

+ Sound/Sc3/Ugen/Ugen.hs view

file too large to diff

+ Sound/Sc3/Ugen/Util.hs view

file too large to diff

emacs/hsc3.el view

file too large to diff

hsc3.cabal view

file too large to diff

+ lib/hsc3-min-imports.hs view

file too large to diff

+ lib/hsc3-std-extensions.hs view

file too large to diff

+ lib/hsc3-std-imports.hs view

file too large to diff