hsc3-graphs 0.8 → 0.9
raw patch · 21 files changed
+485/−163 lines, 21 filesdep ~hoscdep ~hsc3dep ~hsc3-sfsetup-changednew-component:exe:hsc3-crotale-sinenew-component:exe:hsc3-hansm
Dependency ranges changed: hosc, hsc3, hsc3-sf
Files
- README +1/−1
- Setup.hs +3/−0
- Setup.lhs +0/−3
- hsc3-graphs.cabal +110/−102
- src/aleatoric-quartet.lhs +1/−1
- src/analog-bubbles.lhs +1/−1
- src/crotale-sine.lhs +170/−0
- src/cut-outs.lhs +5/−2
- src/demanding-studies.lhs +12/−11
- src/dial-history.lhs +3/−1
- src/diffraction.lhs +9/−4
- src/e-lamell.lhs +1/−1
- src/feedr.lhs +3/−1
- src/fm-kltr.lhs +2/−2
- src/hansm.hs +108/−0
- src/k-ppr.lhs +5/−2
- src/lf-pulses.lhs +3/−1
- src/lin-sosc.lhs +23/−22
- src/non-real-time.hs +16/−4
- src/s-chirp.lhs +6/−3
- src/tipnso.lhs +3/−1
README view
@@ -7,5 +7,5 @@ http://haskell.org/ http://audiosynth.com/ -(c) rohan drape and others, 2006-2010+(c) rohan drape and others, 2006-2011 gpl, http://gnu.org/copyleft/
+ Setup.hs view
@@ -0,0 +1,3 @@+#!/usr/bin/env runhaskell+import Distribution.Simple+main = defaultMain
− Setup.lhs
@@ -1,3 +0,0 @@-#!/usr/bin/env runhaskell-> import Distribution.Simple-> main = defaultMain
hsc3-graphs.cabal view
@@ -1,16 +1,16 @@ Name: hsc3-graphs-Version: 0.8+Version: 0.9 Synopsis: Haskell SuperCollider Graphs Description: hsc3-graphs provides a collection of illustrative unit generator graphs for hsc3. License: GPL Category: Sound-Copyright: (c) Rohan Drape and others, 2006-2010+Copyright: (c) Rohan Drape and others, 2006-2011 Author: Rohan Drape Maintainer: rd@slavepianos.org Stability: Experimental Homepage: http://slavepianos.org/rd/?t=hsc3-graphs-Tested-With: GHC == 6.10.3+Tested-With: GHC == 6.12.1 Build-Type: Simple Cabal-Version: >= 1.6 @@ -18,396 +18,404 @@ Executable hsc3-adso main-is: src/adso.lhs- build-depends: base==4.*, hosc==0.8, hsc3==0.8, random+ build-depends: base==4.*, hosc==0.9, hsc3==0.9, random Executable hsc3-aleatoric-quartet main-is: src/aleatoric-quartet.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-analog-bubbles main-is: src/analog-bubbles.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-babbling-brook main-is: src/babbling-brook.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-birds main-is: src/birds.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-bit-reduction main-is: src/bit-reduction.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-bottle main-is: src/bottle.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-bowed-string main-is: src/bowed-string.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-ccomb main-is: src/ccomb.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-chain-saw main-is: src/chain-saw.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-chrd main-is: src/chrd.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-cricket main-is: src/cricket.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-crotale main-is: src/crotale.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 +Executable hsc3-crotale-sine+ main-is: src/crotale-sine.lhs+ build-depends: base==4.*, hsc3==0.9+ Executable hsc3-cut-outs main-is: src/cut-outs.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-cymbalism main-is: src/cymbalism.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-deep-sea main-is: src/deep-sea.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-default main-is: src/default.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-demanding-studies main-is: src/demanding-studies.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-dial-history main-is: src/dial-history.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-diffraction main-is: src/diffraction.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-discretion main-is: src/discretion.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-drummer main-is: src/drummer.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-eggcrate main-is: src/eggcrate.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-e-lamell main-is: src/e-lamell.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-fbl-fbf main-is: src/fbl-fbf.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-feedr main-is: src/feedr.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-f-lets main-is: src/f-lets.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-fm-iter main-is: src/fm-iter.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-fm-kltr main-is: src/fm-kltr.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-forest-sounds main-is: src/forest-sounds.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-fwalk main-is: src/fwalk.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-half-life main-is: src/half-life.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 +Executable hsc3-hansm+ main-is: src/hansm.hs+ build-depends: base==4.*, hosc==0.9, hsc3==0.9+ Executable hsc3-harmonic-swimming main-is: src/harmonic-swimming.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-harmonic-tumbling main-is: src/harmonic-tumbling.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-h-chatter main-is: src/h-chatter.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-hh-808 main-is: src/hh-808.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-implosion main-is: src/implosion.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-insects main-is: src/insects.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-karplus-strong main-is: src/karplus-strong.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-klink main-is: src/klink.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-k-ppr main-is: src/k-ppr.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-lfo-modulation main-is: src/lfo-modulation.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-lf-pulses main-is: src/lf-pulses.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-lg-timed main-is: src/lg-timed.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-lin-sosc main-is: src/lin-sosc.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-lucier main-is: src/lucier.hs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-modal-space main-is: src/modal-space.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-moto-rev main-is: src/moto-rev.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-mouse-clatter main-is: src/mouse-clatter.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-nharm main-is: src/nharm.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-noise-burst-sweep main-is: src/noise-burst-sweep.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-non-real-time main-is: src/non-real-time.hs- build-depends: base==4.*, hosc==0.8, hsc3==0.8, process+ build-depends: base==4.*, hosc==0.9, hsc3==0.9, process Executable hsc3-one-line main-is: src/one-line.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-oscillator-cluster main-is: src/oscillator-cluster.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-overlap-add main-is: src/overlap-add.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-pattern-buffer main-is: src/pattern-buffer.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-plucked-strings main-is: src/plucked-strings.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-police-state main-is: src/police-state.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-pulsing-bottles main-is: src/pulsing-bottles.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-record-scratcher main-is: src/record-scratcher.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-red-frik main-is: src/red-frik.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-reset main-is: src/reset.hs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-reverberated-sine-percussion main-is: src/reverberated-sine-percussion.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-rm-octaver main-is: src/rm-octaver.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-sample-and-hold-liquidities main-is: src/sample-and-hold-liquidities.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-s-chirp main-is: src/s-chirp.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-scratchy main-is: src/scratchy.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-scratchy-m main-is: src/scratchy-m.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-scritto main-is: src/scritto.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-shepard-tones main-is: src/shepard-tones.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-shifting-pulses main-is: src/shifting-pulses.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-snare-909 main-is: src/snare-909.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-sosc-lp main-is: src/sosc-lp.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-spe main-is: src/spe.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-sprinkler main-is: src/sprinkler.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-sprinkler-m main-is: src/sprinkler-m.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-strummable-guitar main-is: src/strummable-guitar.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-sweepy-noise main-is: src/sweepy-noise.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-synthetic-piano main-is: src/synthetic-piano.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tank main-is: src/tank.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tgb main-is: src/tgb.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tgrn main-is: src/tgrn.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tgr-rpr main-is: src/tgr-rpr.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-theremin main-is: src/theremin.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-three-cpsw main-is: src/three-cpsw.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-thx main-is: src/thx.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tipnso main-is: src/tipnso.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-train main-is: src/train.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-trkl main-is: src/trkl.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tr-out main-is: src/tr-out.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-tsort main-is: src/tsort.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-vlc-distrtn main-is: src/vlc-distrtn.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-waveset main-is: src/waveset.hs- build-depends: array, base==4.*, hosc==0.8, hsc3==0.8, hsc3-sf==0.8, random+ build-depends: array, base==4.*, hosc==0.9, hsc3==0.9, hsc3-sf==0.9, random Executable hsc3-what-was-i-thinking main-is: src/what-was-i-thinking.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-wial main-is: src/wial.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-wind-metals main-is: src/wind-metals.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-xy-interference main-is: src/xy-interference.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Executable hsc3-xy-interference-m main-is: src/xy-interference-m.lhs- build-depends: base==4.*, hsc3==0.8+ build-depends: base==4.*, hsc3==0.9 Source-Repository head Type: darcs- Location: http://slavepianos.org/~rd/sw/hsc3-graphs/+ Location: http://slavepianos.org/rd/sw/hsc3-graphs/
src/aleatoric-quartet.lhs view
@@ -18,7 +18,7 @@ > ; n0 <- lfNoise0 kr r0 > ; let { m = n0 * 7 + base_mn + r1 > ; m' = lag (roundE m 1) 0.2 }-> in return (midiCPS m) } }+> in return (midiCPS m') } } > ; mk_s = do { f <- fmap recip mk_f > ; r <- rand (-1) 1 > ; x <- do { n0 <- pinkNoise ar
src/analog-bubbles.lhs view
@@ -11,4 +11,4 @@ { var o = LFSaw.kr([8, 7.23], 0, 3, 80) ; var f = LFSaw.kr(0.4, 0, 24, o) ; var s = SinOsc.ar(f.midicps, 0, 0.04)-; Out.ar(0, CombN.ar(s, 0.2, 0.2, 4)) }.play+; Out.ar(0, CombN.ar(s, 0.2, 0.2, 4, 0.1)) }.play
+ src/crotale-sine.lhs view
@@ -0,0 +1,170 @@+crotale-sine (rd)++> import Sound.SC3.ID++> main =+> let { crotale = ( [ 35.45676040649414+> , 128.59849548339844+> , 346.9721984863281+> , 483.5544128417969+> , 1049.2449951171875+> , 1564.0279541015625+> , 1756.3399658203125+> , 3391.666015625+> , 3451.802001953125+> , 3497.261962890625+> , 3596.89794921875+> , 3696.739013671875+> , 3835.235107421875+> , 3845.955078125+> , 4254.85107421875+> , 4407.533203125+> , 4415.26416015625+> , 4552.865234375+> , 5538.076171875+> , 5637.73681640625+> , 5690.2978515625+> , 5728.0068359375+> , 5764.27685546875+> , 5824.4189453125+> , 6377.60498046875+> , 6544.35009765625+> , 6807.14404296875+> , 6994.97021484375+> , 7026.84619140625+> , 7144.5859375+> , 7269.61279296875+> , 7393.6708984375+> , 7897.259765625+> , 8040.4580078125+> , 8157.77099609375+> , 8225.01953125+> , 9126.150390625+> , 9488.529296875+> , 9916.408203125+> , 10155.599609375+> , 11715.9599609375+> , 12111.830078125+> , 12339.990234375+> , 12417.669921875+> , 12459.2802734375+> , 12618.330078125+> , 13116.490234375+> , 13201.1298828125+> , 13297.830078125+> , 13533.75 ]+> , [ 0.0012827360769733787+> , 0.0008040848188102245+> , 0.017361238598823547+> , 0.004835359752178192+> , 0.004413491114974022+> , 0.004110544919967651+> , 0.0003338181704748422+> , 0.0036140112206339836+> , 0.006919348146766424+> , 0.0003224937245249748+> , 0.0006031467346474528+> , 0.06686479598283768+> , 0.000605064386036247+> , 0.003602313343435526+> , 0.0002835785271599889+> , 0.015243238769471645+> , 0.020536603406071663+> , 0.016677580773830414+> , 0.0009245267719961703+> , 0.20205098390579224+> , 0.0012542791664600372+> , 0.012705927714705467+> , 0.0002523190632928163+> , 0.0004866079252678901+> , 0.0006429700297303498+> , 0.0007763264584355056+> , 0.2081160992383957+> , 0.0024918108247220516+> , 0.00193469924852252+> , 0.005231771152466536+> , 0.0069242212921381+> , 0.001203975174576044+> , 0.2050020843744278+> , 0.04060448706150055+> , 0.0038344631902873516+> , 0.002189427148550749+> , 0.18056060373783112+> , 0.002192433224990964+> , 0.006516554858535528+> , 0.009982921183109283+> , 0.004745401442050934+> , 0.046154771000146866+> , 0.000510294979903847+> , 0.0018905038014054298+> , 0.0019782145973294973+> , 0.006729386281222105+> , 0.0023426134139299393+> , 0.0024002245627343655+> , 0.03515550494194031+> , 0.0014084168942645192 ]+> , [ 5.203680992126465+> , 1.7034343481063843+> , 40.16516876220703+> , 27.282501220703125+> , 0.8950523138046265+> , 42.84742736816406+> , 2.6603667736053467+> , 15.7678861618042+> , 6.848367214202881+> , 3.2325007915496826+> , 1.7343382835388184+> , 2.0202419757843018+> , 4.7279052734375+> , 9.400103569030762+> , 0.7102512717247009+> , 37.494625091552734+> , 36.24879455566406+> , 29.172658920288086+> , 3.891019344329834+> , 4.757885456085205+> , 3.851426124572754+> , 20.90781021118164+> , 3.732874870300293+> , 2.3834102153778076+> , 10.443285942077637+> , 8.795611381530762+> , 20.98564338684082+> , 18.01180076599121+> , 25.297883987426758+> , 14.819819450378418+> , 42.39189910888672+> , 2.9485135078430176+> , 11.043763160705566+> , 49.55165100097656+> , 29.882694244384766+> , 10.527188301086426+> , 23.5572452545166+> , 26.55561637878418+> , 45.099605560302734+> , 22.550390243530273+> , 36.46126174926758+> , 11.826201438903809+> , 16.818185806274414+> , 14.903121948242188+> , 32.81113815307617+> , 43.1389045715332+> , 12.289558410644531+> , 11.498942375183105+> , 10.465788841247559+> , 24.93169593811035 ] )+> ; (cf, ca, _) = crotale+> ; fn m f a = let { r0 = rand (f+0) 0 (2 * pi)+> ; r1 = rand (f+1) 0.1 0.3+> ; r2 = rand (f+2) 0.025 0.1+> ; r3 = rand (f+3) 0 (2 * pi)+> ; o = sinOsc AR (f * midiRatio m) r0+> ; a' = a * sinOsc KR r1 0 }+> in pan2 o (sinOsc KR r2 r3) a'+> ; oo = let { x = control KR "m" 1 }+> in out 0 (sum (zipWith (fn x) cf ca) * 0.1)+> }+> in withSC3 (\fd -> do { _ <- async fd (d_recv (synthdef "c" oo))+> ; send fd (s_new "c" (-1) AddToTail 1 [("m",-12)])+> ; send fd (s_new "c" (-1) AddToTail 1 [("m",-9)])+> })
src/cut-outs.lhs view
@@ -1,11 +1,14 @@ cut-outs (rd) > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main = > 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 +> ; x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0.005 0.012+> {- ; x = mouseX kr 0.005 0.12 Exponential 0.1 -}+> ; y = linLin (I.lfNoise0 'b' KR 1) (-1) 1 0.01 0.52+> {- ; y = mouseY kr 0.01 0.52 Exponential 0.1 -} > ; n = do { n1 <- lfNoise0 kr 2 > ; n2 <- coinGate (0.05 + n1 + y * 0.4 + t * 0.5) (t * 0.5) > ; n3 <- tExpRand (mce2 500 900) 1600 t
src/demanding-studies.lhs view
@@ -1,18 +1,19 @@ demanding studies (jmcc) -> import Sound.SC3.Monadic+> import Sound.SC3.ID > main =-> do { s1 <- drand dinf (mce [72, 75, 79, 82])-> ; s2 <- drand 1 (mce [82, 84, 86])-> ; s3 <- dseq dinf (mce [72, 75, 79, s2])-> ; let { x = mouseX kr 5 13 Linear 0.2-> ; tr = impulse kr x 0-> ; f = demand tr 0 (mce [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 audition (out 0 (o3 * 0.1)) }+> let { s1 = drand 'a' dinf (mce [72, 75, 79, 82])+> ; s2 = drand 'b' 1 (mce [82, 84, 86])+> ; s3 = dseq 'c' dinf (mce [72, 75, 79, s2])+> ; x = linLin (lfNoise0 'd' KR 1) (-1) 1 5 13 +> {- ; x = mouseX kr 5 13 Linear 0.2 -}+> ; tr = impulse kr x 0+> ; f = demand tr 0 (mce [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 audition (out 0 (o3 * 0.1)) { var s1 = Drand.new([72, 75, 79, 82], inf) ; var s2 = Drand.new([82, 84, 86], 1)
src/dial-history.lhs view
@@ -2,6 +2,7 @@ > import Data.List > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main = > let { mfv = [[697, 770, 852, 941], [1209, 1336, 1477, 1633]]@@ -18,7 +19,8 @@ > ; d <- lfdNoise3 kr 0.5 > ; let { tr = trig (tDuty kr rate 0 DoNothing q 1) 0.09 > ; pat = latch tr tr-> ; x = mouseX kr 0 1 Linear 0.2+> ; x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0 1+> {- ; x = mouseX kr 0 1 Linear 0.2 -} > ; h = hasher (pat * x) > ; which = trunc (range h 0 (constant (length numbers))) 1 > ; both = select which (mce_r numbers)
src/diffraction.lhs view
@@ -2,10 +2,13 @@ > import Control.Monad > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main =-> let { p = let { x = mouseX kr 0.001 0.02 Exponential 0.1-> ; y = mouseY kr 120 400 Exponential 0.1 }+> let { p = let { x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0.001 0.02 +> {- ; x = mouseX kr 0.001 0.02 Exponential 0.1 -}+> ; y = linLin (I.lfNoise0 'b' KR 1) (-1) 1 120 400+> {- ; y = mouseY kr 120 400 Exponential 0.1 -} } > in do { f <- fmap (* mce2 32 64) (lfNoise0 kr 4) > ; w <- fmap (* x) (lfNoise0 kr 32) > ; z <- fmap (* 0.1) (lfNoise0 kr 2)@@ -15,8 +18,10 @@ > ; q = do { n <- lfNoise0 kr 128 > ; s <- p > ; return (combN s 0.2 (n * 0.1 + 0.1) 3) }-> ; r = let { x = mouseX kr 0.75 1.25 Exponential 0.1-> ; y = mouseY kr 0.25 1 Exponential 0.1+> ; r = let { x = linLin (I.lfNoise0 'c' KR 1) (-1) 1 0.75 1.25+> {- ; x = mouseX kr 0.75 1.25 Exponential 0.1 -}+> ; y = linLin (I.lfNoise0 'c' KR 1) (-1) 1 0.25 1+> {- ; y = mouseY kr 0.25 1 Exponential 0.1 -} > ; f _ = do { fr <- fmap (* x) (rand 50 59) > ; am <- fmap (* y) (rand 0.04 0.16) > ; return (sinOsc ar fr 0 * am) } }
src/e-lamell.lhs view
@@ -50,5 +50,5 @@ > ; return (mk_s_new f n d a l) } > ; send fd (Bundle now [p, q]) > ; pauseThread 0.1 } }-> in withSC3 (\fd -> do { sendSynth fd "blip" =<< e_lamell+> in withSC3 (\fd -> do { _ <- sendSynth fd "blip" =<< e_lamell > ; replicateM_ 64 (pattern fd) })
src/feedr.lhs view
@@ -2,6 +2,7 @@ warning: input/output feedback loop > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main = > let { delayWr b i = recordBuf b 0 1 0 1 Loop 0 DoNothing i@@ -11,7 +12,8 @@ > ; g <- sequence (replicate n (rand 0.4 1.0)) > ; f <- sequence (replicate n (rand 0.9 0.95)) > ; let { d = zipWith (\p q -> tap 2 10 p * q) t g-> ; x = mouseX kr 0.02 1.0 Exponential 0.1+> {- ; x = mouseX kr 0.02 1.0 Exponential 0.1 -}+> ; x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0.02 1 > ; s = clip2 (leakDC (hpf (sum d) 20) 0.995) 1 > ; i = soundIn (mce2 0 1) > ; r = i + sum (map (* x) (zipWith (*) d f)) }
src/fm-kltr.lhs view
@@ -12,7 +12,7 @@ > ; r3 <- rand 0.975 1.025 > ; r4 <- rand 0.75 1.25 > ; let { o = control ir "out" 0-> ; t = control kr "trig" 0 {- unused -}+> {- ; t = control kr "trig" 0 {- unused -} -} > ; a = control kr "amp" 0.1 > ; d = control kr "dur" 0.1 > ; f = control kr "freq" 400.0@@ -45,5 +45,5 @@ > ; fm fd 53 ff a d i > ; pauseThread t } } > in withSC3 (\fd -> do { u <- gr-> ; async fd (d_recv (synthdef "fm" u))+> ; _ <- async fd (d_recv (synthdef "fm" u)) > ; sequence (replicate 32 (nd fd)) })
+ src/hansm.hs view
@@ -0,0 +1,108 @@+{-+http://www.fredrikolofsson.com/f0blog/?q=node/457+http://obiwannabe.co.uk/tutorials/html/tutorial_birds.html+-}++import Sound.OpenSoundControl+import Sound.SC3++type T3 a = (a,a,a)+type Bird_Call_Param a = (T3 a,T3 a,T3 a,T3 a,T3 a)++bird_call :: Bird_Call_Param UGen -> IO ()+bird_call ((freq,atk,dcy)+ ,(fmod1,atkf1,dcyf1)+ ,(fmod2,atkf2,dcyf2)+ ,(amod1,atka1,dcya1)+ ,(amod2,atka2,dcya2)) =+ let mk_env a aT dT g lS md =+ let x = EnvNum (-4)+ c = env [0,a,0] [aT,dT] [x,x] (-1) (-1)+ in envGen AR g lS 0 1 md c+ e = mk_env 0.5 atk dcy 1 1 RemoveSynth+ freq1 = mk_env fmod1 atkf1 dcyf1 1 3000 DoNothing+ freq2 = mk_env fmod2 atkf2 dcyf2 1 3000 DoNothing+ amp1 = mk_env amod1 atka1 dcya1 1 1 DoNothing+ amp2 = mk_env amod2 atka2 dcya2 1 1 DoNothing+ fmod = sinOsc AR freq1 0 * amp1 + 1+ amod = 1 - sinOsc AR freq2 0 * amp2+ z = sinOsc AR ((freq * 7000 + 300) * fmod) 0 * amod+ in audition (out 0 (pan2 z 0 e))++triple_tailed_tree_troubler :: (Fractional a) => Bird_Call_Param a+triple_tailed_tree_troubler =+ ((0.387755, 0.0204082, 0.204082)+ ,(0.367347, 0.571429, 0.734694)+ ,(0.918367, 1, 0.77551)+ ,(0.571429, 0.367347, 0.22449)+ ,(0.0204082, 0.183673, 0.44898))++speckled_throated_spew :: (Fractional a) => Bird_Call_Param a+speckled_throated_spew =+ ((0.183673, 0.591837, 0.387755)+ ,(0.0104082, 0.530612, 0.346939)+ ,(0.244898, 0.55102, 0.122449)+ ,(0.387755, 1, 0.612245)+ ,(0.346939, 0.816327, 0.653061))++lesser_spotted_grinchwarbler :: (Fractional a) => Bird_Call_Param a+lesser_spotted_grinchwarbler =+ ((0.55102, 0.591837, 0.387755)+ ,(0.0716327, 0.0204082, 0.346939)+ ,(0.0204082, 0.55102, 0.122449)+ ,(0.632653, 1, 0.612245)+ ,(0.346939, 0.816327, 0.653061))++long_toed_mudhopper :: (Fractional a) => Bird_Call_Param a+long_toed_mudhopper =+ ((0.163265, 0.22449, 0.183673)+ ,(0.00306122, 0.122449, 1)+ ,(0.0612245, 1, 0.77551)+ ,(0.979592, 0.204082, 0.734694)+ ,(1, 0.142857, 0.612245))++yellow_yiffled_yaffle :: (Fractional a) => Bird_Call_Param a+yellow_yiffled_yaffle =+ ((0.0204082, 0.367347, 0.183673)+ ,(0.0612245, 0, 1)+ ,(0.285714, 0.22449, 0.489796)+ ,(0.367347, 0.387755, 0.734694)+ ,(0.204082, 0.428571, 0.142857))++pointy_beaked_beetlefiend :: (Fractional a) => Bird_Call_Param a+pointy_beaked_beetlefiend =+ ((0.428571, 0.204082, 0.489796)+ ,(0.0204082, 0.795918, 0.591837)+ ,(0.285714, 0.22449, 0.489796)+ ,(0.204082, 0.836735, 0.734694)+ ,(0.77551, 0.428571, 0.142857))++african_boojuboolubala :: (Fractional a) => Bird_Call_Param a+african_boojuboolubala =+ ((0.306122, 0.959184, 0.0408163)+ ,(1, 0, 0.591837)+ ,(0.285714, 0.22449, 0.489796)+ ,(0.204082, 0.836735, 0.734694)+ ,(0.77551, 0.428571, 0.142857))++common_muckoink :: (Fractional a) => Bird_Call_Param a+common_muckoink =+ ((0.0204082, 0.8, 0.0816327)+ ,(0.0204082, 0.001, 0.99)+ ,(0.0204082, 0.01, 1)+ ,(1, 0.142857, 0.734694)+ ,(1, 0.0612245, 0.530612))++main :: IO ()+main = do+ let xs = [triple_tailed_tree_troubler+ ,speckled_throated_spew+ ,lesser_spotted_grinchwarbler+ ,long_toed_mudhopper+ ,yellow_yiffled_yaffle+ ,pointy_beaked_beetlefiend+ ,african_boojuboolubala+ ,common_muckoink]+ fn x = bird_call x >> pauseThread 1.25+ mapM_ fn xs+
src/k-ppr.lhs view
@@ -2,11 +2,14 @@ > import Control.Monad > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main = > let { wrp i l r = linLin i (-1) 1 l r-> ; x = mouseX kr 0.05 0.35 Linear 0.1-> ; y = mouseY kr 0.15 0.75 Linear 0.1+> ; x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0.05 0.35+> {- ; x = mouseX kr 0.05 0.35 Linear 0.1 -}+> ; y = linLin (I.lfNoise0 'b' KR 1) (-1) 1 0.15 0.75+> {- ; y = mouseY kr 0.15 0.75 Linear 0.1 -} > ; ti = lfTri kr x 0 > ; tf = wrp ti 100 200 > ; t = impulse ar tf 0
src/lf-pulses.lhs view
@@ -1,11 +1,13 @@ lf pulses (rd) > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main = > do { n0 <- lfNoise0 AR (mce2 20 40) > ; n1 <- lfNoise0 AR (mce2 5 10)-> ; let { x = mouseX KR 0.012 0.19 Exponential 0.1+> ; let { x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 0.012 0.19+> {- ; x = mouseX KR 0.012 0.19 Exponential 0.1 -} > ; f = formlet (blip AR 10 12) (n0 * 43 + 700) 0.005 x > ; o = sinOsc AR 40 0 * n1 } > in audition (out 0 (clip2 (leakDC (f + o) 0.995) 0.75)) }
src/lin-sosc.lhs view
@@ -3,12 +3,13 @@ > import Control.Concurrent > import Control.Monad > import Sound.OpenSoundControl-> import Sound.SC3+> import Sound.SC3.ID > import System.Random > main =-> let { n = 1024-> ; x = mouseX KR 0.001 1.0 Linear 0.1+> let { n' = 1024+> ; x = linLin (lfNoise0 'a' KR 1) (-1) 1 0.001 1+> {- ; x = mouseX KR 0.001 1.0 Linear 0.1 -} > ; tblM b = playBuf 1 b (x * bufRateScale KR b) 0 0 Loop DoNothing > ; tblC b c = playBuf 1 b (in' 1 KR c * bufRateScale KR b) 0 0 Loop DoNothing > ; o = sinOsc AR (tblM 0) 0 * tblM 1 @@ -24,22 +25,22 @@ > ; twoPi = pi * 2.0 > ; srng l r e = let m = (l - r ) / 2 > in m + l + (e * m) -> ; freq = [ lineTo n 440.0 444.0-> , lineTo n 40.0 16000.0-> , xlineTo n 40.0 16000.0-> , map (srng 20 21000 . sin) (lineTo n 0.0 twoPi)-> , map (srng 20 12000 . cos) (lineTo n 0.0 twoPi)-> , map (srng 20 22000 . tan) (lineTo n 0.0 twoPi)-> , map (srng 20 90 . tan) (lineTo n 0.0 twoPi) ]-> ; ampl = [ lineTo n 0.1 1.0-> , lineTo n 1.0 0.1-> , lineTo n 0.5 0.01-> , lineTo n 0.01 0.5-> , xlineTo n 1.0 0.1-> , xlineTo n 0.1 1.0-> , map sin (lineTo n 0.0 twoPi)-> , map cos (lineTo n 0.0 twoPi)-> , map (* 0.001) (map tan (lineTo n 0 twoPi)) ]+> ; freq = [ lineTo n' 440.0 444.0+> , lineTo n' 40.0 16000.0+> , xlineTo n' 40.0 16000.0+> , map (srng 20 21000 . sin) (lineTo n' 0.0 twoPi)+> , map (srng 20 12000 . cos) (lineTo n' 0.0 twoPi)+> , map (srng 20 22000 . tan) (lineTo n' 0.0 twoPi)+> , map (srng 20 90 . tan) (lineTo n' 0.0 twoPi) ]+> ; ampl = [ lineTo n' 0.1 1.0+> , lineTo n' 1.0 0.1+> , lineTo n' 0.5 0.01+> , lineTo n' 0.01 0.5+> , xlineTo n' 1.0 0.1+> , xlineTo n' 0.1 1.0+> , map sin (lineTo n' 0.0 twoPi)+> , map cos (lineTo n' 0.0 twoPi)+> , map (* 0.001) (map tan (lineTo n' 0 twoPi)) ] > ; sloc = [ 0.005, 0.0075, 0.01, 0.025, 0.05, 0.075 > , 0.1, 0.25, 0.5, 0.75 > , 0.8, 0.85, 1.0, 1.005 ]@@ -52,7 +53,7 @@ > ; send fd (b_setn 1 [(0, a)]) > ; send fd (c_set [(0, s)]) > ; pauseThread p } }-> in do { withSC3 (\fd -> do { async fd (b_alloc 0 (floor n) 1)-> ; async fd (b_alloc 1 (floor n) 1)-> ; play fd (out 0 co) })+> in do { _ <- withSC3 (\fd -> do { _ <- async fd (b_alloc 0 (floor n') 1)+> ; _ <- async fd (b_alloc 1 (floor n') 1)+> ; play fd (out 0 co) }) > ; forkIO (withSC3 (\fd -> replicateM_ 128 (update fd))) }
src/non-real-time.hs view
@@ -16,11 +16,23 @@ mk_instr = d_recv (synthdef "test" graph) mk_group = g_new [(1, AddToTail, 0)] mk_node t f = at t [s_new "test" (-1) AddToTail 1 [("freq", f)]]- notes = take 128 (zipWith mk_node [0.0, 0.05 ..] [330, 350 ..])+ notes = take 128 (zipWith mk_node [1.0, 1.05 ..] [330, 350 ..]) in at 0.0 [mk_instr, mk_group] : notes -main :: IO ()-main = do- writeNRT "/tmp/nrt.score" score+perform :: [OSC] -> IO ()+perform s = do+ let f i fd x = do let (Bundle (NTPr t) x') = x+ pauseThreadUntil (i + t)+ send fd (Bundle immediately x')+ withSC3 (\fd -> utcr >>= \i -> mapM_ (f i fd) s)++render :: [OSC] -> IO ()+render s = do+ writeNRT "/tmp/nrt.score" s system "scsynth -N /tmp/nrt.score _ /tmp/nrt.wav 44100 WAVE float" return ()++main :: IO ()+main = do+ render score+ perform score
src/s-chirp.lhs view
@@ -1,10 +1,13 @@ s-chirp (rd) > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main =-> let { x = mouseX kr 15 0 Linear 0.1-> ; y = mouseY kr 15 27 Linear 0.1+> let { x = linLin (I.lfNoise0 'a' KR 1) (-1) 1 15 0+> {- ; x = mouseX kr 15 0 Linear 0.1 -}+> ; y = linLin (I.lfNoise0 'b' KR 1) (-1) 1 15 27+> {- ; y = mouseY kr 15 27 Linear 0.1 -} > ; scl = [0, 2, 3.2, 5, 7, 9, 10] } > in do { t <- dust kr 9 > ; b <- tChoose t (mce [36, 48, 60, 72])@@ -18,6 +21,6 @@ > in do { r0 <- tRand 0.0075 0.125 u > ; r1 <- tRand 0.05 0.15 u > ; return (m * 0.5 + allpassC m 0.15 r0 r1) }-> ; withSC3 (\fd -> do { async fd (b_alloc 0 7 1)+> ; withSC3 (\fd -> do { _ <- async fd (b_alloc 0 7 1) > ; send fd (b_setn1 0 0 scl) > ; play fd (out 0 o) }) }
src/tipnso.lhs view
@@ -1,9 +1,11 @@ tipnso (rd) > import Sound.SC3.Monadic+> import qualified Sound.SC3.ID as I > main =-> let { x = mouseX kr 1 32 Linear 0.1+> let { x = linLin (I.lfNoise0 'a' KR 3) (-1) 1 1 32+> {- ; x = mouseX kr 1 32 Linear 0.1 -} > ; t = impulse ar x 0 } > in do { n1 <- tiRand 16 72 t > ; n2 <- tiRand 0 1 t