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 +21/−0
- Help/Graph/adc-down-sample.hs +13/−0
- Help/Graph/adc-kabelscahden.hs +25/−0
- Help/Graph/adc-shepard-tones.hs +37/−0
- Help/Graph/bb-microhelix.hs +71/−0
- Help/Graph/cr-lucier.hs +78/−0
- Help/Graph/dm-shift-register.hs +55/−0
- Help/Graph/ds-sos-bell.hs +45/−0
- Help/Graph/es-tw-570012853274615808.hs +19/−0
- Help/Graph/f0-1-4Q6-p.hs +14/−0
- Help/Graph/f0-2012-04-19.hs +7/−0
- Help/Graph/f0-pkt-00.hs +9/−0
- Help/Graph/f0-pkt-07.hs +10/−0
- Help/Graph/f0-pkt-26.hs +16/−0
- Help/Graph/f0-pkt-28.hs +18/−0
- Help/Graph/f0-red-frik.hs +25/−0
- Help/Graph/f0-tw-0454598285861617665.hs +7/−0
- Help/Graph/f0-tw-0456384156159574016.hs +5/−0
- Help/Graph/f0-tw-0839296011982024704.hs +7/−0
- Help/Graph/f0-tw-1105496695637454848.hs +12/−0
- Help/Graph/f0-tw-1125557217086857216.hs +17/−0
- Help/Graph/f0-tw-1136928201886904320.hs +11/−0
- Help/Graph/f0-tw-1138498427241861122.hs +14/−0
- Help/Graph/f0-tw-1210118661022867458.hs +21/−0
- Help/Graph/f0-tw-1254441448327479299.hs +57/−0
- Help/Graph/f0-tw-1338987643057688579.hs +9/−0
- Help/Graph/f0-tw-1343283697840226307.hs +20/−0
- Help/Graph/f0-tw-1367808902457397250.hs +14/−0
- Help/Graph/f0-tw-15eN.hs +5/−0
- Help/Graph/f0-tw0011.hs +6/−0
- Help/Graph/f0-tw0014.hs +12/−0
- Help/Graph/f0-tw0020.hs +12/−0
- Help/Graph/f0-tw0028.hs +22/−0
- Help/Graph/f0-tw0030.hs +6/−0
- Help/Graph/f0-tw0033.hs +17/−0
- Help/Graph/f0-tw0041.hs +5/−0
- Help/Graph/f0-tw0045.hs +6/−0
- Help/Graph/f0-tw0049.hs +7/−0
- Help/Graph/f0-tw0051.hs +8/−0
- Help/Graph/f0-tw0077.hs +7/−0
- Help/Graph/f0-tw0084.hs +6/−0
- Help/Graph/f0-tw0120.hs +8/−0
- Help/Graph/f0-tw0121.hs +7/−0
- Help/Graph/f0-tw0125.hs +9/−0
- Help/Graph/f0-tw0134.hs +12/−0
- Help/Graph/f0-tw0220.hs +13/−0
- Help/Graph/f0-tw0224.hs +13/−0
- Help/Graph/f0-tw0225.hs +5/−0
- Help/Graph/jar-1-4Qx.hs +6/−0
- Help/Graph/jar-rk_20120422.hs +19/−0
- Help/Graph/jh-4157.hs +27/−0
- Help/Graph/jl-1-9.hs +13/−0
- Help/Graph/jl-bitwise.hs +7/−0
- Help/Graph/jl-dark-sea-horns.hs +15/−0
- Help/Graph/jl-jl-1-Z.hs +8/−0
- Help/Graph/jl-pwm-crossfade.hs +15/−0
- Help/Graph/jl-rain-thunder.hs +23/−0
- Help/Graph/jmcc-aleatoric-quartet.hs +38/−0
- Help/Graph/jmcc-alien-froggies.hs +20/−0
- Help/Graph/jmcc-alien-meadow.hs +9/−0
- Help/Graph/jmcc-analog-bubbles-mouse.hs +17/−0
- Help/Graph/jmcc-analog-bubbles.hs +5/−0
- Help/Graph/jmcc-analogue-daze.hs +33/−0
- Help/Graph/jmcc-babbling-brook.hs +18/−0
- Help/Graph/jmcc-bach-prelude.hs +16/−0
- Help/Graph/jmcc-berlin-1977.hs +47/−0
- Help/Graph/jmcc-birdies.hs +17/−0
- Help/Graph/jmcc-birds.hs +30/−0
- Help/Graph/jmcc-blips.hs +21/−0
- Help/Graph/jmcc-bouncing-objects.hs +25/−0
- Help/Graph/jmcc-bowed-string.hs +57/−0
- Help/Graph/jmcc-clustered-sines.hs +19/−0
- Help/Graph/jmcc-coolant.hs +13/−0
- Help/Graph/jmcc-cymbalism-accelerando.hs +25/−0
- Help/Graph/jmcc-cymbalism.hs +52/−0
- Help/Graph/jmcc-data-space.hs +26/−0
- Help/Graph/jmcc-deep-trip.hs +21/−0
- Help/Graph/jmcc-demanding-studies.hs +23/−0
- Help/Graph/jmcc-filter-input.hs +5/−0
- Help/Graph/jmcc-harmonic-swimming.hs +21/−0
- Help/Graph/jmcc-harmonic-tumbling.hs +19/−0
- Help/Graph/jmcc-hell-is-busy.hs +16/−0
- Help/Graph/jmcc-impulse-sequencer.hs +25/−0
- Help/Graph/jmcc-landon-rose.hs +27/−0
- Help/Graph/jmcc-lfo-modulation.hs +5/−0
- Help/Graph/jmcc-lots-o-sines.hs +15/−0
- Help/Graph/jmcc-metal-plate.hs +35/−0
- Help/Graph/jmcc-modal-space.hs +77/−0
- Help/Graph/jmcc-moto-rev.hs +4/−0
- Help/Graph/jmcc-narrow-band-filtered-crackle-noise.hs +27/−0
- Help/Graph/jmcc-noise-burst-sweep.hs +15/−0
- Help/Graph/jmcc-phase-modulation.hs +16/−0
- Help/Graph/jmcc-plucked-strings.hs +31/−0
- Help/Graph/jmcc-police-state.hs +23/−0
- Help/Graph/jmcc-pond-life.hs +27/−0
- Help/Graph/jmcc-pulsing-bottles.hs +15/−0
- Help/Graph/jmcc-rails.hs +21/−0
- Help/Graph/jmcc-random-panning-sines.hs +13/−0
- Help/Graph/jmcc-random-pulsations.hs +22/−0
- Help/Graph/jmcc-random-sine-waves.hs +14/−0
- Help/Graph/jmcc-resonant-dust.hs +13/−0
- Help/Graph/jmcc-resonators-harmonic-series.hs +57/−0
- Help/Graph/jmcc-reverberated-sine-percussion.hs +23/−0
- Help/Graph/jmcc-ring-modulated-klank.hs +17/−0
- Help/Graph/jmcc-sample-and-hold-liquidities.hs +26/−0
- Help/Graph/jmcc-saucer-base.hs +14/−0
- Help/Graph/jmcc-sawed-cymbals.hs +14/−0
- Help/Graph/jmcc-scratchy.hs +7/−0
- Help/Graph/jmcc-sidereal-time.hs +21/−0
- Help/Graph/jmcc-snare-909.hs +37/−0
- Help/Graph/jmcc-spe.hs +28/−0
- Help/Graph/jmcc-sprinkler-mouse.hs +11/−0
- Help/Graph/jmcc-sprinkler.hs +12/−0
- Help/Graph/jmcc-strummable-guitar.hs +45/−0
- Help/Graph/jmcc-strummable-silk.hs +53/−0
- Help/Graph/jmcc-sweepy-noise.hs +15/−0
- Help/Graph/jmcc-swept-resonant-noise.hs +55/−0
- Help/Graph/jmcc-synthetic-piano.hs +45/−0
- Help/Graph/jmcc-tank.hs +91/−0
- Help/Graph/jmcc-theremin.hs +16/−0
- Help/Graph/jmcc-tremulate.hs +33/−0
- Help/Graph/jmcc-uplink.hs +18/−0
- Help/Graph/jmcc-what-was-i-thinking.hs +25/−0
- Help/Graph/jmcc-why-supercollider.hs +12/−0
- Help/Graph/jmcc-wind-metals.hs +67/−0
- Help/Graph/jmcc-zizle.hs +39/−0
- Help/Graph/jp-record-scratcher.hs +14/−0
- Help/Graph/ljp-one-line.hs +6/−0
- Help/Graph/lkp-chaos-engine.hs +5/−0
- Help/Graph/mn-k2ws.hs +21/−0
- Help/Graph/mp-rm-octaver.hs +7/−0
- Help/Graph/my-mouse.hs +6/−0
- Help/Graph/np-pebble-beach.hs +47/−0
- Help/Graph/nv-ml-2014-06-03.hs +7/−0
- Help/Graph/nv-tw-01.hs +15/−0
- Help/Graph/nv-tw-2013-01-11.hs +21/−0
- Help/Graph/nv-tw-2013-12-04.hs +10/−0
- Help/Graph/nv-tw-2014-02-21.hs +16/−0
- Help/Graph/nv-tw-40.hs +18/−0
- Help/Graph/nv-tw-41.hs +15/−0
- Help/Graph/nv-tw-43.hs +8/−0
- Help/Graph/nv-tw-52.hs +24/−0
- Help/Graph/or-gong.hs +60/−0
- Help/Graph/pc-thx.hs +29/−0
- Help/Graph/pj-forest-sounds-m.hs +14/−0
- Help/Graph/pmi.hs +12/−0
- Help/Graph/rb-hh-808.hs +21/−0
- Help/Graph/rd-20060909.hs +38/−0
- Help/Graph/rd-20060910.hs +20/−0
- Help/Graph/rd-20060911.hs +21/−0
- Help/Graph/rd-20060914.hs +30/−0
- Help/Graph/rd-20060918.hs +45/−0
- Help/Graph/rd-20060921.hs +37/−0
- Help/Graph/rd-20060925.hs +31/−0
- Help/Graph/rd-20060928.hs +35/−0
- Help/Graph/rd-20061007.hs +23/−0
- Help/Graph/rd-20061008.hs +31/−0
- Help/Graph/rd-20061015.hs +33/−0
- Help/Graph/rd-20061017.hs +328/−0
- Help/Graph/rd-20061022.hs +27/−0
- Help/Graph/rd-20061028.hs +25/−0
- Help/Graph/rd-20061030.hs +33/−0
- Help/Graph/rd-20070423.hs +39/−0
- Help/Graph/rd-lg-timed.hs +29/−0
- Help/Graph/rd-tgrn.hs +24/−0
- Help/Graph/rd-trmlo.hs +73/−0
- Help/Graph/sc-bottle-m.hs +33/−0
- Help/Graph/sp-insects-m.hs +19/−0
- Help/Graph/tb-1-4Tw.hs +6/−0
- Help/Graph/tm-drummer.hs +21/−0
- Help/Graph/tm-tw-463992770596577280.hs +13/−0
- Help/Graph/tw-tw-01.hs +6/−0
- Help/Graph/tw-tw-02.hs +14/−0
- Help/Graph/unk-laser-bubble.hs +24/−0
- Help/Graph/unk-m21360.hs +41/−0
- Help/Graph/unk-no-input-fft.hs +21/−0
- Help/Graph/unk-sin-gliss.hs +7/−0
- Help/Graph/unk-train.hs +38/−0
- Help/Notes/mul-add.help.hs +23/−0
- Help/Notes/sample-accuracy.help.hs +54/−0
- Help/Notes/signal-effect-group.help.hs +7/−0
- Help/Nrt/nrt.02.hs +16/−0
- Help/Server/b_alloc.help.hs +23/−0
- Help/Server/b_alloc.help.lhs +0/−11
- Help/Server/b_allocRead.help.hs +62/−0
- Help/Server/b_allocRead.help.lhs +0/−44
- Help/Server/b_allocReadChannel.help.hs +34/−0
- Help/Server/b_allocReadChannel.help.lhs +0/−1
- Help/Server/b_close.help.hs +1/−0
- Help/Server/b_close.help.lhs +0/−1
- Help/Server/b_fill.help.hs +1/−0
- Help/Server/b_fill.help.lhs +0/−1
- Help/Server/b_free.help.hs +11/−0
- Help/Server/b_free.help.lhs +0/−9
- Help/Server/b_gen.help.hs +32/−0
- Help/Server/b_gen.help.lhs +0/−1
- Help/Server/b_get.help.hs +1/−0
- Help/Server/b_get.help.lhs +0/−1
- Help/Server/b_getn.help.hs +45/−0
- Help/Server/b_getn.help.lhs +0/−32
- Help/Server/b_info.help.hs +3/−0
- Help/Server/b_query.help.hs +48/−0
- Help/Server/b_query.help.lhs +0/−30
- Help/Server/b_read.help.hs +2/−0
- Help/Server/b_read.help.lhs +0/−1
- Help/Server/b_readChannel.help.hs +2/−0
- Help/Server/b_readChannel.help.lhs +0/−1
- Help/Server/b_set.help.hs +1/−0
- Help/Server/b_set.help.lhs +0/−1
- Help/Server/b_setn.help.hs +1/−0
- Help/Server/b_setn.help.lhs +0/−1
- Help/Server/b_write.help.hs +1/−0
- Help/Server/b_write.help.lhs +0/−1
- Help/Server/b_zero.help.hs +1/−0
- Help/Server/b_zero.help.lhs +0/−1
- Help/Server/c_fill.help.hs +1/−0
- Help/Server/c_fill.help.lhs +0/−1
- Help/Server/c_get.help.hs +14/−0
- Help/Server/c_get.help.lhs +0/−10
- Help/Server/c_getn.help.hs +19/−0
- Help/Server/c_getn.help.lhs +0/−1
- Help/Server/c_set.help.hs +1/−0
- Help/Server/c_set.help.lhs +0/−1
- Help/Server/c_setn.help.hs +1/−0
- Help/Server/c_setn.help.lhs +0/−1
- Help/Server/clearSched.help.hs +1/−0
- Help/Server/clearSched.help.lhs +0/−1
- Help/Server/d_free.help.hs +1/−0
- Help/Server/d_free.help.lhs +0/−1
- Help/Server/d_load.help.hs +1/−0
- Help/Server/d_load.help.lhs +0/−1
- Help/Server/d_loadDir.help.hs +1/−0
- Help/Server/d_loadDir.help.lhs +0/−1
- Help/Server/d_recv.help.hs +1/−0
- Help/Server/d_recv.help.lhs +0/−1
- Help/Server/dumpOSC.help.hs +15/−0
- Help/Server/dumpOSC.help.lhs +0/−8
- Help/Server/g_deepFree.help.hs +1/−0
- Help/Server/g_deepFree.help.lhs +0/−1
- Help/Server/g_freeAll.help.hs +8/−0
- Help/Server/g_freeAll.help.lhs +0/−1
- Help/Server/g_head.help.hs +1/−0
- Help/Server/g_head.help.lhs +0/−1
- Help/Server/g_new.help.hs +12/−0
- Help/Server/g_new.help.lhs +0/−10
- Help/Server/g_queryTree.help.hs +43/−0
- Help/Server/g_queryTree.help.lhs +0/−28
- Help/Server/g_tail.help.hs +1/−0
- Help/Server/g_tail.help.lhs +0/−1
- Help/Server/n_after.help.hs +1/−0
- Help/Server/n_after.help.lhs +0/−1
- Help/Server/n_before.help.hs +1/−0
- Help/Server/n_before.help.lhs +0/−1
- Help/Server/n_fill.help.hs +1/−0
- Help/Server/n_fill.help.lhs +0/−1
- Help/Server/n_free.help.hs +1/−0
- Help/Server/n_free.help.lhs +0/−1
- Help/Server/n_map.help.hs +1/−0
- Help/Server/n_map.help.lhs +0/−1
- Help/Server/n_mapn.help.hs +31/−0
- Help/Server/n_mapn.help.lhs +0/−1
- Help/Server/n_query.help.hs +21/−0
- Help/Server/n_query.help.lhs +0/−16
- Help/Server/n_run.help.hs +1/−0
- Help/Server/n_run.help.lhs +0/−1
- Help/Server/n_set.help.hs +2/−0
- Help/Server/n_set.help.lhs +0/−1
- Help/Server/n_setn.help.hs +5/−0
- Help/Server/n_setn.help.lhs +0/−1
- Help/Server/n_trace.help.hs +13/−0
- Help/Server/n_trace.help.lhs +0/−1
- Help/Server/notify.help.hs +17/−0
- Help/Server/notify.help.lhs +0/−10
- Help/Server/quit.help.hs +1/−0
- Help/Server/quit.help.lhs +0/−1
- Help/Server/s_get.help.hs +1/−0
- Help/Server/s_get.help.lhs +0/−1
- Help/Server/s_getn.help.hs +1/−0
- Help/Server/s_getn.help.lhs +0/−1
- Help/Server/s_new.help.hs +2/−0
- Help/Server/s_new.help.lhs +0/−1
- Help/Server/s_noid.help.hs +1/−0
- Help/Server/s_noid.help.lhs +0/−1
- Help/Server/status.help.hs +5/−0
- Help/Server/status.help.lhs +0/−1
- Help/Server/sync.help.hs +1/−0
- Help/Server/sync.help.lhs +0/−1
- Help/Server/tr.help.hs +1/−0
- Help/Server/tr.help.lhs +0/−1
- Help/Server/u_cmd.help.hs +1/−0
- Help/Server/u_cmd.help.lhs +0/−1
- Help/UGen/Analysis/amplitude.help.lhs +0/−16
- Help/UGen/Analysis/compander.help.lhs +0/−33
- Help/UGen/Analysis/pitch.help.lhs +0/−27
- Help/UGen/Analysis/runningSum.help.lhs +0/−25
- Help/UGen/Analysis/slope.help.lhs +0/−12
- Help/UGen/Analysis/zeroCrossing.help.lhs +0/−7
- Help/UGen/Buffer/bufAllpassC.help.lhs +0/−13
- Help/UGen/Buffer/bufAllpassL.help.lhs +0/−1
- Help/UGen/Buffer/bufAllpassN.help.lhs +0/−1
- Help/UGen/Buffer/bufChannels.help.lhs +0/−2
- Help/UGen/Buffer/bufCombC.help.lhs +0/−30
- Help/UGen/Buffer/bufCombL.help.lhs +0/−1
- Help/UGen/Buffer/bufCombN.help.lhs +0/−1
- Help/UGen/Buffer/bufDelayC.help.lhs +0/−21
- Help/UGen/Buffer/bufDelayL.help.lhs +0/−1
- Help/UGen/Buffer/bufDelayN.help.lhs +0/−1
- Help/UGen/Buffer/bufDur.help.lhs +0/−15
- Help/UGen/Buffer/bufFrames.help.lhs +0/−17
- Help/UGen/Buffer/bufRateScale.help.lhs +0/−13
- Help/UGen/Buffer/bufRd.help.lhs +0/−38
- Help/UGen/Buffer/bufSampleRate.help.lhs +0/−12
- Help/UGen/Buffer/detectIndex.help.lhs +0/−16
- Help/UGen/Buffer/index.help.lhs +0/−14
- Help/UGen/Buffer/indexInBetween.help.lhs +0/−18
- Help/UGen/Buffer/osc.help.lhs +0/−45
- Help/UGen/Buffer/playBuf.help.lhs +0/−85
- Help/UGen/Buffer/recordBuf.help.lhs +0/−25
- Help/UGen/Buffer/vOsc.help.lhs +0/−31
- Help/UGen/Buffer/vOsc3.help.lhs +0/−24
- Help/UGen/Chaos/crackle.help.lhs +0/−10
- Help/UGen/Chaos/cuspL.help.lhs +0/−19
- Help/UGen/Chaos/cuspN.help.lhs +0/−1
- Help/UGen/Chaos/fbSineC.help.lhs +0/−29
- Help/UGen/Chaos/fbSineL.help.lhs +0/−1
- Help/UGen/Chaos/fbSineN.help.lhs +0/−1
- Help/UGen/Chaos/gbmanL.help.lhs +0/−1
- Help/UGen/Chaos/gbmanN.help.lhs +0/−20
- Help/UGen/Chaos/henonC.help.lhs +0/−1
- Help/UGen/Chaos/henonL.help.lhs +0/−1
- Help/UGen/Chaos/henonN.help.lhs +0/−25
- Help/UGen/Chaos/latoocarfianC.help.lhs +0/−18
- Help/UGen/Chaos/linCongC.help.lhs +0/−16
- Help/UGen/Chaos/linCongL.help.lhs +0/−1
- Help/UGen/Chaos/linCongN.help.lhs +0/−1
- Help/UGen/Chaos/logistic.help.lhs +0/−15
- Help/UGen/Chaos/lorenzL.help.lhs +0/−22
- Help/UGen/Chaos/quadC.help.lhs +0/−1
- Help/UGen/Chaos/quadL.help.lhs +0/−1
- Help/UGen/Chaos/quadN.help.lhs +0/−13
- Help/UGen/Chaos/rossler.help.lhs +0/−0
- Help/UGen/Control/mrg2.help.lhs +0/−24
- Help/UGen/Control/trigControl.help.lhs +0/−38
- Help/UGen/Demand/dbrown.help.lhs +0/−10
- Help/UGen/Demand/dbufrd.help.lhs +0/−40
- Help/UGen/Demand/dbufwr.help.lhs +0/−23
- Help/UGen/Demand/demand.help.lhs +0/−32
- Help/UGen/Demand/demandEnvGen.help.lhs +0/−91
- Help/UGen/Demand/dgeom.help.lhs +0/−10
- Help/UGen/Demand/dibrown.help.lhs +0/−4
- Help/UGen/Demand/diwhite.help.lhs +0/−4
- Help/UGen/Demand/drand.help.lhs +0/−10
- Help/UGen/Demand/dseq.help.lhs +0/−36
- Help/UGen/Demand/dser.help.lhs +0/−10
- Help/UGen/Demand/dseries.help.lhs +0/−10
- Help/UGen/Demand/dshuf.help.lhs +0/−18
- Help/UGen/Demand/dstutter.help.lhs +0/−24
- Help/UGen/Demand/dswitch.help.lhs +0/−27
- Help/UGen/Demand/dswitch1.help.lhs +0/−12
- Help/UGen/Demand/duty.help.lhs +0/−17
- Help/UGen/Demand/dwhite.help.lhs +0/−10
- Help/UGen/Demand/dwrand.help.lhs +0/−10
- Help/UGen/Demand/dxrand.help.lhs +0/−33
- Help/UGen/Demand/tDuty.help.lhs +0/−44
- Help/UGen/DiskIO/diskIn.help.lhs +0/−15
- Help/UGen/DiskIO/diskOut.help.lhs +0/−41
- Help/UGen/DiskIO/vDiskIn.help.lhs +0/−16
- Help/UGen/Envelope/detectSilence.help.lhs +0/−8
- Help/UGen/Envelope/done.help.lhs +0/−10
- Help/UGen/Envelope/envADSR.help.lhs +0/−60
- Help/UGen/Envelope/envASR.help.lhs +0/−17
- Help/UGen/Envelope/envCoord.help.lhs +0/−48
- Help/UGen/Envelope/envGate.help.lhs +0/−30
- Help/UGen/Envelope/envGen.help.lhs +0/−33
- Help/UGen/Envelope/envLinen.help.lhs +0/−26
- Help/UGen/Envelope/envPerc.help.lhs +0/−19
- Help/UGen/Envelope/envSine.help.lhs +0/−12
- Help/UGen/Envelope/envStep.help.lhs +0/−22
- Help/UGen/Envelope/envTrapezoid.help.lhs +0/−13
- Help/UGen/Envelope/envTriangle.help.lhs +0/−11
- Help/UGen/Envelope/free.help.lhs +0/−13
- Help/UGen/Envelope/freeSelf.help.lhs +0/−9
- Help/UGen/Envelope/freeSelfWhenDone.help.lhs +0/−14
- Help/UGen/Envelope/iEnvGen.help.lhs +0/−25
- Help/UGen/Envelope/line.help.lhs +0/−16
- Help/UGen/Envelope/linen.help.lhs +0/−12
- Help/UGen/Envelope/pause.help.lhs +0/−18
- Help/UGen/Envelope/pauseSelf.help.lhs +0/−11
- Help/UGen/Envelope/pauseSelfWhenDone.help.lhs +0/−19
- Help/UGen/Envelope/xLine.help.lhs +0/−10
- Help/UGen/External/atari2600.help.lhs +0/−68
- Help/UGen/External/atsNoiSynth.help.lhs +0/−27
- Help/UGen/External/atsSynth.help.lhs +0/−30
- Help/UGen/External/ay.help.lhs +0/−33
- Help/UGen/External/concat.help.lhs +0/−20
- Help/UGen/External/coyote.help.lhs +0/−9
- Help/UGen/External/dPW3Tri.help.lhs +0/−42
- Help/UGen/External/dWGPlucked2.help.lhs +0/−37
- Help/UGen/External/dfm1.help.lhs +0/−18
- Help/UGen/External/disintegrator.help.lhs +0/−10
- Help/UGen/External/envDetect.help.lhs too large to diff
- Help/UGen/External/envFollow.help.lhs too large to diff
- Help/UGen/External/fm7.help.lhs too large to diff
- Help/UGen/External/fmGrain.help.lhs too large to diff
- Help/UGen/External/fmGrainB.help.lhs too large to diff
- Help/UGen/External/lfBrownNoise.help.lhs too large to diff
- Help/UGen/External/lpcSynth.help.lhs too large to diff
- Help/UGen/External/lpcVals.help.lhs too large to diff
- Help/UGen/External/lti.help.lhs too large to diff
- Help/UGen/External/membraneCircle.help.lhs too large to diff
- Help/UGen/External/membraneHexagon.help.lhs too large to diff
- Help/UGen/External/metro.help.lhs too large to diff
- Help/UGen/External/mzPokey.help.lhs too large to diff
- Help/UGen/External/playBufCF.help.lhs too large to diff
- Help/UGen/External/pv_BufRd.help.lhs too large to diff
- Help/UGen/External/pv_Invert.help.lhs too large to diff
- Help/UGen/External/qitch.help.lhs too large to diff
- Help/UGen/External/sms.help.lhs too large to diff
- Help/UGen/External/squiz.help.lhs too large to diff
- Help/UGen/External/stkBowed.help.lhs too large to diff
- Help/UGen/External/stkFlute.help.lhs too large to diff
- Help/UGen/External/stkMandolin.help.lhs too large to diff
- Help/UGen/External/stkModalBar.help.lhs too large to diff
- Help/UGen/External/stkShakers.help.lhs too large to diff
- Help/UGen/External/streson.help.lhs too large to diff
- Help/UGen/External/switchDelay.help.lhs too large to diff
- Help/UGen/External/tBetaRand.help.lhs too large to diff
- Help/UGen/External/tBrownRand.help.lhs too large to diff
- Help/UGen/External/tGaussRand.help.lhs too large to diff
- Help/UGen/External/tartini.help.lhs too large to diff
- Help/UGen/External/tpv.help.lhs too large to diff
- Help/UGen/External/vosim.help.lhs too large to diff
- Help/UGen/External/waveTerrain.help.lhs too large to diff
- Help/UGen/External/zitaRev1.help.lhs too large to diff
- Help/UGen/FFT/convolution.help.lhs too large to diff
- Help/UGen/FFT/fft.help.lhs too large to diff
- Help/UGen/FFT/fftTrigger.help.lhs too large to diff
- Help/UGen/FFT/ifft.help.lhs too large to diff
- Help/UGen/FFT/packFFT.help.lhs too large to diff
- Help/UGen/FFT/partConv.help.lhs too large to diff
- Help/UGen/FFT/pv_BinDelay.help.lhs too large to diff
- Help/UGen/FFT/pv_BinScramble.help.lhs too large to diff
- Help/UGen/FFT/pv_BinShift.help.lhs too large to diff
- Help/UGen/FFT/pv_BinWipe.help.lhs too large to diff
- Help/UGen/FFT/pv_BrickWall.help.lhs too large to diff
- Help/UGen/FFT/pv_ConformalMap.help.lhs too large to diff
- Help/UGen/FFT/pv_Diffuser.help.lhs too large to diff
- Help/UGen/FFT/pv_HainsworthFoote.help.lhs too large to diff
- Help/UGen/FFT/pv_LocalMax.help.lhs too large to diff
- Help/UGen/FFT/pv_MagAbove.help.lhs too large to diff
- Help/UGen/FFT/pv_MagBelow.help.lhs too large to diff
- Help/UGen/FFT/pv_MagClip.help.lhs too large to diff
- Help/UGen/FFT/pv_MagFreeze.help.lhs too large to diff
- Help/UGen/FFT/pv_RandComb.help.lhs too large to diff
- Help/UGen/FFT/pv_RandWipe.help.lhs too large to diff
- Help/UGen/FFT/pv_RectComb.help.lhs too large to diff
- Help/UGen/FFT/pvcollect.help.lhs too large to diff
- Help/UGen/Filter/allpassC.help.lhs too large to diff
- Help/UGen/Filter/allpassL.help.lhs too large to diff
- Help/UGen/Filter/allpassN.help.lhs too large to diff
- Help/UGen/Filter/bBandPass.help.lhs too large to diff
- Help/UGen/Filter/bBandStop.help.lhs too large to diff
- Help/UGen/Filter/bHiPass.help.lhs too large to diff
- Help/UGen/Filter/bHiShelf.help.lhs too large to diff
- Help/UGen/Filter/bLowPass.help.lhs too large to diff
- Help/UGen/Filter/bLowShelf.help.lhs too large to diff
- Help/UGen/Filter/bPeakEQ.help.lhs too large to diff
- Help/UGen/Filter/bpf.help.lhs too large to diff
- Help/UGen/Filter/bpz2.help.lhs too large to diff
- Help/UGen/Filter/brf.help.lhs too large to diff
- Help/UGen/Filter/changed.help.lhs too large to diff
- Help/UGen/Filter/clip.help.lhs too large to diff
- Help/UGen/Filter/combC.help.lhs too large to diff
- Help/UGen/Filter/combL.help.lhs too large to diff
- Help/UGen/Filter/combN.help.lhs too large to diff
- Help/UGen/Filter/decay.help.lhs too large to diff
- Help/UGen/Filter/decay2.help.lhs too large to diff
- Help/UGen/Filter/degreeToKey.help.lhs too large to diff
- Help/UGen/Filter/delay1.help.lhs too large to diff
- Help/UGen/Filter/delay2.help.lhs too large to diff
- Help/UGen/Filter/delayC.help.lhs too large to diff
- Help/UGen/Filter/delayL.help.lhs too large to diff
- Help/UGen/Filter/delayN.help.lhs too large to diff
- Help/UGen/Filter/dynKlank.help.lhs too large to diff
- Help/UGen/Filter/formlet.help.lhs too large to diff
- Help/UGen/Filter/fos.help.lhs too large to diff
- Help/UGen/Filter/freeVerb.help.lhs too large to diff
- Help/UGen/Filter/freqShift.help.lhs too large to diff
- Help/UGen/Filter/gVerb.help.lhs too large to diff
- Help/UGen/Filter/hasher.help.lhs too large to diff
- Help/UGen/Filter/hpf.help.lhs too large to diff
- Help/UGen/Filter/hpz1.help.lhs too large to diff
- Help/UGen/Filter/hpz2.help.lhs too large to diff
- Help/UGen/Filter/klank.help.lhs too large to diff
- Help/UGen/Filter/lag.help.lhs too large to diff
- Help/UGen/Filter/lag2.help.lhs too large to diff
- Help/UGen/Filter/lag3.help.lhs too large to diff
- Help/UGen/Filter/lagUD.help.lhs too large to diff
- Help/UGen/Filter/latch.help.lhs too large to diff
- Help/UGen/Filter/leakDC.help.lhs too large to diff
- Help/UGen/Filter/limiter.help.lhs too large to diff
- Help/UGen/Filter/linExp.help.lhs too large to diff
- Help/UGen/Filter/linLin.help.lhs too large to diff
- Help/UGen/Filter/linXFade2.help.lhs too large to diff
- Help/UGen/Filter/lpf.help.lhs too large to diff
- Help/UGen/Filter/lpz1.help.lhs too large to diff
- Help/UGen/Filter/lpz2.help.lhs too large to diff
- Help/UGen/Filter/mantissaMask.help.lhs too large to diff
- Help/UGen/Filter/median.help.lhs too large to diff
- Help/UGen/Filter/midEQ.help.lhs too large to diff
- Help/UGen/Filter/moogFF.help.lhs too large to diff
- Help/UGen/Filter/normalizer.help.lhs too large to diff
- Help/UGen/Filter/onePole.help.lhs too large to diff
- Help/UGen/Filter/oneZero.help.lhs too large to diff
- Help/UGen/Filter/pitchShift.help.lhs too large to diff
- Help/UGen/Filter/pluck.help.lhs too large to diff
- Help/UGen/Filter/ramp.help.lhs too large to diff
- Help/UGen/Filter/resonz.help.lhs too large to diff
- Help/UGen/Filter/rhpf.help.lhs too large to diff
- Help/UGen/Filter/ringz.help.lhs too large to diff
- Help/UGen/Filter/rlpf.help.lhs too large to diff
- Help/UGen/Filter/select.help.lhs too large to diff
- Help/UGen/Filter/selectX.help.lhs too large to diff
- Help/UGen/Filter/shaper.help.lhs too large to diff
- Help/UGen/Filter/slew.help.lhs too large to diff
- Help/UGen/Filter/sos.help.lhs too large to diff
- Help/UGen/Filter/twoPole.help.lhs too large to diff
- Help/UGen/Filter/twoZero.help.lhs too large to diff
- Help/UGen/Filter/varLag.help.lhs too large to diff
- Help/UGen/Filter/wrapIndex.help.lhs too large to diff
- Help/UGen/Filter/xFade2.help.lhs too large to diff
- Help/UGen/Granular/grainBuf.help.lhs too large to diff
- Help/UGen/Granular/grainFM.help.lhs too large to diff
- Help/UGen/Granular/grainIn.help.lhs too large to diff
- Help/UGen/Granular/grainSin.help.lhs too large to diff
- Help/UGen/Granular/warp1.help.lhs too large to diff
- Help/UGen/IO/in.help.lhs too large to diff
- Help/UGen/IO/inFeedback.help.lhs too large to diff
- Help/UGen/IO/inTrig.help.lhs too large to diff
- Help/UGen/IO/keyState.help.lhs too large to diff
- Help/UGen/IO/lagIn.help.lhs too large to diff
- Help/UGen/IO/localBuf.help.lhs too large to diff
- Help/UGen/IO/localOut.help.lhs too large to diff
- Help/UGen/IO/mouseButton.help.lhs too large to diff
- Help/UGen/IO/mouseX.help.lhs too large to diff
- Help/UGen/IO/mouseY.help.lhs too large to diff
- Help/UGen/IO/offsetOut.help.lhs too large to diff
- Help/UGen/IO/out.help.lhs too large to diff
- Help/UGen/IO/replaceOut.help.lhs too large to diff
- Help/UGen/IO/soundIn.help.lhs too large to diff
- Help/UGen/IO/xOut.help.lhs too large to diff
- Help/UGen/Information/controlDur.help.lhs too large to diff
- Help/UGen/Information/controlRate.help.lhs too large to diff
- Help/UGen/Information/numAudioBuses.help.lhs too large to diff
- Help/UGen/Information/numBuffers.help.lhs too large to diff
- Help/UGen/Information/numControlBuses.help.lhs too large to diff
- Help/UGen/Information/numInputBuses.help.lhs too large to diff
- Help/UGen/Information/numOutputBuses.help.lhs too large to diff
- Help/UGen/Information/numRunningSynths.help.lhs too large to diff
- Help/UGen/Information/poll.help.lhs too large to diff
- Help/UGen/Information/radiansPerSample.help.lhs too large to diff
- Help/UGen/Information/sampleDur.help.lhs too large to diff
- Help/UGen/Information/sampleRate.help.lhs too large to diff
- Help/UGen/Information/subsampleOffset.help.lhs too large to diff
- Help/UGen/MachineListening/beatTrack.help.lhs too large to diff
- Help/UGen/MachineListening/loudness.help.lhs too large to diff
- Help/UGen/MachineListening/onsets.help.lhs too large to diff
- Help/UGen/MachineListening/specCentroid.help.lhs too large to diff
- Help/UGen/MachineListening/specFlatness.help.lhs too large to diff
- Help/UGen/Math/abs.help.lhs too large to diff
- Help/UGen/Math/absDif.help.lhs too large to diff
- Help/UGen/Math/add.help.lhs too large to diff
- Help/UGen/Math/amClip.help.lhs too large to diff
- Help/UGen/Math/atan2.help.lhs too large to diff
- Help/UGen/Math/clip2.help.lhs too large to diff
- Help/UGen/Math/dbAmp.help.lhs too large to diff
- Help/UGen/Math/difSqr.help.lhs too large to diff
- Help/UGen/Math/distort.help.lhs too large to diff
- Help/UGen/Math/eq.help.lhs too large to diff
- Help/UGen/Math/excess.help.lhs too large to diff
- Help/UGen/Math/fdiv.help.lhs too large to diff
- Help/UGen/Math/fold2.help.lhs too large to diff
- Help/UGen/Math/gt.help.lhs too large to diff
- Help/UGen/Math/hypot.help.lhs too large to diff
- Help/UGen/Math/max.help.lhs too large to diff
- Help/UGen/Math/mod.help.lhs too large to diff
- Help/UGen/Math/mul.help.lhs too large to diff
- Help/UGen/Math/pow.help.lhs too large to diff
- Help/UGen/Math/ring1.help.lhs too large to diff
- Help/UGen/Math/roundUp.help.lhs too large to diff
- Help/UGen/Math/scaleNeg.help.lhs too large to diff
- Help/UGen/Math/softClip.help.lhs too large to diff
- Help/UGen/Math/sumSqr.help.lhs too large to diff
- Help/UGen/Math/thresh.help.lhs too large to diff
- Help/UGen/Noise/brownNoise.help.lhs too large to diff
- Help/UGen/Noise/choose.help.lhs too large to diff
- Help/UGen/Noise/clipNoise.help.lhs too large to diff
- Help/UGen/Noise/coinGate.help.lhs too large to diff
- Help/UGen/Noise/dust.help.lhs too large to diff
- Help/UGen/Noise/dust2.help.lhs too large to diff
- Help/UGen/Noise/expRand.help.lhs too large to diff
- Help/UGen/Noise/grayNoise.help.lhs too large to diff
- Help/UGen/Noise/iRand.help.lhs too large to diff
- Help/UGen/Noise/lfClipNoise.help.lhs too large to diff
- Help/UGen/Noise/lfNoise0.help.lhs too large to diff
- Help/UGen/Noise/lfNoise1.help.lhs too large to diff
- Help/UGen/Noise/lfNoise2.help.lhs too large to diff
- Help/UGen/Noise/lfdClipNoise.help.lhs too large to diff
- Help/UGen/Noise/lfdNoise0.help.lhs too large to diff
- Help/UGen/Noise/lfdNoise1.help.lhs too large to diff
- Help/UGen/Noise/lfdNoise3.help.lhs too large to diff
- Help/UGen/Noise/linRand.help.lhs too large to diff
- Help/UGen/Noise/nRand.help.lhs too large to diff
- Help/UGen/Noise/pinkNoise.help.lhs too large to diff
- Help/UGen/Noise/rand.help.lhs too large to diff
- Help/UGen/Noise/randID.help.lhs too large to diff
- Help/UGen/Noise/randSeed.help.lhs too large to diff
- Help/UGen/Noise/tExpRand.help.lhs too large to diff
- Help/UGen/Noise/tIRand.help.lhs too large to diff
- Help/UGen/Noise/tRand.help.lhs too large to diff
- Help/UGen/Noise/whiteNoise.help.lhs too large to diff
- Help/UGen/Oscillator/blip.help.lhs too large to diff
- Help/UGen/Oscillator/cOsc.help.lhs too large to diff
- Help/UGen/Oscillator/dc.help.lhs too large to diff
- Help/UGen/Oscillator/dynKlang.help.lhs too large to diff
- Help/UGen/Oscillator/fSinOsc.help.lhs too large to diff
- Help/UGen/Oscillator/formant.help.lhs too large to diff
- Help/UGen/Oscillator/gendy1.help.lhs too large to diff
- Help/UGen/Oscillator/impulse.help.lhs too large to diff
- Help/UGen/Oscillator/klang.help.lhs too large to diff
- Help/UGen/Oscillator/lfCub.help.lhs too large to diff
- Help/UGen/Oscillator/lfGauss.help.lhs too large to diff
- Help/UGen/Oscillator/lfPar.help.lhs too large to diff
- Help/UGen/Oscillator/lfPulse.help.lhs too large to diff
- Help/UGen/Oscillator/lfSaw.help.lhs too large to diff
- Help/UGen/Oscillator/lfTri.help.lhs too large to diff
- Help/UGen/Oscillator/osc1.help.lhs too large to diff
- Help/UGen/Oscillator/oscN.help.lhs too large to diff
- Help/UGen/Oscillator/pmOsc.help.lhs too large to diff
- Help/UGen/Oscillator/pulse.help.lhs too large to diff
- Help/UGen/Oscillator/saw.help.lhs too large to diff
- Help/UGen/Oscillator/silent.help.lhs too large to diff
- Help/UGen/Oscillator/sinOsc.help.lhs too large to diff
- Help/UGen/Oscillator/sinOscFB.help.lhs too large to diff
- Help/UGen/Oscillator/syncSaw.help.lhs too large to diff
- Help/UGen/Oscillator/tChoose.help.lhs too large to diff
- Help/UGen/Oscillator/tGrains.help.lhs too large to diff
- Help/UGen/Oscillator/tWindex.help.lhs too large to diff
- Help/UGen/Oscillator/twChoose.help.lhs too large to diff
- Help/UGen/Oscillator/varSaw.help.lhs too large to diff
- Help/UGen/Oscillator/vibrato.help.lhs too large to diff
- Help/UGen/Panner/balance2.help.lhs too large to diff
- Help/UGen/Panner/decodeB2.help.lhs too large to diff
- Help/UGen/Panner/linPan2.help.lhs too large to diff
- Help/UGen/Panner/pan2.help.lhs too large to diff
- Help/UGen/Panner/panAz.help.lhs too large to diff
- Help/UGen/Panner/rotate2.help.lhs too large to diff
- Help/UGen/Panner/splay.help.lhs too large to diff
- Help/UGen/Trigger/gate.help.lhs too large to diff
- Help/UGen/Trigger/inRange.help.lhs too large to diff
- Help/UGen/Trigger/lastValue.help.lhs too large to diff
- Help/UGen/Trigger/mostChange.help.lhs too large to diff
- Help/UGen/Trigger/peak.help.lhs too large to diff
- Help/UGen/Trigger/phasor.help.lhs too large to diff
- Help/UGen/Trigger/pulseCount.help.lhs too large to diff
- Help/UGen/Trigger/pulseDivider.help.lhs too large to diff
- Help/UGen/Trigger/runningMax.help.lhs too large to diff
- Help/UGen/Trigger/runningMin.help.lhs too large to diff
- Help/UGen/Trigger/sendReply.help.lhs too large to diff
- Help/UGen/Trigger/sendTrig.help.lhs too large to diff
- Help/UGen/Trigger/setResetFF.help.lhs too large to diff
- Help/UGen/Trigger/stepper.help.lhs too large to diff
- Help/UGen/Trigger/sweep.help.lhs too large to diff
- Help/UGen/Trigger/tDelay.help.lhs too large to diff
- Help/UGen/Trigger/timer.help.lhs too large to diff
- Help/UGen/Trigger/toggleFF.help.lhs too large to diff
- Help/UGen/Trigger/trig.help.lhs too large to diff
- Help/UGen/Trigger/trig1.help.lhs too large to diff
- Help/UGen/Wavelets/dwt.help.lhs too large to diff
- Help/UGen/Wavelets/idwt.help.lhs too large to diff
- Help/UGen/Wavelets/wt_FilterScale.help.lhs too large to diff
- Help/UGen/Wavelets/wt_TimeWipe.help.lhs too large to diff
- Help/Ugen/abs.help.hs too large to diff
- Help/Ugen/absDif.help.hs too large to diff
- Help/Ugen/acos.help.hs too large to diff
- Help/Ugen/add.help.hs too large to diff
- Help/Ugen/allpassC.help.hs too large to diff
- Help/Ugen/allpassL.help.hs too large to diff
- Help/Ugen/allpassN.help.hs too large to diff
- Help/Ugen/amClip.help.hs too large to diff
- Help/Ugen/ampComp.help.hs too large to diff
- Help/Ugen/ampDb.help.hs too large to diff
- Help/Ugen/amplitude.help.hs too large to diff
- Help/Ugen/analogBassDrum.help.hs too large to diff
- Help/Ugen/analogPhaser.help.hs too large to diff
- Help/Ugen/analogPhaserMod.help.hs too large to diff
- Help/Ugen/analogSnareDrum.help.hs too large to diff
- Help/Ugen/analogTape.help.hs too large to diff
- Help/Ugen/analogVintageDistortion.help.hs too large to diff
- Help/Ugen/arrayMax.help.hs too large to diff
- Help/Ugen/arrayMin.help.hs too large to diff
- Help/Ugen/asin.help.hs too large to diff
- Help/Ugen/atan.help.hs too large to diff
- Help/Ugen/atan2.help.hs too large to diff
- Help/Ugen/atari2600.help.hs too large to diff
- Help/Ugen/audioMSG.help.hs too large to diff
- Help/Ugen/ay.help.hs too large to diff
- Help/Ugen/bAllPass.help.hs too large to diff
- Help/Ugen/bBandPass.help.hs too large to diff
- Help/Ugen/bBandStop.help.hs too large to diff
- Help/Ugen/bGen.help.hs too large to diff
- Help/Ugen/bHiPass.help.hs too large to diff
- Help/Ugen/bHiPass4.help.hs too large to diff
- Help/Ugen/bHiShelf.help.hs too large to diff
- Help/Ugen/bLowPass.help.hs too large to diff
- Help/Ugen/bLowPass4.help.hs too large to diff
- Help/Ugen/bLowShelf.help.hs too large to diff
- Help/Ugen/bMoog.help.hs too large to diff
- Help/Ugen/bPeakEQ.help.hs too large to diff
- Help/Ugen/balance2.help.hs too large to diff
- Help/Ugen/beatTrack.help.hs too large to diff
- Help/Ugen/bezier.help.hs too large to diff
- Help/Ugen/blOsc.help.hs too large to diff
- Help/Ugen/blip.help.hs too large to diff
- Help/Ugen/blitB3.help.hs too large to diff
- Help/Ugen/blitB3Saw.help.hs too large to diff
- Help/Ugen/blitB3Square.help.hs too large to diff
- Help/Ugen/blitB3Tri.help.hs too large to diff
- Help/Ugen/blockSize.help.hs too large to diff
- Help/Ugen/bpf.help.hs too large to diff
- Help/Ugen/bpz2.help.hs too large to diff
- Help/Ugen/brf.help.hs too large to diff
- Help/Ugen/brownNoise.help.hs too large to diff
- Help/Ugen/brz2.help.hs too large to diff
- Help/Ugen/bufAllpassC.help.hs too large to diff
- Help/Ugen/bufAllpassL.help.hs too large to diff
- Help/Ugen/bufAllpassN.help.hs too large to diff
- Help/Ugen/bufChannels.help.hs too large to diff
- Help/Ugen/bufCombC.help.hs too large to diff
- Help/Ugen/bufCombL.help.hs too large to diff
- Help/Ugen/bufCombN.help.hs too large to diff
- Help/Ugen/bufDelayC.help.hs too large to diff
- Help/Ugen/bufDelayL.help.hs too large to diff
- Help/Ugen/bufDelayN.help.hs too large to diff
- Help/Ugen/bufDur.help.hs too large to diff
- Help/Ugen/bufFrames.help.hs too large to diff
- Help/Ugen/bufGrain.help.hs too large to diff
- Help/Ugen/bufRateScale.help.hs too large to diff
- Help/Ugen/bufRd.help.hs too large to diff
- Help/Ugen/bufSampleRate.help.hs too large to diff
- Help/Ugen/bufWr.help.hs too large to diff
- Help/Ugen/cOsc.help.hs too large to diff
- Help/Ugen/changed.help.hs too large to diff
- Help/Ugen/checkBadValues.help.hs too large to diff
- Help/Ugen/chen.help.hs too large to diff
- Help/Ugen/choose.help.hs too large to diff
- Help/Ugen/chromagram.help.hs too large to diff
- Help/Ugen/circleRamp.help.hs too large to diff
- Help/Ugen/clearBuf.help.hs too large to diff
- Help/Ugen/clip.help.hs too large to diff
- Help/Ugen/clip2.help.hs too large to diff
- Help/Ugen/clipNoise.help.hs too large to diff
- Help/Ugen/coinGate.help.hs too large to diff
- Help/Ugen/combC.help.hs too large to diff
- Help/Ugen/combL.help.hs too large to diff
- Help/Ugen/combN.help.hs too large to diff
- Help/Ugen/compander.help.hs too large to diff
- Help/Ugen/complexRes.help.hs too large to diff
- Help/Ugen/concat.help.hs too large to diff
- Help/Ugen/control.hs too large to diff
- Help/Ugen/controlDur.help.hs too large to diff
- Help/Ugen/controlRate.help.hs too large to diff
- Help/Ugen/convolution.help.hs too large to diff
- Help/Ugen/cos.help.hs too large to diff
- Help/Ugen/cosh.help.hs too large to diff
- Help/Ugen/coyote.help.hs too large to diff
- Help/Ugen/crackle.help.hs too large to diff
- Help/Ugen/crest.help.hs too large to diff
- Help/Ugen/crossoverDistortion.help.hs too large to diff
- Help/Ugen/ctl8Voicer.help.hs too large to diff
- Help/Ugen/cuspL.help.hs too large to diff
- Help/Ugen/cuspN.help.hs too large to diff
- Help/Ugen/dNoiseRing.help.hs too large to diff
- Help/Ugen/dbAmp.help.hs too large to diff
- Help/Ugen/dbrown.help.hs too large to diff
- Help/Ugen/dbufrd.help.hs too large to diff
- Help/Ugen/dbufwr.help.hs too large to diff
- Help/Ugen/dc.help.hs too large to diff
- Help/Ugen/dconst.help.hs too large to diff
- Help/Ugen/decay.help.hs too large to diff
- Help/Ugen/decay2.help.hs too large to diff
- Help/Ugen/degreeToKey.help.hs too large to diff
- Help/Ugen/delTapWr.help.hs too large to diff
- Help/Ugen/delay1.help.hs too large to diff
- Help/Ugen/delay2.help.hs too large to diff
- Help/Ugen/delayC.help.hs too large to diff
- Help/Ugen/delayL.help.hs too large to diff
- Help/Ugen/delayN.help.hs too large to diff
- Help/Ugen/demand.help.hs too large to diff
- Help/Ugen/demandEnvGen.help.hs too large to diff
- Help/Ugen/detectIndex.help.hs too large to diff
- Help/Ugen/detectSilence.help.hs too large to diff
- Help/Ugen/dfm1.help.hs too large to diff
- Help/Ugen/dgeom.help.hs too large to diff
- Help/Ugen/dibrown.help.hs too large to diff
- Help/Ugen/difSqr.help.hs too large to diff
- Help/Ugen/diodeRingMod.help.hs too large to diff
- Help/Ugen/disintegrator.help.hs too large to diff
- Help/Ugen/diskIn.help.hs too large to diff
- Help/Ugen/distort.help.hs too large to diff
- Help/Ugen/div.help.hs too large to diff
- Help/Ugen/diwhite.help.hs too large to diff
- Help/Ugen/dneuromodule.help.hs too large to diff
- Help/Ugen/done.help.hs too large to diff
- Help/Ugen/doubleWell3.help.hs too large to diff
- Help/Ugen/dpw3Tri.help.hs too large to diff
- Help/Ugen/dpw4Saw.help.hs too large to diff
- Help/Ugen/drand.help.hs too large to diff
- Help/Ugen/dseq.help.hs too large to diff
- Help/Ugen/dser.help.hs too large to diff
- Help/Ugen/dseries.help.hs too large to diff
- Help/Ugen/dshuf.help.hs too large to diff
- Help/Ugen/dstutter.help.hs too large to diff
- Help/Ugen/dswitch.help.hs too large to diff
- Help/Ugen/dswitch1.help.hs too large to diff
- Help/Ugen/dust.help.hs too large to diff
- Help/Ugen/dust2.help.hs too large to diff
- Help/Ugen/dustRange.help.hs too large to diff
- Help/Ugen/duty.help.hs too large to diff
- Help/Ugen/dwgBowed.help.hs too large to diff
- Help/Ugen/dwgBowedTor.help.hs too large to diff
- Help/Ugen/dwgClarinet3.help.hs too large to diff
- Help/Ugen/dwgFlute.help.hs too large to diff
- Help/Ugen/dwgPlucked2.help.hs too large to diff
- Help/Ugen/dwgPluckedStiff.help.hs too large to diff
- Help/Ugen/dwgSoundBoard.help.hs too large to diff
- Help/Ugen/dwhite.help.hs too large to diff
- Help/Ugen/dwrand.help.hs too large to diff
- Help/Ugen/dx7.help.hs too large to diff
- Help/Ugen/dxrand.help.hs too large to diff
- Help/Ugen/dynKlang.help.hs too large to diff
- Help/Ugen/dynKlank.help.hs too large to diff
- Help/Ugen/envAdsr.help.hs too large to diff
- Help/Ugen/envAsr.help.hs too large to diff
- Help/Ugen/envCoord.help.hs too large to diff
- Help/Ugen/envDetect.help.hs too large to diff
- Help/Ugen/envFollow.help.hs too large to diff
- Help/Ugen/envGate.help.hs too large to diff
- Help/Ugen/envGen.help.hs too large to diff
- Help/Ugen/envLinen.help.hs too large to diff
- Help/Ugen/envPairs.help.hs too large to diff
- Help/Ugen/envPerc.help.hs too large to diff
- Help/Ugen/envSine.help.hs too large to diff
- Help/Ugen/envStep.help.hs too large to diff
- Help/Ugen/envTrapezoid.help.hs too large to diff
- Help/Ugen/envTriangle.help.hs too large to diff
- Help/Ugen/envXyc.help.hs too large to diff
- Help/Ugen/equal_to.help.hs too large to diff
- Help/Ugen/eventVoicer.help.hs too large to diff
- Help/Ugen/excess.help.hs too large to diff
- Help/Ugen/expRand.help.hs too large to diff
- Help/Ugen/expRandN.help.hs too large to diff
- Help/Ugen/fSinOsc.help.hs too large to diff
- Help/Ugen/fbSineC.help.hs too large to diff
- Help/Ugen/fbSineL.help.hs too large to diff
- Help/Ugen/fbSineN.help.hs too large to diff
- Help/Ugen/fdiv.help.hs too large to diff
- Help/Ugen/fft.help.hs too large to diff
- Help/Ugen/fftTrigger.help.hs too large to diff
- Help/Ugen/fm7.help.hs too large to diff
- Help/Ugen/fmGrain.help.hs too large to diff
- Help/Ugen/fmGrainB.help.hs too large to diff
- Help/Ugen/fold2.help.hs too large to diff
- Help/Ugen/formant.help.hs too large to diff
- Help/Ugen/formlet.help.hs too large to diff
- Help/Ugen/fos.help.hs too large to diff
- Help/Ugen/frac.help.hs too large to diff
- Help/Ugen/free.help.hs too large to diff
- Help/Ugen/freeSelf.help.hs too large to diff
- Help/Ugen/freeSelfWhenDone.help.hs too large to diff
- Help/Ugen/freeVerb.help.hs too large to diff
- Help/Ugen/freezer.help.hs too large to diff
- Help/Ugen/freqShift.help.hs too large to diff
- Help/Ugen/friction.help.hs too large to diff
- Help/Ugen/gVerb.help.hs too large to diff
- Help/Ugen/gammatone.help.hs too large to diff
- Help/Ugen/gate.help.hs too large to diff
- Help/Ugen/gateReset.help.hs too large to diff
- Help/Ugen/gaussTrig.help.hs too large to diff
- Help/Ugen/gbmanL.help.hs too large to diff
- Help/Ugen/gbmanN.help.hs too large to diff
- Help/Ugen/gcd.help.hs too large to diff
- Help/Ugen/gendy1.help.hs too large to diff
- Help/Ugen/grainBuf.help.hs too large to diff
- Help/Ugen/grainFM.help.hs too large to diff
- Help/Ugen/grainIn.help.hs too large to diff
- Help/Ugen/grainSin.help.hs too large to diff
- Help/Ugen/grayNoise.help.hs too large to diff
- Help/Ugen/greater_than.help.hs too large to diff
- Help/Ugen/greyholeRaw.help.hs too large to diff
- Help/Ugen/hairCell.help.hs too large to diff
- Help/Ugen/harmonicOsc.help.hs too large to diff
- Help/Ugen/hasher.help.hs too large to diff
- Help/Ugen/henonC.help.hs too large to diff
- Help/Ugen/henonL.help.hs too large to diff
- Help/Ugen/henonN.help.hs too large to diff
- Help/Ugen/hilbert.help.hs too large to diff
- Help/Ugen/hilbertFIR.help.hs too large to diff
- Help/Ugen/hpf.help.hs too large to diff
- Help/Ugen/hpz1.help.hs too large to diff
- Help/Ugen/hpz2.help.hs too large to diff
- Help/Ugen/hypot.help.hs too large to diff
- Help/Ugen/iEnvGen.help.hs too large to diff
- Help/Ugen/iRand.help.hs too large to diff
- Help/Ugen/iRandN.help.hs too large to diff
- Help/Ugen/ifft.help.hs too large to diff
- Help/Ugen/iirFilter.help.hs too large to diff
- Help/Ugen/impulse.help.hs too large to diff
- Help/Ugen/in.help.hs too large to diff
- Help/Ugen/inFeedback.help.hs too large to diff
- Help/Ugen/inRange.help.hs too large to diff
- Help/Ugen/inTrig.help.hs too large to diff
- Help/Ugen/index.help.hs too large to diff
- Help/Ugen/indexInBetween.help.hs too large to diff
- Help/Ugen/indexL.help.hs too large to diff
- Help/Ugen/integrator.help.hs too large to diff
- Help/Ugen/jPverbRaw.help.hs too large to diff
- Help/Ugen/k2a.help.hs too large to diff
- Help/Ugen/keyState.help.hs too large to diff
- Help/Ugen/keyTrack.help.hs too large to diff
- Help/Ugen/klang.help.hs too large to diff
- Help/Ugen/klank.help.hs too large to diff
- Help/Ugen/ladspa.help.hs too large to diff
- Help/Ugen/lag.help.hs too large to diff
- Help/Ugen/lag2.help.hs too large to diff
- Help/Ugen/lag3.help.hs too large to diff
- Help/Ugen/lagIn.help.hs too large to diff
- Help/Ugen/lagUD.help.hs too large to diff
- Help/Ugen/lastValue.help.hs too large to diff
- Help/Ugen/latch.help.hs too large to diff
- Help/Ugen/latoocarfianC.help.hs too large to diff
- Help/Ugen/lcm.help.hs too large to diff
- Help/Ugen/leakDC.help.hs too large to diff
- Help/Ugen/lfBrownNoise0.help.hs too large to diff
- Help/Ugen/lfBrownNoise2.help.hs too large to diff
- Help/Ugen/lfClipNoise.help.hs too large to diff
- Help/Ugen/lfCub.help.hs too large to diff
- Help/Ugen/lfGauss.help.hs too large to diff
- Help/Ugen/lfNoise0.help.hs too large to diff
- Help/Ugen/lfNoise1.help.hs too large to diff
- Help/Ugen/lfNoise2.help.hs too large to diff
- Help/Ugen/lfPar.help.hs too large to diff
- Help/Ugen/lfPulse.help.hs too large to diff
- Help/Ugen/lfSaw.help.hs too large to diff
- Help/Ugen/lfTri.help.hs too large to diff
- Help/Ugen/lfdClipNoise.help.hs too large to diff
- Help/Ugen/lfdNoise0.help.hs too large to diff
- Help/Ugen/lfdNoise1.help.hs too large to diff
- Help/Ugen/lfdNoise3.help.hs too large to diff
- Help/Ugen/limiter.help.hs too large to diff
- Help/Ugen/linCongC.help.hs too large to diff
- Help/Ugen/linCongL.help.hs too large to diff
- Help/Ugen/linCongN.help.hs too large to diff
- Help/Ugen/linExp.help.hs too large to diff
- Help/Ugen/linLin.help.hs too large to diff
- Help/Ugen/linPan2.help.hs too large to diff
- Help/Ugen/linRand.help.hs too large to diff
- Help/Ugen/linXFade2.help.hs too large to diff
- Help/Ugen/line.help.hs too large to diff
- Help/Ugen/linen.help.hs too large to diff
- Help/Ugen/localBuf.help.hs too large to diff
- Help/Ugen/localIn.help.hs too large to diff
- Help/Ugen/localOut.help.hs too large to diff
- Help/Ugen/log.help.hs too large to diff
- Help/Ugen/logistic.help.hs too large to diff
- Help/Ugen/loopBuf.help.hs too large to diff
- Help/Ugen/lorenzL.help.hs too large to diff
- Help/Ugen/lorenzTrig.help.hs too large to diff
- Help/Ugen/lores.help.hs too large to diff
- Help/Ugen/loudness.help.hs too large to diff
- Help/Ugen/lpcAnalyzer.help.hs too large to diff
- Help/Ugen/lpf.help.hs too large to diff
- Help/Ugen/lpg.help.hs too large to diff
- Help/Ugen/lpz1.help.hs too large to diff
- Help/Ugen/lpz2.help.hs too large to diff
- Help/Ugen/lti.help.hs too large to diff
- Help/Ugen/mantissaMask.help.hs too large to diff
- Help/Ugen/max.help.hs too large to diff
- Help/Ugen/mce.help.hs too large to diff
- Help/Ugen/mdaPiano.help.hs too large to diff
- Help/Ugen/meddis.help.hs too large to diff
- Help/Ugen/median.help.hs too large to diff
- Help/Ugen/membraneCircle.help.hs too large to diff
- Help/Ugen/membraneHexagon.help.hs too large to diff
- Help/Ugen/metro.help.hs too large to diff
- Help/Ugen/miBraids.help.hs too large to diff
- Help/Ugen/miClouds.help.hs too large to diff
- Help/Ugen/miElements.help.hs too large to diff
- Help/Ugen/miOmi.help.hs too large to diff
- Help/Ugen/miPlaits.help.hs too large to diff
- Help/Ugen/miRings.help.hs too large to diff
- Help/Ugen/miRipples.help.hs too large to diff
- Help/Ugen/miTides.help.hs too large to diff
- Help/Ugen/miVerb.help.hs too large to diff
- Help/Ugen/midEQ.help.hs too large to diff
- Help/Ugen/midiCPS.help.hs too large to diff
- Help/Ugen/min.help.hs too large to diff
- Help/Ugen/mix.help.hs too large to diff
- Help/Ugen/mod.help.hs too large to diff
- Help/Ugen/modDif.help.hs too large to diff
- Help/Ugen/monoGrain.help.hs too large to diff
- Help/Ugen/moogFF.help.hs too large to diff
- Help/Ugen/moogLadder.help.hs too large to diff
- Help/Ugen/moogVCF.help.hs too large to diff
- Help/Ugen/mostChange.help.hs too large to diff
- Help/Ugen/mouseButton.help.hs too large to diff
- Help/Ugen/mouseX.help.hs too large to diff
- Help/Ugen/mouseY.help.hs too large to diff
- Help/Ugen/mrg2.help.hs too large to diff
- Help/Ugen/mul.help.hs too large to diff
- Help/Ugen/mulAdd.help.hs too large to diff
- Help/Ugen/nRand.help.hs too large to diff
- Help/Ugen/neg.help.hs too large to diff
- Help/Ugen/neoFormant.help.hs too large to diff
- Help/Ugen/nestedAllpassC.help.hs too large to diff
- Help/Ugen/nhHall.help.hs too large to diff
- Help/Ugen/nodeId.help.hs too large to diff
- Help/Ugen/normalizer.help.hs too large to diff
- Help/Ugen/numBuffers.help.hs too large to diff
- Help/Ugen/numRunningSynths.help.hs too large to diff
- Help/Ugen/obxdFilter.help.hs too large to diff
- Help/Ugen/offsetOut.help.hs too large to diff
- Help/Ugen/onePole.help.hs too large to diff
- Help/Ugen/oneZero.help.hs too large to diff
- Help/Ugen/onsets.help.hs too large to diff
- Help/Ugen/osc.help.hs too large to diff
- Help/Ugen/osc1.help.hs too large to diff
- Help/Ugen/oscN.help.hs too large to diff
- Help/Ugen/oteyPianoStrings.help.hs too large to diff
- Help/Ugen/oteySoundBoard.help.hs too large to diff
- Help/Ugen/out.help.hs too large to diff
- Help/Ugen/packFFT.help.hs too large to diff
- Help/Ugen/pan2.help.hs too large to diff
- Help/Ugen/panAz.help.hs too large to diff
- Help/Ugen/pause.help.hs too large to diff
- Help/Ugen/pauseSelf.help.hs too large to diff
- Help/Ugen/pauseSelfWhenDone.help.hs too large to diff
- Help/Ugen/peak.help.hs too large to diff
- Help/Ugen/peakFollower.help.hs too large to diff
- Help/Ugen/perlin3.help.hs too large to diff
- Help/Ugen/phasor.help.hs too large to diff
- Help/Ugen/phasorModal.help.hs too large to diff
- Help/Ugen/pinkNoise.help.hs too large to diff
- Help/Ugen/pitch.help.hs too large to diff
- Help/Ugen/pitchShift.help.hs too large to diff
- Help/Ugen/playBuf.help.hs too large to diff
- Help/Ugen/playBufCF.help.hs too large to diff
- Help/Ugen/pluck.help.hs too large to diff
- Help/Ugen/pmOsc.help.hs too large to diff
- Help/Ugen/poll.help.hs too large to diff
- Help/Ugen/pow.help.hs too large to diff
- Help/Ugen/pulse.help.hs too large to diff
- Help/Ugen/pulseCount.help.hs too large to diff
- Help/Ugen/pulseDPW.help.hs too large to diff
- Help/Ugen/pulseDivider.help.hs too large to diff
- Help/Ugen/pv_BinBufRd.help.hs too large to diff
- Help/Ugen/pv_BinScramble.help.hs too large to diff
- Help/Ugen/pv_BinShift.help.hs too large to diff
- Help/Ugen/pv_BinWipe.help.hs too large to diff
- Help/Ugen/pv_BrickWall.help.hs too large to diff
- Help/Ugen/pv_BufRd.help.hs too large to diff
- Help/Ugen/pv_Compander.help.hs too large to diff
- Help/Ugen/pv_ConformalMap.help.hs too large to diff
- Help/Ugen/pv_Diffuser.help.hs too large to diff
- Help/Ugen/pv_Freeze.help.hs too large to diff
- Help/Ugen/pv_HainsworthFoote.help.hs too large to diff
- Help/Ugen/pv_Invert.help.hs too large to diff
- Help/Ugen/pv_JensenAndersen.help.hs too large to diff
- Help/Ugen/pv_LocalMax.help.hs too large to diff
- Help/Ugen/pv_MagAbove.help.hs too large to diff
- Help/Ugen/pv_MagBelow.help.hs too large to diff
- Help/Ugen/pv_MagClip.help.hs too large to diff
- Help/Ugen/pv_MagFreeze.help.hs too large to diff
- Help/Ugen/pv_MagGate.help.hs too large to diff
- Help/Ugen/pv_MagMul.help.hs too large to diff
- Help/Ugen/pv_MagSmear.help.hs too large to diff
- Help/Ugen/pv_Morph.help.hs too large to diff
- Help/Ugen/pv_Mul.help.hs too large to diff
- Help/Ugen/pv_PlayBuf.help.hs too large to diff
- Help/Ugen/pv_RandComb.help.hs too large to diff
- Help/Ugen/pv_RandWipe.help.hs too large to diff
- Help/Ugen/pv_RecordBuf.help.hs too large to diff
- Help/Ugen/pv_RectComb.help.hs too large to diff
- Help/Ugen/pv_SpectralMap.help.hs too large to diff
- Help/Ugen/pv_Split.help.hs too large to diff
- Help/Ugen/pv_xFade.help.hs too large to diff
- Help/Ugen/quadC.help.hs too large to diff
- Help/Ugen/quadL.help.hs too large to diff
- Help/Ugen/quadN.help.hs too large to diff
- Help/Ugen/rDelayMap.help.hs too large to diff
- Help/Ugen/rDelaySet.help.hs too large to diff
- Help/Ugen/rDelaySetBuf.help.hs too large to diff
- Help/Ugen/rLagC.help.hs too large to diff
- Help/Ugen/rLoopSet.help.hs too large to diff
- Help/Ugen/rShufflerL.help.hs too large to diff
- Help/Ugen/rSmplrIndex.help.hs too large to diff
- Help/Ugen/rTracePlay.help.hs too large to diff
- Help/Ugen/rTraceRd.help.hs too large to diff
- Help/Ugen/radiansPerSample.help.hs too large to diff
- Help/Ugen/ramp.help.hs too large to diff
- Help/Ugen/rand.help.hs too large to diff
- Help/Ugen/rand2.help.hs too large to diff
- Help/Ugen/randN.help.hs too large to diff
- Help/Ugen/randSeed.help.hs too large to diff
- Help/Ugen/rcd.help.hs too large to diff
- Help/Ugen/rdl.help.hs too large to diff
- Help/Ugen/rdx7Env.help.hs too large to diff
- Help/Ugen/recordBuf.help.hs too large to diff
- Help/Ugen/redPhasor.help.hs too large to diff
- Help/Ugen/redPhasor2.help.hs too large to diff
- Help/Ugen/replaceOut.help.hs too large to diff
- Help/Ugen/resonator.help.hs too large to diff
- Help/Ugen/resonz.help.hs too large to diff
- Help/Ugen/rhpf.help.hs too large to diff
- Help/Ugen/ring1.help.hs too large to diff
- Help/Ugen/ring2.help.hs too large to diff
- Help/Ugen/ring3.help.hs too large to diff
- Help/Ugen/ring4.help.hs too large to diff
- Help/Ugen/ringz.help.hs too large to diff
- Help/Ugen/rlpf.help.hs too large to diff
- Help/Ugen/rlpfd.help.hs too large to diff
- Help/Ugen/rmShelf.help.hs too large to diff
- Help/Ugen/rmeq.help.hs too large to diff
- Help/Ugen/rongs.help.hs too large to diff
- Help/Ugen/rotate2.help.hs too large to diff
- Help/Ugen/roundUp.help.hs too large to diff
- Help/Ugen/rpvDecayTbl.help.hs too large to diff
- Help/Ugen/runningMax.help.hs too large to diff
- Help/Ugen/runningMin.help.hs too large to diff
- Help/Ugen/runningSum.help.hs too large to diff
- Help/Ugen/sampleDur.help.hs too large to diff
- Help/Ugen/sampleRate.help.hs too large to diff
- Help/Ugen/sanitize.help.hs too large to diff
- Help/Ugen/saw.help.hs too large to diff
- Help/Ugen/sawDPW.help.hs too large to diff
- Help/Ugen/scaleNeg.help.hs too large to diff
- Help/Ugen/schmidt.help.hs too large to diff
- Help/Ugen/select.help.hs too large to diff
- Help/Ugen/selectX.help.hs too large to diff
- Help/Ugen/sendReply.help.hs too large to diff
- Help/Ugen/sensoryDissonance.help.hs too large to diff
- Help/Ugen/setResetFF.help.hs too large to diff
- Help/Ugen/shaper.help.hs too large to diff
- Help/Ugen/shufflerB.help.hs too large to diff
- Help/Ugen/silent.help.hs too large to diff
- Help/Ugen/sin.help.hs too large to diff
- Help/Ugen/sinGrain.help.hs too large to diff
- Help/Ugen/sinOsc.help.hs too large to diff
- Help/Ugen/sinOscFB.help.hs too large to diff
- Help/Ugen/sineShaper.help.hs too large to diff
- Help/Ugen/sinh.help.hs too large to diff
- Help/Ugen/slew.help.hs too large to diff
- Help/Ugen/slope.help.hs too large to diff
- Help/Ugen/sms.help.hs too large to diff
- Help/Ugen/sndfileIn.help.hs too large to diff
- Help/Ugen/sndfileRead.help.hs too large to diff
- Help/Ugen/softClip.help.hs too large to diff
- Help/Ugen/softClipAmp.help.hs too large to diff
- Help/Ugen/sonLPC.help.hs too large to diff
- Help/Ugen/sortBuf.help.hs too large to diff
- Help/Ugen/sos.help.hs too large to diff
- Help/Ugen/soundIn.help.hs too large to diff
- Help/Ugen/specCentroid.help.hs too large to diff
- Help/Ugen/specFlatness.help.hs too large to diff
- Help/Ugen/spectralEntropy.help.hs too large to diff
- Help/Ugen/splay.help.hs too large to diff
- Help/Ugen/spreader.help.hs too large to diff
- Help/Ugen/spring.help.hs too large to diff
- Help/Ugen/sqrDif.help.hs too large to diff
- Help/Ugen/sqrSum.help.hs too large to diff
- Help/Ugen/squiz.help.hs too large to diff
- Help/Ugen/standard2DL.help.hs too large to diff
- Help/Ugen/standardL.help.hs too large to diff
- Help/Ugen/stepper.help.hs too large to diff
- Help/Ugen/stkBandedWG.help.hs too large to diff
- Help/Ugen/stkInst.help.hs too large to diff
- Help/Ugen/stkMandolin.help.hs too large to diff
- Help/Ugen/stkModalBar.help.hs too large to diff
- Help/Ugen/stkMoog.help.hs too large to diff
- Help/Ugen/stkPluck.help.hs too large to diff
- Help/Ugen/stkShakers.help.hs too large to diff
- Help/Ugen/streson.help.hs too large to diff
- Help/Ugen/stringVoice.help.hs too large to diff
- Help/Ugen/sub.help.hs too large to diff
- Help/Ugen/subsampleOffset.help.hs too large to diff
- Help/Ugen/sum3.help.hs too large to diff
- Help/Ugen/sum4.help.hs too large to diff
- Help/Ugen/sumSqr.help.hs too large to diff
- Help/Ugen/summer.help.hs too large to diff
- Help/Ugen/svf.help.hs too large to diff
- Help/Ugen/svfBp.help.hs too large to diff
- Help/Ugen/svfHp.help.hs too large to diff
- Help/Ugen/svfLp.help.hs too large to diff
- Help/Ugen/sweep.help.hs too large to diff
- Help/Ugen/switchDelay.help.hs too large to diff
- Help/Ugen/syncSaw.help.hs too large to diff
- Help/Ugen/t2a.help.hs too large to diff
- Help/Ugen/t2k.help.hs too large to diff
- Help/Ugen/tBall.help.hs too large to diff
- Help/Ugen/tBetaRand.help.hs too large to diff
- Help/Ugen/tBrownRand.help.hs too large to diff
- Help/Ugen/tChoose.help.hs too large to diff
- Help/Ugen/tDelay.help.hs too large to diff
- Help/Ugen/tDuty.help.hs too large to diff
- Help/Ugen/tExpRand.help.hs too large to diff
- Help/Ugen/tExpRandN.help.hs too large to diff
- Help/Ugen/tGaussRand.help.hs too large to diff
- Help/Ugen/tGrains.help.hs too large to diff
- Help/Ugen/tLine.help.hs too large to diff
- Help/Ugen/tRand.help.hs too large to diff
- Help/Ugen/tRandN.help.hs too large to diff
- Help/Ugen/tScramble.help.hs too large to diff
- Help/Ugen/tWindex.help.hs too large to diff
- Help/Ugen/tXLine.help.hs too large to diff
- Help/Ugen/tan.help.hs too large to diff
- Help/Ugen/tanh.help.hs too large to diff
- Help/Ugen/tap.help.hs too large to diff
- Help/Ugen/tartini.help.hs too large to diff
- Help/Ugen/thresh.help.hs too large to diff
- Help/Ugen/tiRand.help.hs too large to diff
- Help/Ugen/timer.help.hs too large to diff
- Help/Ugen/toggleFF.help.hs too large to diff
- Help/Ugen/trig.help.hs too large to diff
- Help/Ugen/trig1.help.hs too large to diff
- Help/Ugen/trigAvg.help.hs too large to diff
- Help/Ugen/trigControl.help.hs too large to diff
- Help/Ugen/twChoose.help.hs too large to diff
- Help/Ugen/twoPole.help.hs too large to diff
- Help/Ugen/twoTube.help.hs too large to diff
- Help/Ugen/twoZero.help.hs too large to diff
- Help/Ugen/vDiskIn.help.hs too large to diff
- Help/Ugen/vOsc.help.hs too large to diff
- Help/Ugen/vOsc3.help.hs too large to diff
- Help/Ugen/varLag.help.hs too large to diff
- Help/Ugen/varSaw.help.hs too large to diff
- Help/Ugen/varShapeOsc.help.hs too large to diff
- Help/Ugen/vbFourses.help.hs too large to diff
- Help/Ugen/vbJonVerb.help.hs too large to diff
- Help/Ugen/vbSlide.help.hs too large to diff
- Help/Ugen/vibrato.help.hs too large to diff
- Help/Ugen/vosim.help.hs too large to diff
- Help/Ugen/vosimOsc.help.hs too large to diff
- Help/Ugen/warp1.help.hs too large to diff
- Help/Ugen/weaklyNonlinear2.help.hs too large to diff
- Help/Ugen/whiteNoise.help.hs too large to diff
- Help/Ugen/wrap.help.hs too large to diff
- Help/Ugen/wrap2.help.hs too large to diff
- Help/Ugen/wrapIndex.help.hs too large to diff
- Help/Ugen/xFade2.help.hs too large to diff
- Help/Ugen/xLine.help.hs too large to diff
- Help/Ugen/xOut.help.hs too large to diff
- Help/Ugen/zOsc.help.hs too large to diff
- Help/Ugen/zeroCrossing.help.hs too large to diff
- Help/Ugen/zitaRev.help.hs too large to diff
- README too large to diff
- README.md too large to diff
- Sound/SC3.hs too large to diff
- Sound/SC3/Common.hs too large to diff
- Sound/SC3/Common/Monad/Syntax.hs too large to diff
- Sound/SC3/FD.hs too large to diff
- Sound/SC3/Server.hs too large to diff
- Sound/SC3/Server/Command.hs too large to diff
- Sound/SC3/Server/Command/Completion.hs too large to diff
- Sound/SC3/Server/Command/Enum.hs too large to diff
- Sound/SC3/Server/Command/Generic.hs too large to diff
- Sound/SC3/Server/Command/Plain.hs too large to diff
- Sound/SC3/Server/Enum.hs too large to diff
- Sound/SC3/Server/FD.hs too large to diff
- Sound/SC3/Server/Graphdef.hs too large to diff
- Sound/SC3/Server/Graphdef/Graph.hs too large to diff
- Sound/SC3/Server/Graphdef/Read.hs too large to diff
- Sound/SC3/Server/Help.hs too large to diff
- Sound/SC3/Server/Monad.hs too large to diff
- Sound/SC3/Server/NRT.hs too large to diff
- Sound/SC3/Server/NRT/Edit.hs too large to diff
- Sound/SC3/Server/Recorder.hs too large to diff
- Sound/SC3/Server/Status.hs too large to diff
- Sound/SC3/Server/Synthdef.hs too large to diff
- Sound/SC3/Server/Transport/FD.hs too large to diff
- Sound/SC3/Server/Transport/Monad.hs too large to diff
- Sound/SC3/UGen.hs too large to diff
- Sound/SC3/UGen/Bindings.hs too large to diff
- Sound/SC3/UGen/Bindings/Composite.hs too large to diff
- Sound/SC3/UGen/Bindings/DB.hs too large to diff
- Sound/SC3/UGen/Bindings/HW.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/Construct.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/ATS.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/F0.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/ID.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/LPC.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/SC3_Plugins.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/Wavelets.hs too large to diff
- Sound/SC3/UGen/Bindings/HW/External/Zita.hs too large to diff
- Sound/SC3/UGen/Bindings/Monad.hs too large to diff
- Sound/SC3/UGen/Enum.hs too large to diff
- Sound/SC3/UGen/Envelope.hs too large to diff
- Sound/SC3/UGen/Envelope/Construct.hs too large to diff
- Sound/SC3/UGen/Envelope/Interpolate.hs too large to diff
- Sound/SC3/UGen/Graph.hs too large to diff
- Sound/SC3/UGen/Graph/Reconstruct.hs too large to diff
- Sound/SC3/UGen/Graph/Transform.hs too large to diff
- Sound/SC3/UGen/Help.hs too large to diff
- Sound/SC3/UGen/Help/Graph.hs too large to diff
- Sound/SC3/UGen/Identifier.hs too large to diff
- Sound/SC3/UGen/MCE.hs too large to diff
- Sound/SC3/UGen/Math.hs too large to diff
- Sound/SC3/UGen/Name.hs too large to diff
- Sound/SC3/UGen/Operator.hs too large to diff
- Sound/SC3/UGen/Optimise.hs too large to diff
- Sound/SC3/UGen/PP.hs too large to diff
- Sound/SC3/UGen/Plain.hs too large to diff
- Sound/SC3/UGen/Protect.hs too large to diff
- Sound/SC3/UGen/Rate.hs too large to diff
- Sound/SC3/UGen/Type.hs too large to diff
- Sound/SC3/UGen/UGen.hs too large to diff
- Sound/SC3/UGen/UId.hs too large to diff
- Sound/Sc3.hs too large to diff
- Sound/Sc3/Common.hs too large to diff
- Sound/Sc3/Common/Base.hs too large to diff
- Sound/Sc3/Common/Base/System.hs too large to diff
- Sound/Sc3/Common/Buffer.hs too large to diff
- Sound/Sc3/Common/Buffer/Array.hs too large to diff
- Sound/Sc3/Common/Buffer/Gen.hs too large to diff
- Sound/Sc3/Common/Buffer/Vector.hs too large to diff
- Sound/Sc3/Common/Context.hs too large to diff
- Sound/Sc3/Common/Enum.hs too large to diff
- Sound/Sc3/Common/Envelope.hs too large to diff
- Sound/Sc3/Common/Help.hs too large to diff
- Sound/Sc3/Common/Help/Sc2.hs too large to diff
- Sound/Sc3/Common/Math.hs too large to diff
- Sound/Sc3/Common/Math/Filter.hs too large to diff
- Sound/Sc3/Common/Math/Filter/Beq.hs too large to diff
- Sound/Sc3/Common/Math/Interpolate.hs too large to diff
- Sound/Sc3/Common/Math/Noise.hs too large to diff
- Sound/Sc3/Common/Math/Operator.hs too large to diff
- Sound/Sc3/Common/Math/Warp.hs too large to diff
- Sound/Sc3/Common/Math/Window.hs too large to diff
- Sound/Sc3/Common/Mce.hs too large to diff
- Sound/Sc3/Common/Monad.hs too large to diff
- Sound/Sc3/Common/Monad/Operators.hs too large to diff
- Sound/Sc3/Common/Random.hs too large to diff
- Sound/Sc3/Common/Rate.hs too large to diff
- Sound/Sc3/Common/SoundFile.hs too large to diff
- Sound/Sc3/Common/Uid.hs too large to diff
- Sound/Sc3/Common/Unsafe.hs too large to diff
- Sound/Sc3/Fd.hs too large to diff
- Sound/Sc3/Server.hs too large to diff
- Sound/Sc3/Server/Command.hs too large to diff
- Sound/Sc3/Server/Command/Completion.hs too large to diff
- Sound/Sc3/Server/Command/Enum.hs too large to diff
- Sound/Sc3/Server/Command/Generic.hs too large to diff
- Sound/Sc3/Server/Command/Plain.hs too large to diff
- Sound/Sc3/Server/Command/Plain/Completion.hs too large to diff
- Sound/Sc3/Server/Enum.hs too large to diff
- Sound/Sc3/Server/Fd.hs too large to diff
- Sound/Sc3/Server/Graphdef.hs too large to diff
- Sound/Sc3/Server/Graphdef/Binary.hs too large to diff
- Sound/Sc3/Server/Graphdef/Graph.hs too large to diff
- Sound/Sc3/Server/Graphdef/Io.hs too large to diff
- Sound/Sc3/Server/Graphdef/Read.hs too large to diff
- Sound/Sc3/Server/Graphdef/Text.hs too large to diff
- Sound/Sc3/Server/Monad.hs too large to diff
- Sound/Sc3/Server/Nrt.hs too large to diff
- Sound/Sc3/Server/Nrt/Edit.hs too large to diff
- Sound/Sc3/Server/Nrt/Render.hs too large to diff
- Sound/Sc3/Server/Nrt/Stat.hs too large to diff
- Sound/Sc3/Server/Nrt/Ugen.hs too large to diff
- Sound/Sc3/Server/Options.hs too large to diff
- Sound/Sc3/Server/Param.hs too large to diff
- Sound/Sc3/Server/Recorder.hs too large to diff
- Sound/Sc3/Server/Scsynth.hs too large to diff
- Sound/Sc3/Server/Status.hs too large to diff
- Sound/Sc3/Server/Synthdef.hs too large to diff
- Sound/Sc3/Server/Transport/Fd.hs too large to diff
- Sound/Sc3/Server/Transport/Monad.hs too large to diff
- Sound/Sc3/Ugen.hs too large to diff
- Sound/Sc3/Ugen/Analysis.hs too large to diff
- Sound/Sc3/Ugen/Bindings.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Composite.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Composite/External.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Db.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Db/External.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/Construct.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/External.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/External/F0.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/External/Sc3_Plugins.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/External/Wavelets.hs too large to diff
- Sound/Sc3/Ugen/Bindings/Hw/External/Zita.hs too large to diff
- Sound/Sc3/Ugen/Bracketed.hs too large to diff
- Sound/Sc3/Ugen/Brackets.hs too large to diff
- Sound/Sc3/Ugen/Constant.hs too large to diff
- Sound/Sc3/Ugen/Control.hs too large to diff
- Sound/Sc3/Ugen/Enum.hs too large to diff
- Sound/Sc3/Ugen/Envelope.hs too large to diff
- Sound/Sc3/Ugen/Event.hs too large to diff
- Sound/Sc3/Ugen/Graph.hs too large to diff
- Sound/Sc3/Ugen/Graph/Reconstruct.hs too large to diff
- Sound/Sc3/Ugen/Graph/Transform.hs too large to diff
- Sound/Sc3/Ugen/Help/Graph.hs too large to diff
- Sound/Sc3/Ugen/Hs.hs too large to diff
- Sound/Sc3/Ugen/Label.hs too large to diff
- Sound/Sc3/Ugen/Math.hs too large to diff
- Sound/Sc3/Ugen/Math/Composite.hs too large to diff
- Sound/Sc3/Ugen/Mce.hs too large to diff
- Sound/Sc3/Ugen/Mrg.hs too large to diff
- Sound/Sc3/Ugen/Name.hs too large to diff
- Sound/Sc3/Ugen/Optimise.hs too large to diff
- Sound/Sc3/Ugen/Plain.hs too large to diff
- Sound/Sc3/Ugen/Pp.hs too large to diff
- Sound/Sc3/Ugen/Primitive.hs too large to diff
- Sound/Sc3/Ugen/Proxy.hs too large to diff
- Sound/Sc3/Ugen/Types.hs too large to diff
- Sound/Sc3/Ugen/Ugen.hs too large to diff
- Sound/Sc3/Ugen/Util.hs too large to diff
- emacs/hsc3.el too large to diff
- hsc3.cabal too large to diff
- lib/hsc3-min-imports.hs too large to diff
- lib/hsc3-std-extensions.hs too large to diff
- lib/hsc3-std-imports.hs too large to diff
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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]
@@ -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
@@ -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
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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+
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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
@@ -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 'δ'))
@@ -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))
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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])
@@ -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])
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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)
@@ -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)+
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)))
@@ -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))
@@ -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
@@ -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))
@@ -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
@@ -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)))
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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)
@@ -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)+
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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]))
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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+
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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 'β')
@@ -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)
@@ -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
@@ -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]
@@ -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
@@ -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))
@@ -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)
@@ -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
@@ -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
@@ -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:
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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]))
@@ -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
@@ -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]))
@@ -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))
@@ -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))
@@ -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
@@ -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)
@@ -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)
@@ -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)))
@@ -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
@@ -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))
@@ -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++
@@ -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
@@ -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
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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
@@ -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)
@@ -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))
@@ -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
@@ -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
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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))
@@ -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
@@ -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)))
@@ -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,[])
@@ -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
@@ -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)
@@ -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
@@ -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))
@@ -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
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_allocReadChannel"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_close"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_close"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_fill"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_fill"
@@ -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])
@@ -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])
@@ -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"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_gen"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_get"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_get"
@@ -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]
@@ -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]
@@ -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
@@ -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
@@ -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)})
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_read"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_read"
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/b_readChannel"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_readChannel"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_set"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_set"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_setn"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_setn"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_write"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_write"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/b_zero"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/b_zero"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/c_fill"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_fill"
@@ -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
@@ -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)})
@@ -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))
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_getn"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/c_set"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_set"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/c_setn"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/c_setn"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/clearSched"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/clearSched"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/d_free"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_free"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/d_load"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_load"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/d_loadDir"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_loadDir"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/d_recv"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/d_recv"
@@ -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))
@@ -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))
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/g_deepFree"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_deepFree"
@@ -0,0 +1,8 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/g_freeAll"++> import Sound.OSC+> import Sound.Sc3++> m1 = g_freeAll [0]++ > withSc3 (sendMessage m1)
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_freeAll"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/g_head"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_head"
@@ -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)
@@ -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)]))
@@ -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)])
@@ -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)])
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/g_tail"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/g_tail"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_after"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_after"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_before"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_before"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_fill"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_fill"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_free"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_free"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_map"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_map"
@@ -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);
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_mapn"
@@ -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
@@ -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
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/n_run"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_run"
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/n_set"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_set"
@@ -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>.
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_setn"
@@ -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)
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/n_trace"
@@ -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))
@@ -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"}))
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/quit"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/quit"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/s_get"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_get"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/s_getn"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_getn"
@@ -0,0 +1,2 @@+---- ; help+Sound.Sc3.sc3_scdoc_help_server_command_open False "/s_new"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_new"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/s_noid"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/s_noid"
@@ -0,0 +1,5 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/status"++> import Sound.Sc3 {- hsc3 -}++ withSc3 serverStatus >>= mapM putStrLn
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/status"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/sync"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/sync"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/tr"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/tr"
@@ -0,0 +1,1 @@+ Sound.Sc3.Lang.Help.viewServerHelp "/u_cmd"
@@ -1,1 +0,0 @@-> Sound.SC3.Server.Help.viewServerHelp "/u_cmd"
@@ -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))
@@ -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]))
@@ -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])
@@ -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))
@@ -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))
@@ -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]))
@@ -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))
@@ -1,1 +0,0 @@-See bufAllpassC
@@ -1,1 +0,0 @@-See bufAllpassC
@@ -1,2 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "BufChannels"-> Sound.SC3.UGen.DB.ugenSummary "BufChannels"
@@ -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))
@@ -1,1 +0,0 @@-See bufCombC
@@ -1,1 +0,0 @@-See bufCombC
@@ -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))
@@ -1,1 +0,0 @@-See bufDelayC
@@ -1,1 +0,0 @@-See bufDelayC
@@ -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))
@@ -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)))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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
@@ -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))
@@ -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])
@@ -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))
@@ -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))
@@ -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))
@@ -1,1 +0,0 @@-See cuspL
@@ -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))
@@ -1,1 +0,0 @@-See fbSineC
@@ -1,1 +0,0 @@-See fbSineC
@@ -1,1 +0,0 @@-See GbmanN
@@ -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))
@@ -1,1 +0,0 @@-See henonN
@@ -1,1 +0,0 @@-See henonN
@@ -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))
@@ -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)
@@ -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))
@@ -1,1 +0,0 @@-See linCongC
@@ -1,1 +0,0 @@-See linCongC
@@ -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))
@@ -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))
@@ -1,1 +0,0 @@-See quadN
@@ -1,1 +0,0 @@-See quadN
@@ -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))
@@ -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))
@@ -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)]))
@@ -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))
@@ -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))
@@ -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}
@@ -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)
@@ -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)
@@ -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))
@@ -1,4 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Dibrown"-> Sound.SC3.UGen.DB.ugenSummary "Dibrown"--See dbrown
@@ -1,4 +0,0 @@-> Sound.SC3.UGen.Help.viewSC3Help "Diwhite"-> Sound.SC3.UGen.DB.ugenSummary "Diwhite"--See dwhite
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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)}-
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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
@@ -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))
@@ -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)})
@@ -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})
@@ -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 ()})
@@ -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])
@@ -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]))
@@ -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);
@@ -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]
@@ -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]
@@ -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))
@@ -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)
@@ -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)
@@ -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]
@@ -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]
@@ -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]
@@ -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]
@@ -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]
@@ -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 [])})
@@ -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])
@@ -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)])
@@ -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)
@@ -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))
@@ -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))
@@ -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)]))
@@ -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)]))
@@ -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)]))
@@ -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)
@@ -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)
@@ -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)})
@@ -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)})
@@ -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))}
@@ -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
@@ -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))
@@ -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))
@@ -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))
@@ -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))
@@ -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)
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff
file too large to diff