From 031b56f28661333a8480170ddb4842c51921eed4 Mon Sep 17 00:00:00 2001 From: Kenneth Flak Date: Fri, 3 Jul 2020 18:27:13 +0300 Subject: [PATCH] kullophone --- a.scd | 0 audio/kullophone | 1 + init.scd | 5 +- potentialSketches.md | 60 ++ pydondefaults.ini | 2 +- seqs/fullCueListApril19.scd | 813 +++++++++++++------------ sketches/bufreadwrite.scd | 28 + sketches/coronaBreath.scd | 50 +- sketches/coronaGlobal.scd | 60 +- sketches/coronaWhisper.scd | 76 +-- sketches/coronaWhisperGrain.scd | 32 +- sketches/coronaWhisperGrainKenneth.scd | 197 +++--- sketches/cough.scd | 170 +++--- sketches/em.scd | 10 + sketches/focus.scd | 23 +- sketches/kullophone.scd | 63 ++ sketches/mbArpeggiator.scd | 108 ++-- sketches/mbBellulator.scd | 86 +-- sketches/mbBreath.scd | 3 +- sketches/mbCello.scd | 2 +- sketches/mbFM.scd | 3 +- sketches/mbFMdrone.scd | 16 +- sketches/mbFbnoise.scd | 7 +- sketches/mbFlutter.scd | 174 +++--- sketches/mbFlutterSpeak.scd | 1 + sketches/mbLeavulator.scd | 9 + sketches/mbMelodic.scd | 18 +- sketches/mbScary.scd | 23 +- sketches/mbShh.scd | 97 +-- sketches/mbSineFB.scd | 119 ++-- sketches/mbTalkulator.scd | 110 ++-- sketches/mbTreeperculator.scd | 81 +-- sketches/mbTwinkle.scd | 125 ++-- sketches/mbTwinkleFB.scd | 27 +- sketches/mbWalkGravel.scd | 109 ++-- sketches/metals.scd | 2 +- sketches/numbers.scd | 101 +-- sketches/rainRingMod.scd | 93 +-- sketches/rainRingModGrain.scd | 102 ++-- sketches/rainulator.scd | 111 ++-- sketches/runningWater.scd | 8 +- sketches/scaryverksted.scd | 3 +- sketches/sineRingMod.scd | 68 +-- sketches/singsong.scd | 74 +-- sketches/stormEye.scd | 482 +++++++-------- sketches/stormulator.scd | 120 ++-- sketches/ten.scd | 270 ++++---- sketches/tribal.scd | 130 ++-- sketches/trumpetInsects.scd | 88 +-- sketches/trumpetdeltagrain.scd | 184 +++--- sketches/trumpetulator.scd | 113 ++-- sketches/unisonoBubbles.scd | 4 + sketches/velcroClean.scd | 8 +- sketches/velcrolator.scd | 101 ++- stormulator/200611_142334.wav | 3 + 55 files changed, 2503 insertions(+), 2270 deletions(-) create mode 100644 a.scd create mode 120000 audio/kullophone create mode 100644 potentialSketches.md create mode 100644 sketches/bufreadwrite.scd create mode 100644 sketches/kullophone.scd create mode 100644 stormulator/200611_142334.wav diff --git a/a.scd b/a.scd new file mode 100644 index 0000000..e69de29 diff --git a/audio/kullophone b/audio/kullophone new file mode 120000 index 0000000..b839656 --- /dev/null +++ b/audio/kullophone @@ -0,0 +1 @@ +/home/kf/mySamples/kullophone \ No newline at end of file diff --git a/init.scd b/init.scd index 843d772..dfd2198 100644 --- a/init.scd +++ b/init.scd @@ -1,5 +1,7 @@ ( -~root = "/home/kf/sc/100-sketches"; +// ~root = "/home/kf/sc/100-sketches"; + +~root = PathName(thisProcess.nowExecutingPath).pathOnly; ~sketchdir = ~root+/+"sketches"; ~sk = Dictionary.new; ~skGain = Dictionary.new; @@ -97,3 +99,4 @@ s.waitForBoot({ // s.record("/home/kf/Videos/100-sketches-March/audio/angelSketchSuperCollider" ++ Date.getDate.stamp ++".wav"); // s.stopRecording; + diff --git a/potentialSketches.md b/potentialSketches.md new file mode 100644 index 0000000..8cc9aa2 --- /dev/null +++ b/potentialSketches.md @@ -0,0 +1,60 @@ +# Potential sketches and their usage + +## Tree +mbFM (brass-like sounds, works well together with mbWalkGravel) +mbWalkGravel +mbShh +mbTreeperculator +stormulator (into the depths kind of a thing, distorted whispers) + +## Balancing Act on Water - on a stone, very still +focus Külli no 3 + +## Sand - Thinking Space On the Knees +mbBreath (granular, semi-percussive breath sounds) Külli no 1 + +## Water +mbArpeggiator +mbFlutter Külli no 4 +mbFM (brass-like sounds) +mbFMdrone (steppy) +mbSineFB +metals +runningWater (clean water sound, no processing) +unisonoBubbles + +## Grassy/bushy something +mbLeavulator +stormulator (into the depths kind of a thing, distorted whispers) +velcrolator + +## In the darkness, maybe in the water between high grass +mbScary + +## Close-up handstand +mbTwinkle +trumpetulator + +## Forresty +coronaWhisperGrain (elvish whispers) Külli no 2 +rainRingModGrain +mbFlutter (fast, squirrely) + +## General background sound +rainulator + +## Other stuff +velcroClean + + + + + + +## Deprecated, needs rewriting +mbTalkulator +guitardeltasingle +guitarDreams +fmDirection +sea +seaForest diff --git a/pydondefaults.ini b/pydondefaults.ini index 75edae7..03cee50 100644 --- a/pydondefaults.ini +++ b/pydondefaults.ini @@ -8,7 +8,7 @@ hport = 57120 [serial] baudrate = 57600 -serial = /dev/ttyUSB1 +serial = /dev/ttyUSB0 apimode = True [hive] diff --git a/seqs/fullCueListApril19.scd b/seqs/fullCueListApril19.scd index 09489ed..a5af9b9 100644 --- a/seqs/fullCueListApril19.scd +++ b/seqs/fullCueListApril19.scd @@ -1,425 +1,425 @@ ( - ~cuelist = CuePlayer.new(); - ~cuelist.add({"juuuust checking".postln}); - ~cuelist.add(timeline: - [ - // 0, {s.record("~/sc-rec/tbo-run"+/+Date.localtime.stamp++".wav")}, - 0, {this.executeFile(~sketchdir+/+"klliMicBreath.scd")}, - 200, {"water starts".postln}, - 260, { - "breathulator".postln; - ~klliMicBreath !? {~klliMicBreath[\fx].free}; - ~klliMicBreath !? {~klliMicBreath[\water].stop}; - // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; - // ~klliMicBreath !? {~klliMicBreath[\amp].free}; - ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; - this.executeFile(~sketchdir+/+"breathulator.scd"); - ~breathulatorFx.level = -12.dbamp; - ~breathulatorFx.fadeInTime = 45; - ~breathulatorFx.fadeOutTime = 95; - ~breathulatorFx.play; - ~breathulator[4..7].do(_.play); - }, - 320, { - "trumpetulator".postln; - this.executeFile(~sketchdir+/+"trumpetulator.scd"); - ~trumpetulatorFx.level = -6.dbamp; - ~trumpetulatorFx.fadeInTime = 240; - ~trumpetulatorFx.fadeOutTime = 120; - ~trumpetulatorFx.play; - ~trumpetulator[4..5].do(_.play); - }, - 350, {~breathulator !? {~breathulator[4..5].do(_.free)}}, - 380, {~trumpetulator !? {~trumpetulator[6..7].do(_.play)}}, - 410, { - "breathulator free".postln; - ~breathulatorFx !? {~breathulatorFx.free} - }, - 500, { - ~breathulator !? {~breathulator[6..7].do(_.free)}; - "metals".postln; - this.executeFile(~sketchdir+/+"metals.scd"); - ~metalsFx.do(_.play); - ~metals[4..5].do(_.play); - }, - 645, { - "cellulator".postln; - this.executeFile(~sketchdir+/+"cellulator.scd"); - ~cellulatorFx.do(_.play); - ~cellulator[6..7].do(_.play); - } - ], - function: { - ~cuelist.hook = {|cl| - ~cuelist.timelineRegister[cl.current.asSymbol].stop; - ~klliMicBreath !? {~klliMicBreath[\fx].free}; - // ~klliMicBreath !? {~klliMicBreath[\water].stop}; - // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; - ~klliMicBreath !? {~klliMicBreath[\amp].free}; - ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; - ~breathulatorFx !? {~breathulatorFx.free}; - ~breathulator !? {~breathulator.do(_.free)}; - } +~cuelist = CuePlayer.new(); + +~cuelist.add( + timeline: [ + // 0, {s.record("~/sc-rec/tbo-run"+/+Date.localtime.stamp++".wav")}, + 0, {this.executeFile(~sketchdir+/+"klliMicBreath.scd")}, + 200, {"water starts".postln}, + 260, { + "breathulator".postln; + ~klliMicBreath !? {~klliMicBreath[\fx].free}; + ~klliMicBreath !? {~klliMicBreath[\water].stop}; + // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; + // ~klliMicBreath !? {~klliMicBreath[\amp].free}; + ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; + this.executeFile(~sketchdir+/+"breathulator.scd"); + ~breathulatorFx.level = -12.dbamp; + ~breathulatorFx.fadeInTime = 45; + ~breathulatorFx.fadeOutTime = 95; + ~breathulatorFx.play; + ~breathulator[4..7].do(_.play); + }, + 320, { + "trumpetulator".postln; + this.executeFile(~sketchdir+/+"trumpetulator.scd"); + ~trumpetulatorFx.level = -6.dbamp; + ~trumpetulatorFx.fadeInTime = 240; + ~trumpetulatorFx.fadeOutTime = 120; + ~trumpetulatorFx.play; + ~trumpetulator[4..5].do(_.play); + }, + 350, {~breathulator !? {~breathulator[4..5].do(_.free)}}, + 380, {~trumpetulator !? {~trumpetulator[6..7].do(_.play)}}, + 410, { + "breathulator free".postln; + ~breathulatorFx !? {~breathulatorFx.free} + }, + 500, { + ~breathulator !? {~breathulator[6..7].do(_.free)}; + "metals".postln; + this.executeFile(~sketchdir+/+"metals.scd"); + ~metalsFx.do(_.play); + ~metals[4..5].do(_.play); + }, + 645, { + "cellulator".postln; + this.executeFile(~sketchdir+/+"cellulator.scd"); + ~cellulatorFx.do(_.play); + ~cellulator[6..7].do(_.play); } - ); - ~cuelist.add({"juuuust checking again".postln}); - ~cuelist.add(timeline: - [ - // 0, {s.record("~/sc-rec/tbo-run"+/+Date.localtime.stamp++".wav")}, - 0, {this.executeFile(~sketchdir+/+"klliMicBreath.scd")}, - 300, {"water starts".postln}, - 360, { - "breathulator".postln; - ~klliMicBreath !? {~klliMicBreath[\fx].free}; - ~klliMicBreath !? {~klliMicBreath[\water].stop}; - // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; - // ~klliMicBreath !? {~klliMicBreath[\amp].free}; - ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; - this.executeFile(~sketchdir+/+"breathulator.scd"); - ~breathulatorFx.level = -12.dbamp; - ~breathulatorFx.fadeInTime = 45; - ~breathulatorFx.fadeOutTime = 95; - ~breathulatorFx.play; - ~breathulator[4..7].do(_.play); - }, - 420, { - "trumpetulator".postln; - this.executeFile(~sketchdir+/+"trumpetulator.scd"); - ~trumpetulatorFx.level = -6.dbamp; - ~trumpetulatorFx.fadeInTime = 240; - ~trumpetulatorFx.fadeOutTime = 120; - ~trumpetulatorFx.play; - ~trumpetulator[4..5].do(_.play); - }, - 450, {~breathulator !? {~breathulator[4..5].do(_.free)}}, - 480, {~trumpetulator !? {~trumpetulator[6..7].do(_.play)}}, - 510, { - "breathulator free".postln; - ~breathulatorFx !? {~breathulatorFx.free} - }, - 600, { - ~breathulator !? {~breathulator[6..7].do(_.free)}; - "metals".postln; - this.executeFile(~sketchdir+/+"metals.scd"); - ~metalsFx.do(_.play); - ~metals[4..5].do(_.play); - }, - 645, { - "cellulator".postln; - this.executeFile(~sketchdir+/+"cellulator.scd"); - ~cellulatorFx.do(_.play); - ~cellulator[6..7].do(_.play); - } - ], - function: { - ~cuelist.hook = {|cl| - ~cuelist.timelineRegister[cl.current.asSymbol].stop; - ~klliMicBreath !? {~klliMicBreath[\fx].free}; - ~klliMicBreath !? {~klliMicBreath[\water].stop}; - ~klliMicBreath !? {~klliMicBreath[\osc].clear}; - ~klliMicBreath !? {~klliMicBreath[\amp].free}; - ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; - ~breathulatorFx !? {~breathulatorFx.free}; - ~breathulator !? {~breathulator.do(_.free)}; - } + ], + function: { + ~cuelist.hook = {|cl| + ~cuelist.timelineRegister[cl.current.asSymbol].stop; + ~klliMicBreath !? {~klliMicBreath[\fx].free}; + // ~klliMicBreath !? {~klliMicBreath[\water].stop}; + // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; + ~klliMicBreath !? {~klliMicBreath[\amp].free}; + ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; + ~breathulatorFx !? {~breathulatorFx.free}; + ~breathulator !? {~breathulator.do(_.free)}; } - ); + } +); - // ~cuelist.add({ - // // cleanup - // // cue - // ~kulliEnter = Routine{ - // "corona focus, Külli enter".postln; - // this.executeFile(~sketchdir+/+"coronaWhisperGrain.scd"); - // ~coronaWhisperGrainFx.do(_.fadeOutTime_(60)); - // 45.wait; - // ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.play)}; - // ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.play)}; - // 60.wait; - // this.executeFile(~sketchdir+/+"focus.scd"); - // ~focusFx.do(_.fadeOutTime_(60)); - // ~focusFx.do(_.play); - // ~focus[0].play; - // ~trumpetulatorFx !? {~trumpetulatorFx.free}; - // ~trumpetulator !? {~trumpetulator[4..7].do(_.free)}; - // 45.wait; - // this.executeFile(~sketchdir+/+"mbTreeperculator.scd"); - // ~mbTreeperculatorFx.play; - // ~mbTreeperculator[1].play; - // 10.wait; - // ~mbTreeperculator[2].play; - // 10.wait; - // this.executeFile(~sketchdir+/+"bd.scd"); - // ~bdFx.play; - // ~bd[3].play; - // }.play; - // }); +~cuelist.add( + timeline: [ + // 0, {s.record("~/sc-rec/tbo-run"+/+Date.localtime.stamp++".wav")}, + 0, {this.executeFile(~sketchdir+/+"klliMicBreath.scd")}, + 300, {"water starts".postln}, + 360, { + "breathulator".postln; + ~klliMicBreath !? {~klliMicBreath[\fx].free}; + ~klliMicBreath !? {~klliMicBreath[\water].stop}; + // ~klliMicBreath !? {~klliMicBreath[\osc].clear}; + // ~klliMicBreath !? {~klliMicBreath[\amp].free}; + ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; + this.executeFile(~sketchdir+/+"breathulator.scd"); + ~breathulatorFx.level = -12.dbamp; + ~breathulatorFx.fadeInTime = 45; + ~breathulatorFx.fadeOutTime = 95; + ~breathulatorFx.play; + ~breathulator[4..7].do(_.play); + }, + 420, { + "trumpetulator".postln; + this.executeFile(~sketchdir+/+"trumpetulator.scd"); + ~trumpetulatorFx.level = -6.dbamp; + ~trumpetulatorFx.fadeInTime = 240; + ~trumpetulatorFx.fadeOutTime = 120; + ~trumpetulatorFx.play; + ~trumpetulator[4..5].do(_.play); + }, + 450, {~breathulator !? {~breathulator[4..5].do(_.free)}}, + 480, {~trumpetulator !? {~trumpetulator[6..7].do(_.play)}}, + 510, { + "breathulator free".postln; + ~breathulatorFx !? {~breathulatorFx.free} + }, + 600, { + ~breathulator !? {~breathulator[6..7].do(_.free)}; + "metals".postln; + this.executeFile(~sketchdir+/+"metals.scd"); + ~metalsFx.do(_.play); + ~metals[4..5].do(_.play); + }, + 645, { + "cellulator".postln; + this.executeFile(~sketchdir+/+"cellulator.scd"); + ~cellulatorFx.do(_.play); + ~cellulator[6..7].do(_.play); + } + ], + function: { + ~cuelist.hook = {|cl| + ~cuelist.timelineRegister[cl.current.asSymbol].stop; + ~klliMicBreath !? {~klliMicBreath[\fx].free}; + ~klliMicBreath !? {~klliMicBreath[\water].stop}; + ~klliMicBreath !? {~klliMicBreath[\osc].clear}; + ~klliMicBreath !? {~klliMicBreath[\amp].free}; + ~klliMicBreath !? {~klliMicBreath[\timeline].stop}; + ~breathulatorFx !? {~breathulatorFx.free}; + ~breathulator !? {~breathulator.do(_.free)}; + } + } +); - // ~cuelist.add({ - // // cleanup - // ~kulliEnter.stop; - // ~trumpetulatorFx !? {~trumpetulatorFx.free}; - // ~trumpetulator !? {~trumpetulator[4..7].do(_.free)}; - // ~cellulatorFx !? {~cellulatorFx.do(_.free)}; - // ~cellulator !? {~cellulator[6..7].do(_.free)}; - // ~metalsFx !? {~metalsFx.do(_.free)}; - // ~metals !? {~metals[4..5].do(_.free)}; - // ~mbTreeperculatorFx !? {~mbTreeperculatorFx.free}; - // ~mbTreeperculator !? {~mbTreeperculator.do(_.free)}; - // ~bdFx !? {~bdFx.free}; - // ~bd !? {~bd[3].free}; - // // cue - // ~whisperToThinkingSpace = Routine{ - // "kenneth exit, kulli whisper solo".postln; - // this.executeFile(~sketchdir+/+"mbLooper.scd"); - // ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.free)}; - // ~focusFx !? {~focusFx.do(_.free)}; - // 60.wait; - // ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.free)}; - // ~focus !? {~focus[0].free}; - // }.play; - // }); +// ~cuelist.add({ +// // cleanup +// // cue +// ~kulliEnter = Routine{ +// "corona focus, Külli enter".postln; +// this.executeFile(~sketchdir+/+"coronaWhisperGrain.scd"); +// ~coronaWhisperGrainFx.do(_.fadeOutTime_(60)); +// 45.wait; +// ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.play)}; +// ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.play)}; +// 60.wait; +// this.executeFile(~sketchdir+/+"focus.scd"); +// ~focusFx.do(_.fadeOutTime_(60)); +// ~focusFx.do(_.play); +// ~focus[0].play; +// ~trumpetulatorFx !? {~trumpetulatorFx.free}; +// ~trumpetulator !? {~trumpetulator[4..7].do(_.free)}; +// 45.wait; +// this.executeFile(~sketchdir+/+"mbTreeperculator.scd"); +// ~mbTreeperculatorFx.play; +// ~mbTreeperculator[1].play; +// 10.wait; +// ~mbTreeperculator[2].play; +// 10.wait; +// this.executeFile(~sketchdir+/+"bd.scd"); +// ~bdFx.play; +// ~bd[3].play; +// }.play; +// }); - // ~cuelist.add({ - // // cleanup - // ~whisperToThinkingSpace.stop; - // ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.free)}; - // ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.free)}; - // ~focusFx !? {~focusFx.do(_.free)}; - // ~focus !? {~focus[0].free}; - // // cue - // ~duets = Routine{ - // "kenneth enter into duet".postln; - // 30.wait; - // this.executeFile(~sketchdir+/+"mbFM.scd"); - // ~mbFMFx.play; - // ~mbFM.do(_.play); - // 45.wait; - // ~mbLooperFx !? {~mbLooperFx.free}; - // ~mbLooper !? {~mbLooper[0..3].do(_.free)}; - // 105.wait; - // this.executeFile(~sketchdir+/+"mbEarthulator.scd"); - // ~mbEarthulatorFx.level = -26.dbamp; - // ~mbEarthulatorFx.fadeInTime = 20; - // ~mbEarthulatorFx.fadeOutTime = 40; - // ~mbEarthulatorFx.play; - // ~mbEarthulator.do(_.play); - // 40.wait; - // this.executeFile(~sketchdir+/+"angelReverb.scd"); - // ~angelReverbFx.do(_.fadeInTime(45)); - // ~angelReverbFx.do(_.fadeOutTime(60)); - // ~angelReverbFx.do(_.level( -60.dbamp )); - // ~angelReverbFx.do(_.play); - // ~angelReverb[0].play; - // ~mbEarthulatorFx !? {x.free}; - // ~mbEarthulator !? {~mbEarthulator.do(_.free)}; - // 80.wait; - // ~angelReverbFx !? {~angelReverbFx.do(_.free)}; - // ~angelReverb !? {~angelReverb[0..1].do(_.free)}; - // this.executeFile(~sketchdir+/+"mbEarthulator.scd"); - // ~mbEarthulatorFx.level = 0.dbamp; - // ~mbEarthulatorFx.fadeInTime = 30; - // ~mbEarthulatorFx.fadeOutTime = 90; - // ~mbEarthulatorFx.play; - // ~mbEarthulator.do(_.play); - // 60.wait; - // ~mbFMFx !? {~mbFMFx.free}; - // ~mbFM !? {~mbFM.do(_.free)}; - // 90.wait; - // ~mbEarthulatorFx !? {~mbEarthulatorFx.free}; - // "stomach duet".postln; - // this.executeFile(~sketchdir+/+"mbLeavulator.scd"); - // ~mbLeavulatorFx.do(_.fadeOutTime_(60)); - // ~mbLeavulatorFx.do(_.play); - // ~mbLeavulator.do(_.play); - // 90.wait; - // ~mbEarthulator !? {~mbEarthulator.do(_.free)}; - // 170.wait; - // "birdgirl".postln; - // this.executeFile(~sketchdir+/+"birdGirl.scd"); - // ~birdGirlFx.do(_.fadeInTime_(150)); - // ~birdGirlFx.do(_.level_(0.dbamp)); - // ~birdGirlFx.do(_.play); - // ~birdGirl[0..1].do(_.play); - // ~mbLeavulator !? {~mbLeavulator[0..1].do(_.free)}; - // 120.wait; - // ~mbLeavulatorFx !? {~mbLeavulatorFx.do(_.free)}; - // 60.wait; - // ~mbLeavulator !? {~mbLeavulator[2..7].do(_.free)}; - // }.play; - // }); +// ~cuelist.add({ +// // cleanup +// ~kulliEnter.stop; +// ~trumpetulatorFx !? {~trumpetulatorFx.free}; +// ~trumpetulator !? {~trumpetulator[4..7].do(_.free)}; +// ~cellulatorFx !? {~cellulatorFx.do(_.free)}; +// ~cellulator !? {~cellulator[6..7].do(_.free)}; +// ~metalsFx !? {~metalsFx.do(_.free)}; +// ~metals !? {~metals[4..5].do(_.free)}; +// ~mbTreeperculatorFx !? {~mbTreeperculatorFx.free}; +// ~mbTreeperculator !? {~mbTreeperculator.do(_.free)}; +// ~bdFx !? {~bdFx.free}; +// ~bd !? {~bd[3].free}; +// // cue +// ~whisperToThinkingSpace = Routine{ +// "kenneth exit, kulli whisper solo".postln; +// this.executeFile(~sketchdir+/+"mbLooper.scd"); +// ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.free)}; +// ~focusFx !? {~focusFx.do(_.free)}; +// 60.wait; +// ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.free)}; +// ~focus !? {~focus[0].free}; +// }.play; +// }); - // ~cuelist.add({ - // // cleanup - // ~duets.stop; - // ~mbLooperFx !? {x.free}; - // ~mbLooper !? {~mbLooper[0..3].do(_.free)}; - // ~mbEarthulatorFx !? {x.free}; - // ~mbEarthulator !? {~mbEarthulator.do(_.free)}; - // ~angelReverbFx !? {~angelReverbFx.do(_.free)}; - // ~angelReverb !? {~angelReverb[0..1].do(_.free)}; - // // cue - // ~doubling = Routine { - // "doubling happening".postln; - // ~birdGirlFx !? {~birdGirlFx.do(_.free)}; - // ~birdGirl !? {~birdGirl[0..1].do(_.free)}; - // 60.wait; - // this.executeFile(~sketchdir+/+"unisonoBubbles.scd"); - // ~unisonoBubblesFx.play; - // ~unisonoBubbles[2..3].do(_.play); - // ~unisonoBubbles[6..7].do(_.play); - // 30.wait; - // this.executeFile(~sketchdir+/+"patBubbles.scd"); - // 40.wait; - // this.executeFile(~sketchdir+/+"mbShh.scd"); - // ~mbShhFx.play; - // ~mbShh[0].play; - // ~mbShh[4].play; - // 30.wait; - // this.executeFile(~sketchdir+/+"numbers.scd"); - // ~numbersFx.level = -12.dbamp; - // ~numbersFx.fadeInTime = 60; - // ~numbersFx.fadeInTime = 90; - // ~numbersFx.play; - // ~numbers[5].play; - // this.executeFile(~sketchdir+/+"talkulator.scd"); - // ~talkulatorFx.play; - // ~talkulator[1].play; - // this.executeFile(~sketchdir+/+"bd.scd"); - // ~bdFx.play; - // ~bd[2].play; - // ~bd[6].play; - // }.play; - // }); +// ~cuelist.add({ +// // cleanup +// ~whisperToThinkingSpace.stop; +// ~coronaWhisperGrainFx !? {~coronaWhisperGrainFx.do(_.free)}; +// ~coronaWhisperGrain !? {~coronaWhisperGrain[1..3].do(_.free)}; +// ~focusFx !? {~focusFx.do(_.free)}; +// ~focus !? {~focus[0].free}; +// // cue +// ~duets = Routine{ +// "kenneth enter into duet".postln; +// 30.wait; +// this.executeFile(~sketchdir+/+"mbFM.scd"); +// ~mbFMFx.play; +// ~mbFM.do(_.play); +// 45.wait; +// ~mbLooperFx !? {~mbLooperFx.free}; +// ~mbLooper !? {~mbLooper[0..3].do(_.free)}; +// 105.wait; +// this.executeFile(~sketchdir+/+"mbEarthulator.scd"); +// ~mbEarthulatorFx.level = -26.dbamp; +// ~mbEarthulatorFx.fadeInTime = 20; +// ~mbEarthulatorFx.fadeOutTime = 40; +// ~mbEarthulatorFx.play; +// ~mbEarthulator.do(_.play); +// 40.wait; +// this.executeFile(~sketchdir+/+"angelReverb.scd"); +// ~angelReverbFx.do(_.fadeInTime(45)); +// ~angelReverbFx.do(_.fadeOutTime(60)); +// ~angelReverbFx.do(_.level( -60.dbamp )); +// ~angelReverbFx.do(_.play); +// ~angelReverb[0].play; +// ~mbEarthulatorFx !? {x.free}; +// ~mbEarthulator !? {~mbEarthulator.do(_.free)}; +// 80.wait; +// ~angelReverbFx !? {~angelReverbFx.do(_.free)}; +// ~angelReverb !? {~angelReverb[0..1].do(_.free)}; +// this.executeFile(~sketchdir+/+"mbEarthulator.scd"); +// ~mbEarthulatorFx.level = 0.dbamp; +// ~mbEarthulatorFx.fadeInTime = 30; +// ~mbEarthulatorFx.fadeOutTime = 90; +// ~mbEarthulatorFx.play; +// ~mbEarthulator.do(_.play); +// 60.wait; +// ~mbFMFx !? {~mbFMFx.free}; +// ~mbFM !? {~mbFM.do(_.free)}; +// 90.wait; +// ~mbEarthulatorFx !? {~mbEarthulatorFx.free}; +// "stomach duet".postln; +// this.executeFile(~sketchdir+/+"mbLeavulator.scd"); +// ~mbLeavulatorFx.do(_.fadeOutTime_(60)); +// ~mbLeavulatorFx.do(_.play); +// ~mbLeavulator.do(_.play); +// 90.wait; +// ~mbEarthulator !? {~mbEarthulator.do(_.free)}; +// 170.wait; +// "birdgirl".postln; +// this.executeFile(~sketchdir+/+"birdGirl.scd"); +// ~birdGirlFx.do(_.fadeInTime_(150)); +// ~birdGirlFx.do(_.level_(0.dbamp)); +// ~birdGirlFx.do(_.play); +// ~birdGirl[0..1].do(_.play); +// ~mbLeavulator !? {~mbLeavulator[0..1].do(_.free)}; +// 120.wait; +// ~mbLeavulatorFx !? {~mbLeavulatorFx.do(_.free)}; +// 60.wait; +// ~mbLeavulator !? {~mbLeavulator[2..7].do(_.free)}; +// }.play; +// }); - // ~cuelist.add({ - // "micswing".postln; - // // cleanup - // ~patBubblesFx !? {~patBubblesFx.free}; - // ~patBubbles.stop; - // ~unisonoBubblesFx !? {~unisonoBubblesFx.free}; - // ~unisonoBubbles !? {~unisonoBubbles[2..3].do(_.free)}; - // ~unisonoBubbles !? {~unisonoBubbles[6..7].do(_.free)}; - // ~talkulatorFx !? {~talkulatorFx.free}; - // ~talkulator !? {~talkulator[1].free}; - // ~bdFx !? {~bdFx.free}; - // ~bd !? {~bd[2].free}; - // ~bd !? {~bd[6].free}; - // ~numbersFx !? {~numbersFx.free}; - // ~numbers !? {~numbers[5].free}; - // ~mbShh !? {~mbShh.do(_.free)}; - // ~mbShhFx !? {~mbShhFx.free}; - // ~doubling.stop; - // // cue - // ~micSwinging = Routine{ - // 20.wait; - // this.executeFile(~sketchdir+/+"numberCircleMic.scd") - // }.play; - // }); +// ~cuelist.add({ +// // cleanup +// ~duets.stop; +// ~mbLooperFx !? {x.free}; +// ~mbLooper !? {~mbLooper[0..3].do(_.free)}; +// ~mbEarthulatorFx !? {x.free}; +// ~mbEarthulator !? {~mbEarthulator.do(_.free)}; +// ~angelReverbFx !? {~angelReverbFx.do(_.free)}; +// ~angelReverb !? {~angelReverb[0..1].do(_.free)}; +// // cue +// ~doubling = Routine { +// "doubling happening".postln; +// ~birdGirlFx !? {~birdGirlFx.do(_.free)}; +// ~birdGirl !? {~birdGirl[0..1].do(_.free)}; +// 60.wait; +// this.executeFile(~sketchdir+/+"unisonoBubbles.scd"); +// ~unisonoBubblesFx.play; +// ~unisonoBubbles[2..3].do(_.play); +// ~unisonoBubbles[6..7].do(_.play); +// 30.wait; +// this.executeFile(~sketchdir+/+"patBubbles.scd"); +// 40.wait; +// this.executeFile(~sketchdir+/+"mbShh.scd"); +// ~mbShhFx.play; +// ~mbShh[0].play; +// ~mbShh[4].play; +// 30.wait; +// this.executeFile(~sketchdir+/+"numbers.scd"); +// ~numbersFx.level = -12.dbamp; +// ~numbersFx.fadeInTime = 60; +// ~numbersFx.fadeInTime = 90; +// ~numbersFx.play; +// ~numbers[5].play; +// this.executeFile(~sketchdir+/+"talkulator.scd"); +// ~talkulatorFx.play; +// ~talkulator[1].play; +// this.executeFile(~sketchdir+/+"bd.scd"); +// ~bdFx.play; +// ~bd[2].play; +// ~bd[6].play; +// }.play; +// }); - // ~cuelist.add({ - // ~micSwinging.stop; - // ~piano = Routine{ - // var xTime = 90; - // ~free[\numberCircleMic].(); - // "arvo".postln; - // this.executeFile(~sketchdir+/+"arvo2.scd"); - // ~arvo2Fx.fadeOutTime = xTime; - // ~arvo2Fx.play; - // ~arvo2[0..2].do(_.play); - // 90.wait; - // ~arvo2Fx !? {~arvo2Fx.free}; - // this.executeFile(~sketchdir+/+"arvoLow.scd"); - // ~arvoLowFx.fadeInTime = xTime; - // ~arvoLowFx.fadeOutTime = 120; - // ~arvoLowFx.play; - // ~arvoLow[0..2].do(_.play); - // xTime.wait; - // ~arvo2 !? {~arvo2[0..3].do(_.free)}; - // 90.wait; - // "arvodist starts".postln; - // ~arvoLowFx !? {~arvoLowFx.free}; - // this.executeFile(~sketchdir+/+"arvoDist.scd"); - // ~arvoDistFx.fadeInTime = 120; - // ~arvoDistFx.fadeOutTime = xTime; - // ~arvoDistFx.play; - // ~arvoDist[0..2].do(_.play); - // xTime.wait; - // ~arvoLow !? {~arvoLow[0..3].do(_.free)}; - // }.play; - // }); +// ~cuelist.add({ +// "micswing".postln; +// // cleanup +// ~patBubblesFx !? {~patBubblesFx.free}; +// ~patBubbles.stop; +// ~unisonoBubblesFx !? {~unisonoBubblesFx.free}; +// ~unisonoBubbles !? {~unisonoBubbles[2..3].do(_.free)}; +// ~unisonoBubbles !? {~unisonoBubbles[6..7].do(_.free)}; +// ~talkulatorFx !? {~talkulatorFx.free}; +// ~talkulator !? {~talkulator[1].free}; +// ~bdFx !? {~bdFx.free}; +// ~bd !? {~bd[2].free}; +// ~bd !? {~bd[6].free}; +// ~numbersFx !? {~numbersFx.free}; +// ~numbers !? {~numbers[5].free}; +// ~mbShh !? {~mbShh.do(_.free)}; +// ~mbShhFx !? {~mbShhFx.free}; +// ~doubling.stop; +// // cue +// ~micSwinging = Routine{ +// 20.wait; +// this.executeFile(~sketchdir+/+"numberCircleMic.scd") +// }.play; +// }); - // ~cuelist.add({ - // // cleanup - // ~arvo2 !? {~arvo2[0..2].do(_.free)}; - // ~arvo2Fx !? {~arvo2Fx.free}; - // ~arvoLowFx !? {~arvoLowFx.free}; - // ~arvoLow !? {~arvoLow[0..2].do(_.free)}; - // // cue - // ~kennethStopsKlli = Routine{ - // "kenneth stops Klli".postln; - // 15.wait; - // ~arvoDistFx !? {~arvoDistFx.free}; - // 30.wait; - // ~arvoDist !? {~arvoDist[0..2].do(_.free)}; - // this.executeFile(~sketchdir+/+"runningWater.scd"); - // ~runningWaterFx.play; - // ~runningWater[4..7].do(_.play); - // this.executeFile(~sketchdir+/+"velcroClean.scd"); - // ~velcroCleanFx.play; - // ~velcroClean[0..3].do(_.play); - // 30.wait; - // this.executeFile(~sketchdir+/+"micLongReverb.scd"); - // }.play; - // }); +// ~cuelist.add({ +// ~micSwinging.stop; +// ~piano = Routine{ +// var xTime = 90; +// ~free[\numberCircleMic].(); +// "arvo".postln; +// this.executeFile(~sketchdir+/+"arvo2.scd"); +// ~arvo2Fx.fadeOutTime = xTime; +// ~arvo2Fx.play; +// ~arvo2[0..2].do(_.play); +// 90.wait; +// ~arvo2Fx !? {~arvo2Fx.free}; +// this.executeFile(~sketchdir+/+"arvoLow.scd"); +// ~arvoLowFx.fadeInTime = xTime; +// ~arvoLowFx.fadeOutTime = 120; +// ~arvoLowFx.play; +// ~arvoLow[0..2].do(_.play); +// xTime.wait; +// ~arvo2 !? {~arvo2[0..3].do(_.free)}; +// 90.wait; +// "arvodist starts".postln; +// ~arvoLowFx !? {~arvoLowFx.free}; +// this.executeFile(~sketchdir+/+"arvoDist.scd"); +// ~arvoDistFx.fadeInTime = 120; +// ~arvoDistFx.fadeOutTime = xTime; +// ~arvoDistFx.play; +// ~arvoDist[0..2].do(_.play); +// xTime.wait; +// ~arvoLow !? {~arvoLow[0..3].do(_.free)}; +// }.play; +// }); - // ~cuelist.add({ - // ~kennethStopsKlli.stop; - // ~arvoDistFx !? {~arvoDistFx.free}; - // ~arvoDist !? {~arvoDist[0..3].do(_.free)}; - // ~kllifourmics = Routine{ - // "külli four mic meditation".postln; - // this.executeFile(~sketchdir+/+"stormEye.scd"); - // this.executeFile(~sketchdir+/+"stormEyeSingleChain.scd"); - // this.executeFile(~sketchdir+/+"stormEyeSingleChain1.scd"); - // this.executeFile(~sketchdir+/+"stormEyeSingleChain2.scd"); - // }.play; - // }); +// ~cuelist.add({ +// // cleanup +// ~arvo2 !? {~arvo2[0..2].do(_.free)}; +// ~arvo2Fx !? {~arvo2Fx.free}; +// ~arvoLowFx !? {~arvoLowFx.free}; +// ~arvoLow !? {~arvoLow[0..2].do(_.free)}; +// // cue +// ~kennethStopsKlli = Routine{ +// "kenneth stops Klli".postln; +// 15.wait; +// ~arvoDistFx !? {~arvoDistFx.free}; +// 30.wait; +// ~arvoDist !? {~arvoDist[0..2].do(_.free)}; +// this.executeFile(~sketchdir+/+"runningWater.scd"); +// ~runningWaterFx.play; +// ~runningWater[4..7].do(_.play); +// this.executeFile(~sketchdir+/+"velcroClean.scd"); +// ~velcroCleanFx.play; +// ~velcroClean[0..3].do(_.play); +// 30.wait; +// this.executeFile(~sketchdir+/+"micLongReverb.scd"); +// }.play; +// }); - // ~cuelist.add({ - // ~endShow = Routine{ - // "free all mics".postln; - // ~stormEye !? {~stormEye[\free].()}; - // ~stormEyeSingleChain !? {~stormEyeSingleChain[\free].()}; - // ~stormEyeSingleChain1 !? {~stormEyeSingleChain1[\free].()}; - // ~stormEyeSingleChain2 !? {~stormEyeSingleChain2[\free].()}; - // ~micLongReverbFx !? {~micLongReverbFx.free}; - // ~runningWaterFx.free; - // ~runningWater[4..7].do(_.free); - // ~velcroCleanFx.free; - // ~velcroClean[0..3].do(_.free); - // 20.wait; - // s.stopRecording; - // } - // }); +// ~cuelist.add({ +// ~kennethStopsKlli.stop; +// ~arvoDistFx !? {~arvoDistFx.free}; +// ~arvoDist !? {~arvoDist[0..3].do(_.free)}; +// ~kllifourmics = Routine{ +// "külli four mic meditation".postln; +// this.executeFile(~sketchdir+/+"stormEye.scd"); +// this.executeFile(~sketchdir+/+"stormEyeSingleChain.scd"); +// this.executeFile(~sketchdir+/+"stormEyeSingleChain1.scd"); +// this.executeFile(~sketchdir+/+"stormEyeSingleChain2.scd"); +// }.play; +// }); +// ~cuelist.add({ +// ~endShow = Routine{ +// "free all mics".postln; +// ~stormEye !? {~stormEye[\free].()}; +// ~stormEyeSingleChain !? {~stormEyeSingleChain[\free].()}; +// ~stormEyeSingleChain1 !? {~stormEyeSingleChain1[\free].()}; +// ~stormEyeSingleChain2 !? {~stormEyeSingleChain2[\free].()}; +// ~micLongReverbFx !? {~micLongReverbFx.free}; +// ~runningWaterFx.free; +// ~runningWater[4..7].do(_.free); +// ~velcroCleanFx.free; +// ~velcroClean[0..3].do(_.free); +// 20.wait; +// s.stopRecording; +// } +// }); - //touchOsc as cue trigger - OSCdef(\cue, {{~cuelist.next}.defer}, "/1/cue"); - // LaunchPad as cue trigger. Can run at the same time as OSCdef... - if(~hasLaunchPad){ - LPButton.new(8, onFunc: {{~cuelist.next}.defer}); - }; +//touchOsc as cue trigger +OSCdef(\cue, {{~cuelist.next}.defer}, "/1/cue"); - // ~cuelist.gui( - // monitorInChannels: s.options.numInputBusChannels, - // monitorOutChannels: s.options.numOutputBusChannels, - // options:( - // shortcuts:true, - // metronome: false, - // ) - // ); +// LaunchPad as cue trigger. Can run at the same time as OSCdef... +if(~hasLaunchPad){ + LPButton.new(8, onFunc: {{~cuelist.next}.defer}); +}; + +// ~cuelist.gui( +// monitorInChannels: s.options.numInputBusChannels, +// monitorOutChannels: s.options.numOutputBusChannels, +// options:( +// shortcuts:true, +// metronome: false, +// ) +// ); ) // t = 0; // ~testTimeline = Timeline.new; @@ -433,3 +433,4 @@ // ~cuelist.fastForwardTimeline.functionList; // ~cuelist.cueList[1]; // [].pairsDo{|i|i.postln} + diff --git a/sketches/bufreadwrite.scd b/sketches/bufreadwrite.scd new file mode 100644 index 0000000..2850100 --- /dev/null +++ b/sketches/bufreadwrite.scd @@ -0,0 +1,28 @@ +( +a = Array.fill(44100, { 0 }); +b = Buffer.loadCollection(s, a); +) + +// mouse control for sin freq and rate deviation + +( +SynthDef("bufFb", {|out=0, rate=1, amp = 0.1| +var in, signal; +in = LocalIn.ar(1) * 0.99 + SinOsc.ar(LFNoise1.kr.range(100, 2000)); +BufWr.ar(in, b.bufnum, Phasor.ar(0, BufRateScale.kr(0) * MouseX.kr(0.99, +1.01).poll, 0, BufFrames.kr(0))); +signal = BufRd.ar(1, b.bufnum, Phasor.ar(0, BufRateScale.kr(0) * rate, 0, +BufFrames.kr(0))); +// LocalOut.ar(signal.tanh); +LocalOut.ar(signal); +OffsetOut.ar(out, Limiter.ar(signal) * amp); +}).add +) + +x = Synth("bufFb") + +x.free + + + +linlin diff --git a/sketches/coronaBreath.scd b/sketches/coronaBreath.scd index 3562429..45e4c70 100644 --- a/sketches/coronaBreath.scd +++ b/sketches/coronaBreath.scd @@ -1,5 +1,4 @@ ( - // var mix = KFEnv.new([0, 0.3], [90], 5); ~coronaBreathFx = List.new(0); 2.do{ @@ -28,19 +27,19 @@ \hishelffreq, 400, ]); ////--------------------------------------------------------- - ~coronaBreathFx[1].add(\compressor, [ - \ratio, 4, - \threshold, -12.dbamp, - ]); - ~coronaBreathFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.3, - ]); - ~coronaBreathFx[1].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - \hishelffreq, 400, - ]); + ~coronaBreathFx[1].add(\compressor, [ + \ratio, 4, + \threshold, -12.dbamp, + ]); + ~coronaBreathFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.3, + ]); + ~coronaBreathFx[1].add(\eq, [ + \locut, 120, + \hishelfdb, -6, + \hishelffreq, 400, + ]); //--------------------------------------------------------- ~coronaBreathFx[2].add(\greyhole, [ \delayTime, 0.3, @@ -70,7 +69,7 @@ startPos = 0; pos = (startPos, (startPos+step)..(startPos+len)); pos = pos.select({|i| i < numFrames}); - + rate = 1; attack = 0.2; release = 0.5; @@ -101,16 +100,17 @@ ); }; ) -// ( -// // s.record("/home/kf/sc/100-sketches/videos/audio/coronaBreath" ++ Date.getDate.stamp ++".wav"); -// ~coronaBreathFx.do(_.play); -// ~coronaBreath.do(_.play); -// ) -// ( -// ~coronaBreathFx.do(_.free); -// ~coronaBreath.do(_.free); -// // SystemClock.sched(10, {s.stopRecording}); -// ) + +( + // s.record("/home/kf/sc/100-sketches/videos/audio/coronaBreath" ++ Date.getDate.stamp ++".wav"); + ~coronaBreathFx.do(_.play); + ~coronaBreath.do(_.play); +) +( + ~coronaBreathFx.do(_.free); + ~coronaBreath.do(_.free); + // SystemClock.sched(10, {s.stopRecording}); +) // s.plotTree // ~buf[\coronaWhisper]; diff --git a/sketches/coronaGlobal.scd b/sketches/coronaGlobal.scd index 2de3641..5769532 100644 --- a/sketches/coronaGlobal.scd +++ b/sketches/coronaGlobal.scd @@ -1,37 +1,37 @@ ( - this.executeFile(~sketchdir+/+"coronaWhisperGrain.scd"); - this.executeFile(~sketchdir+/+"coronaBreath.scd"); - this.executeFile(~sketchdir+/+"brPiano.scd"); - this.executeFile(~sketchdir+/+"coronaWhisperGrainKenneth.scd"); - this.executeFile(~sketchdir+/+"rainulator.scd"); - this.executeFile(~sketchdir+/+"stormulator.scd"); +this.executeFile(~sketchdir+/+"coronaWhisperGrain.scd"); +this.executeFile(~sketchdir+/+"coronaBreath.scd"); +this.executeFile(~sketchdir+/+"brPiano.scd"); +this.executeFile(~sketchdir+/+"coronaWhisperGrainKenneth.scd"); +this.executeFile(~sketchdir+/+"rainulator.scd"); +this.executeFile(~sketchdir+/+"stormulator.scd"); - ~coronaWhisperGrainFx.do(_.play); - ~brPianoFx.do(_.play); - ~coronaBreathFx.do(_.play); - ~coronaWhisperGrainKennethFx.do(_.play); - ~rainulatorFx.play; - ~stormulatorFx.play; +~coronaWhisperGrainFx.do(_.play); +~brPianoFx.do(_.play); +~coronaBreathFx.do(_.play); +~coronaWhisperGrainKennethFx.do(_.play); +~rainulatorFx.play; +~stormulatorFx.play; - ~coronaWhisperGrain[0].play; - ~brPiano[1].play; - ~coronaBreath[2].play; - ~coronaWhisperGrainKenneth[4].play; - ~rainulator[6].play; - ~stormulator[7].play; +~coronaWhisperGrain[0].play; +~brPiano[1].play; +~coronaBreath[2].play; +~coronaWhisperGrainKenneth[4].play; +~rainulator[6].play; +~stormulator[7].play; ) ( - ~coronaWhisperGrainFx.do(_.free); - ~brPianoFx.do(_.free); - ~coronaBreathFx.do(_.free); - ~coronaWhisperGrainKennethFx.do(_.free); - ~rainulatorFx.free; - ~stormulatorFx.free; +~coronaWhisperGrainFx.do(_.free); +~brPianoFx.do(_.free); +~coronaBreathFx.do(_.free); +~coronaWhisperGrainKennethFx.do(_.free); +~rainulatorFx.free; +~stormulatorFx.free; - ~coronaWhisperGrain[0].free; - ~brPiano[1].free; - ~coronaBreath[2].free; - ~coronaWhisperGrainKenneth[4].free; - ~rainulator[6].free; - ~stormulator[7].free; +~coronaWhisperGrain[0].free; +~brPiano[1].free; +~coronaBreath[2].free; +~coronaWhisperGrainKenneth[4].free; +~rainulator[6].free; +~stormulator[7].free; ) diff --git a/sketches/coronaWhisper.scd b/sketches/coronaWhisper.scd index 41cc974..eade78f 100644 --- a/sketches/coronaWhisper.scd +++ b/sketches/coronaWhisper.scd @@ -1,45 +1,47 @@ ( - ~coronaWhisperFx = FxChain.new( - fadeInTime: 5, - level: 0.dbamp, - fadeOutTime: 5, - out: ~masterBus, - ); - ~coronaWhisperFx.add(\eq, [ - \locut, 60, - ]); - ~coronaWhisperFx.add(\jpverb, [ - \mix, 0.3, - \revtime, 3, - ]); +~coronaWhisperFx = FxChain.new( + fadeInTime: 5, + level: 0.dbamp, + fadeOutTime: 5, + out: ~masterBus, +); +~coronaWhisperFx.add(\eq, [ + \locut, 60, +]); +~coronaWhisperFx.add(\jpverb, [ + \mix, 0.3, + \revtime, 3, +]); - ~coronaWhisper = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.07, - minibeeID: id, - minAmp: -30, - maxAmp: -6, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\coronaWhisper]), - \dur, Pfunc({|ev| ev.buf.duration * 0.5 }), - \release, Pkey(\dur) * 2, - \loop, 0, - \legato, 0.8, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0), - \out, ~coronaWhisperFx.in, - \group, ~coronaWhisperFx.group, - ).play; - } - ); - }; +~coronaWhisper = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.07, + minibeeID: id, + minAmp: -30, + maxAmp: -6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\coronaWhisper]), + \dur, Pfunc({|ev| ev.buf.duration * 0.5 }), + \release, Pkey(\dur) * 2, + \loop, 0, + \legato, 0.8, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0), + \out, ~coronaWhisperFx.in, + \group, ~coronaWhisperFx.group, + ).play; + } + ); +}; ) + // ( // ~coronaWhisperFx.play; -// ~coronaWhisper.do(_.play); +// ~coronaWhisper[0..1].do(_.play); +// // ~coronaWhisper.do(_.play); // ) // ( // ~coronaWhisperFx.free; diff --git a/sketches/coronaWhisperGrain.scd b/sketches/coronaWhisperGrain.scd index 95b3864..f6e84f4 100644 --- a/sketches/coronaWhisperGrain.scd +++ b/sketches/coronaWhisperGrain.scd @@ -25,19 +25,19 @@ \hishelffreq, 400, ]); ////--------------------------------------------------------- - ~coronaWhisperGrainFx[1].add(\compressor, [ - \ratio, 4, - \threshold, -12.dbamp, - ]); - ~coronaWhisperGrainFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.3, - ]); - ~coronaWhisperGrainFx[1].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - \hishelffreq, 400, - ]); + ~coronaWhisperGrainFx[1].add(\compressor, [ + \ratio, 4, + \threshold, -12.dbamp, + ]); + ~coronaWhisperGrainFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.3, + ]); + ~coronaWhisperGrainFx[1].add(\eq, [ + \locut, 120, + \hishelfdb, -6, + \hishelffreq, 400, + ]); //--------------------------------------------------------- ~coronaWhisperGrainFx[2].add(\greyhole, [ \delayTime, 0.3, @@ -93,16 +93,12 @@ ); }; ) + // ( -// // s.record("/home/kf/sc/100-sketches/videos/audio/coronaWhisperGrain" ++ Date.getDate.stamp ++".wav"); // ~coronaWhisperGrainFx.do(_.play); // ~coronaWhisperGrain.do(_.play); // ) // ( // ~coronaWhisperGrainFx.do(_.free); // ~coronaWhisperGrain.do(_.free); -// // SystemClock.sched(10, {s.stopRecording}); // ) - -// s.plotTree -// ~buf[\coronaWhisper]; diff --git a/sketches/coronaWhisperGrainKenneth.scd b/sketches/coronaWhisperGrainKenneth.scd index 133c023..2e5836a 100644 --- a/sketches/coronaWhisperGrainKenneth.scd +++ b/sketches/coronaWhisperGrainKenneth.scd @@ -1,110 +1,107 @@ -( - // var mix = KFEnv.new([0, 0.3], [90], 5); - - ~coronaWhisperGrainKennethFx = List.new(0); - 2.do{ - ~coronaWhisperGrainKennethFx.add( - FxChain.new( - fadeInTime: 5, - level: -22.dbamp, - fadeOutTime: 5, - out: ~masterBus, - ); +( +~coronaWhisperGrainKennethFx = List.new(0); +2.do{ + ~coronaWhisperGrainKennethFx.add( + FxChain.new( + fadeInTime: 5, + level: -9.dbamp, + fadeOutTime: 5, + out: ~masterBus, ); - }; - ~coronaWhisperGrainKennethFx[0].add(\compressor, [ - \ratio, 4, - \threshold, -12.dbamp, - ]); - ~coronaWhisperGrainKennethFx[0].addPar( - \comb, [\mix, 0.2, \delay, 0.17, \decay, 4, \amp, 1/3], - \comb, [\mix, 0.2, \delay, 0.3, \decay, 4, \amp, 1/3], - \comb, [\mix, 0.2, \delay, 0.4, \decay, 4, \amp, 1/3], - ); - ~coronaWhisperGrainKennethFx[0].add(\eq, [ - \locut, 220, - \hishelfdb, -6, - \hishelffreq, 400, - ]); - ////--------------------------------------------------------- - ~coronaWhisperGrainKennethFx[1].add(\compressor, [ - \ratio, 4, - \threshold, -12.dbamp, - ]); - ~coronaWhisperGrainKennethFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.3, - ]); - ~coronaWhisperGrainKennethFx[1].add(\eq, [ - \locut, 220, - \hishelfdb, -6, - \hishelffreq, 400, - ]); - ////--------------------------------------------------------- - ~coronaWhisperGrainKennethFx[2].add(\greyhole, [ - \delayTime, 0.3, - \feedback, 0.7, - \mix, 0.3 - ]); - //--------------------------------------------------------- + ); +}; +~coronaWhisperGrainKennethFx[0].add(\compressor, [ + \ratio, 4, + \threshold, -12.dbamp, +]); +~coronaWhisperGrainKennethFx[0].addPar( + \comb, [\mix, 0.2, \delay, 0.17, \decay, 4, \amp, 1/3], + \comb, [\mix, 0.2, \delay, 0.3, \decay, 4, \amp, 1/3], + \comb, [\mix, 0.2, \delay, 0.4, \decay, 4, \amp, 1/3], +); +~coronaWhisperGrainKennethFx[0].add(\eq, [ + \locut, 220, + \hishelfdb, -6, + \hishelffreq, 400, +]); +////--------------------------------------------------------- +~coronaWhisperGrainKennethFx[1].add(\compressor, [ + \ratio, 4, + \threshold, -12.dbamp, +]); +~coronaWhisperGrainKennethFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.3, +]); +~coronaWhisperGrainKennethFx[1].add(\eq, [ + \locut, 220, + \hishelfdb, -6, + \hishelffreq, 400, +]); +////--------------------------------------------------------- +~coronaWhisperGrainKennethFx[2].add(\greyhole, [ + \delayTime, 0.3, + \feedback, 0.7, + \mix, 0.3 +]); +//--------------------------------------------------------- - ~coronaWhisperGrainKenneth = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.02, - minibeeID: id, - minAmp: -12, - maxAmp: -3, - function: {|dt, minAmp, maxAmp| - var startPos, currentFx, buf, numFrames, - grainsize, numGrains, step, len, pos, rate, duration, - attack, release, legato; - buf = ~buf[\coronaWhisperKenneth].choose; - numFrames = buf.numFrames; - grainsize = 0.2; - numGrains = 20; - step = grainsize * s.sampleRate; - //in samples, not seconds.... - len = dt.linlin(0.0, 1.0, step, step * numGrains); - startPos = rrand(0, numFrames - len); - pos = (startPos, startPos+step..startPos+len); - startPos = pos[pos.size-1].mod(numFrames); - rate = 1; - duration = len/s.sampleRate; - attack = 0.2; - release = duration - attack; - legato = 2; - // legato = rrand(0.1, 2); - // rate = [0.5, 1.0].choose; - Pbind( - \instrument, \playbuf, - \buf, buf, - \dur, grainsize, - \attack, Pkey(\dur) * 2, - \release, Pkey(\dur) * 2, - \startPos, Pseq(pos), - \legato, legato, - \rate, Pwhite(0.99, 1.01), - \db, Pseg([-70, 0, -70], [attack, release]), - \pan, Pwhite(-1.0, 1.0), - \out, Pfunc({ - currentFx = ~coronaWhisperGrainKennethFx.choose; - currentFx.in - }), - \group, Pfunc({ currentFx.group }), - ).play; +~coronaWhisperGrainKenneth = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.02, + minibeeID: id, + minAmp: -12, + maxAmp: -3, + function: {|dt, minAmp, maxAmp| + var startPos, currentFx, buf, numFrames, + grainsize, numGrains, step, len, pos, rate, duration, + attack, release, legato; + buf = ~buf[\coronaWhisperKenneth].choose; + numFrames = buf.numFrames; + grainsize = 0.2; + numGrains = 20; + step = grainsize * s.sampleRate; + //in samples, not seconds.... + len = dt.linlin(0.0, 1.0, step, step * numGrains); + startPos = rrand(0, numFrames - len); + pos = (startPos, startPos+step..startPos+len); + startPos = pos[pos.size-1].mod(numFrames); + rate = 1; + duration = len/s.sampleRate; + attack = 0.2; + release = duration - attack; + legato = 2; + // rate = [0.5, 1.0].choose; + Pbind( + \instrument, \playbuf, + \buf, buf, + \dur, grainsize, + \attack, Pkey(\dur) * 2, + \release, Pkey(\dur) * 2, + \startPos, Pseq(pos), + \legato, legato, + \rate, Pwhite(0.99, 1.01), + \db, Pseg([-70, 0, -70], [attack, release]), + \pan, Pwhite(-1.0, 1.0), + \out, Pfunc({ + currentFx = ~coronaWhisperGrainKennethFx.choose; + currentFx.in + }), + \group, Pfunc({ currentFx.group }), + ).play; + + } + ); +}; +) - } - ); - }; -) // ( -// // s.record("/home/kf/sc/100-sketches/videos/audio/coronaWhisperGrainKenneth" ++ Date.getDate.stamp ++".wav"); // ~coronaWhisperGrainKennethFx.do(_.play); -// ~coronaWhisperGrainKenneth.do(_.play); +// ~coronaWhisperGrainKenneth[2..3].do(_.play); +// // ~coronaWhisperGrainKenneth.do(_.play); // ) // ( // ~coronaWhisperGrainKennethFx.do(_.free); // ~coronaWhisperGrainKenneth.do(_.free); -// // SystemClock.sched(10, {s.stopRecording}); // ) diff --git a/sketches/cough.scd b/sketches/cough.scd index 92728ac..562a693 100644 --- a/sketches/cough.scd +++ b/sketches/cough.scd @@ -1,95 +1,95 @@ ( - // var revLine = - ~coughFx = List.new(0); +// var revLine = +~coughFx = List.new(0); - 5.do{ - ~coughFx.add( - FxChain.new( - fadeInTime: 5, - level: 0.dbamp, - fadeOutTime: 5, - out: ~masterBus, - ); +5.do{ + ~coughFx.add( + FxChain.new( + fadeInTime: 5, + level: 0.dbamp, + fadeOutTime: 5, + out: ~masterBus, ); - }; - ~coughFx[0].addPar( - \comb, [\mix, 0.1, \delay, 0.2, \decay, 1, \amp, 1/3], - \comb, [\mix, 0.1, \delay, 0.5, \decay, 1, \amp, 1/3], - \comb, [\mix, 0.1, \delay, 0.7, \decay, 1, \amp, 1/3], - ); - ~coughFx[0].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- - ~coughFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.1 - ]); - ~coughFx[1].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- - ~coughFx[2].add(\greyhole, [ - \delayTime, 0.3, - \feedback, 0.3, - \mix, 0.1 - ]); - ~coughFx[2].add(\eq, [ - \locut, 300, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- - ~coughFx[3].add(\eq, [ - \locut, 300, - \hishelfdb, -6, - ]); - ~coughFx[4].add(\flanger, [ - \feedback, 0.08, - \depth, 0.04, - \rate, 0.03, - \decay, 0.01, - \mix, 0.2, - ]); + ); +}; +~coughFx[0].addPar( + \comb, [\mix, 0.1, \delay, 0.2, \decay, 1, \amp, 1/3], + \comb, [\mix, 0.1, \delay, 0.5, \decay, 1, \amp, 1/3], + \comb, [\mix, 0.1, \delay, 0.7, \decay, 1, \amp, 1/3], +); +~coughFx[0].add(\eq, [ + \locut, 120, + \hishelfdb, -6, +]); +//--------------------------------------------------------- +~coughFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.1 +]); +~coughFx[1].add(\eq, [ + \locut, 120, + \hishelfdb, -6, +]); +//--------------------------------------------------------- +~coughFx[2].add(\greyhole, [ + \delayTime, 0.3, + \feedback, 0.3, + \mix, 0.1 +]); +~coughFx[2].add(\eq, [ + \locut, 300, + \hishelfdb, -6, +]); +//--------------------------------------------------------- +~coughFx[3].add(\eq, [ + \locut, 300, + \hishelfdb, -6, +]); +~coughFx[4].add(\flanger, [ + \feedback, 0.08, + \depth, 0.04, + \rate, 0.03, + \decay, 0.01, + \mix, 0.2, +]); - //--------------------------------------------------------- - ~cough = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.07, - minibeeID: id, - minAmp: -20, - maxAmp: -0, - function: {|dt, minAmp, maxAmp| - var currentFx; - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\cough]), - \dur, 1, - \release, Pkey(\dur) * 2, - \loop, 0, - \legato, 0.1, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0), - \out, Pfunc({ - currentFx = ~coughFx.choose; - currentFx.in - }), - \group, Pfunc({ - currentFx.group - }), - ).play; - } - ); - }; +//--------------------------------------------------------- +~cough = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.07, + minibeeID: id, + minAmp: -20, + maxAmp: -0, + function: {|dt, minAmp, maxAmp| + var currentFx; + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\cough]), + \dur, 1, + \release, Pkey(\dur) * 2, + \loop, 0, + \legato, 0.1, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0), + \out, Pfunc({ + currentFx = ~coughFx.choose; + currentFx.in + }), + \group, Pfunc({ + currentFx.group + }), + ).play; + } + ); +}; ) ( - ~coughFx.do(_.play); - ~cough.do(_.play); +~coughFx.do(_.play); +~cough.do(_.play); ) ( - ~coughFx.do(_.free); - ~cough.do(_.free); +~coughFx.do(_.free); +~cough.do(_.free); ) diff --git a/sketches/em.scd b/sketches/em.scd index dbbc8e1..4050ed1 100644 --- a/sketches/em.scd +++ b/sketches/em.scd @@ -56,3 +56,13 @@ }; ); +// s.record("~/sc-rec/em"+/+Date.localtime.stamp++".wav"); +// ( +// ~emFx.play; +// ~em.do(_.play); +// ) +// ( +// ~emFx.free; +// ~em.do(_.free); +// ) +// s.stopRecording; diff --git a/sketches/focus.scd b/sketches/focus.scd index 0b1146c..3d843f8 100644 --- a/sketches/focus.scd +++ b/sketches/focus.scd @@ -23,17 +23,17 @@ \locut, 440, ]); ////--------------------------------------------------------- - ~focusFx[1].add(\compressor, [ - \ratio, 4, - \threshold, -12.dbamp, - ]); - ~focusFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.2, - ]); - ~focusFx[1].add(\eq, [ - \locut, 440, - ]); + ~focusFx[1].add(\compressor, [ + \ratio, 4, + \threshold, -12.dbamp, + ]); + ~focusFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.2, + ]); + ~focusFx[1].add(\eq, [ + \locut, 440, + ]); //--------------------------------------------------------- ~focus = ~mb.collect{|id, idx| @@ -64,6 +64,7 @@ ); }; ) + // ( // // s.record("/home/kf/sc/100-sketches/videos/audio/focus" ++ Date.getDate.stamp ++".wav"); // ~focusFx.do(_.play); diff --git a/sketches/kullophone.scd b/sketches/kullophone.scd new file mode 100644 index 0000000..59a6823 --- /dev/null +++ b/sketches/kullophone.scd @@ -0,0 +1,63 @@ +( +~kullophoneFx = FxChain.new( + fadeInTime: 10, + level: 3.dbamp, + fadeOutTime: 15, + out: ~masterBus +); +~kullophoneFx.add(\eq, [ + \hishelfdb, -9, + \locut, 150 +]); +~kullophoneFx.add(\flanger, [ + \feedback, 0.08, + \depth, 0.04, + \rate, 0.03, + \decay, 0.01, + \mix, 0.2, +]); +~kullophoneFx.add(\jpverb, [ + \mix, 0.2, + \revtime, 3 +]); + +~kullophone = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.035, + minibeeID: id, + minAmp: -12, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\kullophone]), + \dur, dt.linlin(0.0, 1.0, 0.5, 1), + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * 4, + \rate, Prand([0.25, 1], inf), + \rateDev, Pwhite(0.0, 0.15), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.001, 0.15), + \grainfreq, Pwhite(1, 12), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \out, ~kullophoneFx.in, + \group, ~kullophoneFx.group, + ).play; + } + ); +}; +) + +// ( +// ~kullophoneFx.play; +// ~kullophone[4..6].do(_.play); +// // ~kullophone.do(_.play); +// ) +// ( +// ~kullophoneFx.free; +// ~kullophone.do(_.free); +// ) diff --git a/sketches/mbArpeggiator.scd b/sketches/mbArpeggiator.scd index a50978d..5ebf6b8 100644 --- a/sketches/mbArpeggiator.scd +++ b/sketches/mbArpeggiator.scd @@ -1,58 +1,58 @@ ( - ~mbArpeggiatorClock = TempoClock.new(0.1); - ~mbArpeggiatorFx = FxChain.new( - fadeInTime: 10, - level: 0.2, - fadeOutTime: 10, - out: ~masterBus, - ); - ~mbArpeggiatorFx.add(\eq, [ - \hishelfdb, -9, - \hishelffreq, 600, - ]); - ~mbArpeggiatorFx.add(\jpverb, [ - \revtime, 2, - \mix, 0.3 - ]); - ~mbArpeggiatorFx.addPar( - \comb, [\mix, 0.4, \delay, 0.2, \decay, 3], - \comb, [\mix, 0.4, \delay, 0.5, \decay, 3], - \comb, [\mix, 0.4, \delay, 0.7, \decay, 3], - ); +~mbArpeggiatorClock = TempoClock.new(0.1); +~mbArpeggiatorFx = FxChain.new( + fadeInTime: 10, + level: 0.2, + fadeOutTime: 10, + out: ~masterBus, +); +~mbArpeggiatorFx.add(\eq, [ + \hishelfdb, -9, + \hishelffreq, 600, +]); +~mbArpeggiatorFx.add(\jpverb, [ + \revtime, 2, + \mix, 0.3 +]); +~mbArpeggiatorFx.addPar( + \comb, [\mix, 0.4, \delay, 0.2, \decay, 3], + \comb, [\mix, 0.4, \delay, 0.5, \decay, 3], + \comb, [\mix, 0.4, \delay, 0.7, \decay, 3], +); - ~mbArpeggiator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.02, - minibeeID: id, - minAmp: -20, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - var degrees = (0..dt.linlin(0.0, 1.0, 4, 36)); - if (0.2.coin) { degrees = degrees.reverse }; - PbindProxy( - \instrument, \pmFB, - \dur, Prand((0.1..0.4), inf), - \scale, Scale.minorPentatonic, - \degree, Pseq(degrees), - \octave, 3, - \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, - \modfreqDev, Pwhite(10, 400), - \modFeedback, Pwhite(0.0, 0.3), - \legato, 1.2, - \attack, Pkey(\dur) * Pkey(\legato), - \release, Pkey(\dur), - \pmindex, Pwhite(1.0, 4.0), - \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) - + Pkey(\ampScale), - \pan, Pwhite(-1.0, 1.0), - \out, ~mbArpeggiatorFx.in, - \group, ~mbArpeggiatorFx.group, - ).quant_(~mbArpeggiatorClock).play; - }; - ) - }; +~mbArpeggiator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.02, + minibeeID: id, + minAmp: -20, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + var degrees = (0..dt.linlin(0.0, 1.0, 4, 36)); + if (0.2.coin) { degrees = degrees.reverse }; + PbindProxy( + \instrument, \pmFB, + \dur, Prand((0.1..0.4), inf), + \scale, Scale.minorPentatonic, + \degree, Pseq(degrees), + \octave, 3, + \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, + \modfreqDev, Pwhite(10, 400), + \modFeedback, Pwhite(0.0, 0.3), + \legato, 1.2, + \attack, Pkey(\dur) * Pkey(\legato), + \release, Pkey(\dur), + \pmindex, Pwhite(1.0, 4.0), + \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) + + Pkey(\ampScale), + \pan, Pwhite(-1.0, 1.0), + \out, ~mbArpeggiatorFx.in, + \group, ~mbArpeggiatorFx.group, + ).quant_(~mbArpeggiatorClock).play; + }; + ) +}; ) // ( @@ -62,4 +62,4 @@ // ( // ~mbArpeggiatorFx.free; // ~mbArpeggiator.do(_.free); -// ) +) diff --git a/sketches/mbBellulator.scd b/sketches/mbBellulator.scd index a9ac2ca..ca6221a 100644 --- a/sketches/mbBellulator.scd +++ b/sketches/mbBellulator.scd @@ -1,47 +1,47 @@ ( - ~mbBellulatorFx = FxChain.new( - fadeInTime: 10, - level: 0.dbamp, - fadeOutTime: 10, - out: ~masterBus, - ); +~mbBellulatorFx = FxChain.new( + fadeInTime: 10, + level: 0.dbamp, + fadeOutTime: 10, + out: ~masterBus, +); - ~mbBellulatorFx.add(\eq, [ - \locut, 200, - ]); +~mbBellulatorFx.add(\eq, [ + \locut, 200, +]); - ~mbBellulator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.05, - minibeeID: id, - minAmp: -6, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \fm, - \octave, Pwrand((6..8), [0.5, 0.3, 0.2], 12), - \degree, Prand([ - Pwrand([[4, 2, 0], Rest()], [0.7, 0.3], inf), - Pwrand([[6, 2, 0], Rest()], [0.7, 0.3], inf), - Pwrand([[8, 2, 0], Rest()], [0.7, 0.3], inf), - Pwrand([[5, 3, 0], Rest()], [0.7, 0.3], inf), - ], inf), - \freq, (Pkey(\octave) * 12 + Pkey(\degree)).midicps, - \dur, Pseq((0.125!4)), - \db, Pwhite(-34, -26), - \pan, Pwhite(-1.0, 1.0), - \modfreq, Pkey(\freq), - \moddepth, Pwhite(10, 40), - \attack, 0.1, - \release, Pwhite(0.4, 0.8), - \legato, 0.1, - \out, ~mbBellulatorFx.in, - \group, ~mbBellulatorFx.group, - ).play; - } - ); - }; +~mbBellulator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.05, + minibeeID: id, + minAmp: -6, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \fm, + \octave, Pwrand((6..8), [0.5, 0.3, 0.2], 12), + \degree, Prand([ + Pwrand([[4, 2, 0], Rest()], [0.7, 0.3], inf), + Pwrand([[6, 2, 0], Rest()], [0.7, 0.3], inf), + Pwrand([[8, 2, 0], Rest()], [0.7, 0.3], inf), + Pwrand([[5, 3, 0], Rest()], [0.7, 0.3], inf), + ], inf), + \freq, (Pkey(\octave) * 12 + Pkey(\degree)).midicps, + \dur, Pseq((0.125!4)), + \db, Pwhite(-34, -26), + \pan, Pwhite(-1.0, 1.0), + \modfreq, Pkey(\freq), + \moddepth, Pwhite(10, 40), + \attack, 0.1, + \release, Pwhite(0.4, 0.8), + \legato, 0.1, + \out, ~mbBellulatorFx.in, + \group, ~mbBellulatorFx.group, + ).play; + } + ); +}; ) @@ -49,3 +49,7 @@ // ~mbBellulatorFx.play; // ~mbBellulator.do(_.play); // ) +// ( +// ~mbBellulatorFx.free; +// ~mbBellulator.do(_.free); +// ) diff --git a/sketches/mbBreath.scd b/sketches/mbBreath.scd index c71c14e..ccfc9df 100644 --- a/sketches/mbBreath.scd +++ b/sketches/mbBreath.scd @@ -101,8 +101,7 @@ }; ) -// ( - +// ( // ~mbBreathFx.do(_.play); // ~mbBreath.do(_.play); // ) diff --git a/sketches/mbCello.scd b/sketches/mbCello.scd index 78850e3..1269fdd 100644 --- a/sketches/mbCello.scd +++ b/sketches/mbCello.scd @@ -87,8 +87,8 @@ ); }; ) -// ( +// ( // ~mbCelloFx.do(_.play); // ~mbCello.do(_.play); // ) diff --git a/sketches/mbFM.scd b/sketches/mbFM.scd index c4a21f6..dd0335e 100644 --- a/sketches/mbFM.scd +++ b/sketches/mbFM.scd @@ -1,7 +1,7 @@ ( ~mbFMFx = FxChain.new( fadeInTime: 10, - level: -2.dbamp, + level: 4.dbamp, fadeOutTime: 10, out: ~masterBus, ); @@ -48,6 +48,7 @@ ); } ) + // ( // ~mbFMFx.play; // ~mbFM.do(_.play); diff --git a/sketches/mbFMdrone.scd b/sketches/mbFMdrone.scd index f70c996..200d49b 100644 --- a/sketches/mbFMdrone.scd +++ b/sketches/mbFMdrone.scd @@ -128,12 +128,12 @@ } ) -( - ~mbFMdroneFx.do(_.play); - ~mbFMdrone.do(_.play()); -) -( - ~mbFMdroneFx.do(_.free); - ~mbFMdrone.do(_.free); -) +// ( +// ~mbFMdroneFx.do(_.play); +// ~mbFMdrone.do(_.play()); +// ) +// ( +// ~mbFMdroneFx.do(_.free); +// ~mbFMdrone.do(_.free); +// ) diff --git a/sketches/mbFbnoise.scd b/sketches/mbFbnoise.scd index e8e3cdf..52298e8 100644 --- a/sketches/mbFbnoise.scd +++ b/sketches/mbFbnoise.scd @@ -4,7 +4,7 @@ ~mbFbnoiseFx = FxChain.new( // out: ~masterBus, out: ~mbFbnoiseOut, - level: -3.dbamp, + level: 3.dbamp, fadeInTime: 3, fadeOutTime: 8, ); @@ -121,8 +121,8 @@ s.record("~/sc-rec/mbFbnoise"+/+Date.localtime.stamp++".wav"); ( ~mbFbnoiseFB = ~mbFbnoiseFB.play; -~mbFbnoise[3].play; -// ~mbFbnoise.do(_.play); +// ~mbFbnoise[3].play; +~mbFbnoise.do(_.play); ) ( @@ -133,3 +133,4 @@ s.record("~/sc-rec/mbFbnoise"+/+Date.localtime.stamp++".wav"); s.stopRecording; s.plotTree; +s.meter; diff --git a/sketches/mbFlutter.scd b/sketches/mbFlutter.scd index 0fb1ee2..31a49ae 100644 --- a/sketches/mbFlutter.scd +++ b/sketches/mbFlutter.scd @@ -1,94 +1,95 @@ -( - ~mbFlutterFx.do(_.free); - ~mbFlutter.do(_.free); - ~mbFlutterFx = List.new(0); - 4.do{ - ~mbFlutterFx.add( - FxChain.new( - fadeInTime: 10, - level: 6.dbamp, - fadeOutTime: 10, - out: ~masterBus, - ); +( +~mbFlutterFx.do(_.free); +~mbFlutter.do(_.free); +~mbFlutterFx = List.new(0); +4.do{ + ~mbFlutterFx.add( + FxChain.new( + fadeInTime: 10, + level: 6.dbamp, + fadeOutTime: 10, + out: ~masterBus, ); - }; - ~mbFlutterFx[0].addPar( - \comb, [\mix, 0.3, \delay, 0.2, \decay, 1, \amp, 1/3], - \comb, [\mix, 0.3, \delay, 0.5, \decay, 1, \amp, 1/3], - \comb, [\mix, 0.3, \delay, 0.7, \decay, 1, \amp, 1/3], - ); - ~mbFlutterFx[0].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- - ~mbFlutterFx[1].add(\jpverb, [ - \revtime, 2, - \mix, 0.1 - ]); - ~mbFlutterFx[1].add(\eq, [ - \locut, 120, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- - ~mbFlutterFx[2].add(\greyhole, [ - \delayTime, 0.3, - \feedback, 0.6, - \mix, 0.1 - ]); - ~mbFlutterFx[2].add(\eq, [ - \locut, 500, - \hishelfdb, -6, - ]); - //--------------------------------------------------------- + ); +}; +~mbFlutterFx[0].addPar( + \comb, [\mix, 0.3, \delay, 0.2, \decay, 1, \amp, 1/3], + \comb, [\mix, 0.3, \delay, 0.5, \decay, 1, \amp, 1/3], + \comb, [\mix, 0.3, \delay, 0.7, \decay, 1, \amp, 1/3], +); +~mbFlutterFx[0].add(\eq, [ + \locut, 120, + \hishelfdb, -6, +]); +//--------------------------------------------------------- +~mbFlutterFx[1].add(\jpverb, [ + \revtime, 2, + \mix, 0.1 +]); +~mbFlutterFx[1].add(\eq, [ + \locut, 120, + \hishelfdb, -6, +]); +//--------------------------------------------------------- +~mbFlutterFx[2].add(\greyhole, [ + \delayTime, 0.3, + \feedback, 0.6, + \mix, 0.1 +]); +~mbFlutterFx[2].add(\eq, [ + \locut, 500, + \hishelfdb, -6, +]); +//--------------------------------------------------------- - ~mbFlutter = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.05, - minibeeID: id, - minAmp: -12, - maxAmp: -0, - function: {|dt, minAmp, maxAmp| - var currentFx; - var buf = ~buf[\birdSong][0]; - // var buf = (~buf[\nuggets] ++ ~buf[\birdSong]).choose; - var numFrames = buf.numFrames; - var currentPos = numFrames.rand; - var durFrom = rrand(0.1, 0.2); - var durTo = rrand(0.1, 0.2); - var step = durFrom * s.sampleRate; - var count = 20; - var len = dt.linlin(0.0, 1.0, step, step * count); - // var pos = 8.collect({rrand(0, numFrames)}); - var pos = (currentPos, currentPos+step..currentPos+len).mod(numFrames); - var time = pos[pos.size-1] - pos[0] / s.sampleRate; +~mbFlutter = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.05, + minibeeID: id, + minAmp: -12, + maxAmp: -0, + function: {|dt, minAmp, maxAmp| + var currentFx; + var buf = ~buf[\birdSong][0]; + // var buf = (~buf[\nuggets] ++ ~buf[\birdSong]).choose; + var numFrames = buf.numFrames; + var currentPos = numFrames.rand; + var durFrom = rrand(0.1, 0.2); + var durTo = rrand(0.1, 0.2); + var step = durFrom * s.sampleRate; + var count = 20; + var len = dt.linlin(0.0, 1.0, step, step * count); + // var pos = 8.collect({rrand(0, numFrames)}); + var pos = (currentPos, currentPos+step..currentPos+len).mod(numFrames); + var time = pos[pos.size-1] - pos[0] / s.sampleRate; - Pbind( - \instrument, \playbuf, - \buf, buf, - \dur, Pseg(durFrom, durTo, time), - // \attack, 0, - \attack, Pkey(\dur) * 0.5, - \release, Pkey(\dur) * 1.5, - \startPos, Pseq(pos), - \legato, Pwhite(0.1, 0.4), - \rate, Pexprand(0.5, 4.0), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pseg(Pwhite(0.0, 1.0), Pwhite(0.0, 1.0), time), - \out, Pfunc({ - currentFx = ~mbFlutterFx.choose; - currentFx.in - }), - \group, Pfunc({ - currentFx.group - }), - ).play; - } - ); - }; + Pbind( + \instrument, \playbuf, + \buf, buf, + \dur, Pseg(durFrom, durTo, time), + // \attack, 0, + \attack, Pkey(\dur) * 0.5, + \release, Pkey(\dur) * 1.5, + \startPos, Pseq(pos), + \legato, Pwhite(0.1, 0.4), + \rate, Pexprand(0.5, 4.0), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pseg(Pwhite(0.0, 1.0), Pwhite(0.0, 1.0), time), + \out, Pfunc({ + currentFx = ~mbFlutterFx.choose; + currentFx.in + }), + \group, Pfunc({ + currentFx.group + }), + ).play; + } + ); +} ) + // ( // ~mbFlutterFx.do(_.play); // ~mbFlutter.do(_.play); @@ -102,4 +103,3 @@ // ~mbFlutter.do(_.free); // ) -// s.plotTree; diff --git a/sketches/mbFlutterSpeak.scd b/sketches/mbFlutterSpeak.scd index 4864b9f..44529e6 100644 --- a/sketches/mbFlutterSpeak.scd +++ b/sketches/mbFlutterSpeak.scd @@ -97,6 +97,7 @@ ); }; ) + // ( // ~mbFlutterSpeakFx.do(_.play); // ~mbFlutterSpeak.do(_.play); diff --git a/sketches/mbLeavulator.scd b/sketches/mbLeavulator.scd index 6abe45c..2864fb0 100644 --- a/sketches/mbLeavulator.scd +++ b/sketches/mbLeavulator.scd @@ -73,3 +73,12 @@ ); }; ) + +// ( +// ~mbLeavulatorFx.do(_.play); +// ~mbLeavulator.do(_.play); +// ) +// ( +// ~mbLeavulatorFx.do(_.free); +// ~mbLeavulator.do(_.free); +) diff --git a/sketches/mbMelodic.scd b/sketches/mbMelodic.scd index dce80a3..b945b4d 100644 --- a/sketches/mbMelodic.scd +++ b/sketches/mbMelodic.scd @@ -107,14 +107,16 @@ ms = mset.asStream; } ) -s.record("~/sc-rec/melodic"+/+Date.localtime.stamp++".wav"); ( +s.record("~/sc-rec/melodic"+/+Date.localtime.stamp++".wav"); ~mbMelodicFx.play; -~mbMelodic[1].play; -// ~mbMelodic.do(_.play); +// ~mbMelodic[1].play; +~mbMelodic.do(_.play); ) -( -~mbMelodicFx.free; -~mbMelodic.do(_.free); -) -s.stopRecording; + +( fork{ + ~mbMelodicFx.free; + ~mbMelodic.do(_.free); + 8.wait; + s.stopRecording; +}) diff --git a/sketches/mbScary.scd b/sketches/mbScary.scd index 12b6c43..c1a2cad 100644 --- a/sketches/mbScary.scd +++ b/sketches/mbScary.scd @@ -59,17 +59,14 @@ } ) -( -s.record("~/sc-rec/scary"+/+Date.localtime.stamp++".wav"); -~mbScaryFx.play; -~mbScary.do(_.play); -) - -( -~mbScaryFx.free; -~mbScary.do(_.free); -SystemClock.sched(8, {s.stopRecording}); -) +// ( +// ~mbScaryFx.play; +// ~mbScary.do(_.play); +// ) +// ( +// ~mbScaryFx.free; +// ~mbScary.do(_.free); +// ) -s.plotTree -s.meter; +// s.plotTree +// s.meter; diff --git a/sketches/mbShh.scd b/sketches/mbShh.scd index b35cb6a..a636024 100644 --- a/sketches/mbShh.scd +++ b/sketches/mbShh.scd @@ -1,48 +1,57 @@ ( - ~mbShhFx = FxChain.new( - fadeInTime: 10, - level: 0.dbamp, - fadeOutTime: 20, - out: ~masterBus - ); +~mbShhFx = FxChain.new( + fadeInTime: 10, + level: 0.dbamp, + fadeOutTime: 20, + out: ~masterBus +); - ~mbShhFx.add(\eq, [ - \hishelffreq, 500, - \hishelfdb, -6 - ]); - ~mbShhFx.add(\jpverb, [ - \revtime, 3, - \mix, 0.3 - ]); +~mbShhFx.add(\eq, [ + \hishelffreq, 500, + \hishelfdb, -6 +]); +~mbShhFx.add(\jpverb, [ + \revtime, 3, + \mix, 0.3 +]); - ~mbShh = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 1, - threshold: 0.1, - // threshold: 0.6, // the original threshold!!!!! - minibeeID: id, - minAmp: -3, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\shh]), - \dur, dt.linlin(0.0, 1.0, 0.5, 2), - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur), - \rate, Prand([0.25, 1], inf), - \rateDev, Pwhite(0.0, 0.5), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 2), - \grainsize, Pwhite(0.01, 0.5), - \grainfreq, Pwhite(2, 40), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \panDev, Pwhite(0.0, 1.0), - \out, ~mbShhFx.in, - \group, ~mbShhFx.group, - ).play; - } - ); - }; +~mbShh = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 1, + threshold: 0.1, + // threshold: 0.6, // the original threshold!!!!! + minibeeID: id, + minAmp: -3, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\shh]), + \dur, dt.linlin(0.0, 1.0, 0.5, 2), + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur), + \rate, Prand([0.25, 1], inf), + \rateDev, Pwhite(0.0, 0.5), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.01, 0.5), + \grainfreq, Pwhite(2, 40), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \out, ~mbShhFx.in, + \group, ~mbShhFx.group, + ).play; + } + ); +}; ) + +// ( +// ~mbShhFx.play; +// ~mbShh.do(_.play); +// ) +// ( +// ~mbShhFx.free; +// ~mbShh.do(_.free); +) diff --git a/sketches/mbSineFB.scd b/sketches/mbSineFB.scd index 7894ab0..cd785db 100644 --- a/sketches/mbSineFB.scd +++ b/sketches/mbSineFB.scd @@ -1,64 +1,65 @@ ( - ~mbSineFBFx = FxChain.new( - fadeInTime: 10, - level: -14.dbamp, - fadeOutTime: 10, - out: ~masterBus - ); - ~mbSineFBFx.add(\flanger, [ - \feedback, 0.08, - \depth, 0.04, - \rate, 0.03, - \decay, 0.01, - \mix, 0.3, - ]); - ~mbSineFBFx.add(\eq, [ - \hishelfdb, -9, - \hishelffreq, 600, - ]); - ~mbSineFBFx.add(\jpverb, [ - \revtime, 3, - \mix, 0.4, - ]); - - ~mbSineFB = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.05, - minibeeid: id, - minAmp: -40, - maxAmp: -12, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \pm, - \dur, Prand((0.1..0.4), inf), - \scale, Scale.minorPentatonic, - \degree, (0..8).choose, - \octave, Prand((2..5), inf) + 3.rand, - \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, - \modfreqDev, Pwhite(10, 400), - \legato, 1.2, - \attack, Pkey(\dur) * Pkey(\legato), - \release, Pkey(\dur), - \pmindex, Pwhite(1.0, 4.0), - \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) - + Pkey(\ampScale), - \pan, Pwhite(-1.0, 1.0), - \out, ~mbSineFBFx.in, - \group, ~mbSineFBFx.group, - ).play; - }; - ); - }; +~mbSineFBFx = FxChain.new( + fadeInTime: 10, + level: -14.dbamp, + fadeOutTime: 10, + out: ~masterBus ); -( - ~mbSineFBFx.play; - ~mbSineFB.do(_.play); -) +~mbSineFBFx.add(\flanger, [ + \feedback, 0.08, + \depth, 0.04, + \rate, 0.03, + \decay, 0.01, + \mix, 0.3, +]); +~mbSineFBFx.add(\eq, [ + \hishelfdb, -9, + \hishelffreq, 600, +]); +~mbSineFBFx.add(\jpverb, [ + \revtime, 3, + \mix, 0.4, +]); -( - ~mbSineFBFx.free; - ~mbSineFB.do(_.free); +~mbSineFB = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.05, + minibeeID: id, + minAmp: -40, + maxAmp: -12, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \pm, + \dur, Prand((0.1..0.4), inf), + \scale, Scale.minorPentatonic, + \degree, (0..8).choose, + \octave, Prand((2..5), inf) + 3.rand, + \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, + \modfreqDev, Pwhite(10, 400), + \legato, 1.2, + \attack, Pkey(\dur) * Pkey(\legato), + \release, Pkey(\dur), + \pmindex, Pwhite(1.0, 4.0), + \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) + + Pkey(\ampScale), + \pan, Pwhite(-1.0, 1.0), + \out, ~mbSineFBFx.in, + \group, ~mbSineFBFx.group, + ).play; + }; + ); +}; ) +// ( +// ~mbSineFBFx.play; +// ~mbSineFB.do(_.play); +// ) +// ( +// ~mbSineFBFx.free; +// ~mbSineFB.do(_.free); +// ) + +// s.plotTree; diff --git a/sketches/mbTalkulator.scd b/sketches/mbTalkulator.scd index c87b9c9..2696317 100644 --- a/sketches/mbTalkulator.scd +++ b/sketches/mbTalkulator.scd @@ -1,70 +1,70 @@ ( - var mbTrig, bufs; - var eq, eqBus; +var mbTrig, bufs; +var eq, eqBus; - eqBus = Bus.audio(s, ~numSpeakers); - eq = Synth(\eq, [\in, eqBus, \locut, 200, \out, ~bus[\mbTalkulator]]); +eqBus = Bus.audio(s, ~numSpeakers); +eq = Synth(\eq, [\in, eqBus, \locut, 200, \out, ~bus[\mbTalkulator]]); - bufs = BufArray(~root+/+"audio/storychop/"); +bufs = BufArray(~root+/+"audio/storychop/"); - ~free[\mbTalkulator].(); +~free[\mbTalkulator].(); - mbTrig = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.05, - minibeeID: id, - minAmp: -6, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \playbuf, - \buf, Prand(bufs), - // \startPos, Pfunc{|ev| [0, ev.buf.duration].choose }, - // \endPos, Pfunc{|ev| if(ev.startPos == 0){ev.buf.duration}{0} }, - \dur, dt.linlin(0.0, 1.0, 0.5, 2), - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur) * 2, - \rate, Prand([-1, 1]), - // \playbackRate, 1, - // \grainsize, 0.2, - // \grainfreq, 10, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \out, eqBus, - ).play; - } - ); - }; +mbTrig = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.05, + minibeeID: id, + minAmp: -6, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \playbuf, + \buf, Prand(bufs), + // \startPos, Pfunc{|ev| [0, ev.buf.duration].choose }, + // \endPos, Pfunc{|ev| if(ev.startPos == 0){ev.buf.duration}{0} }, + \dur, dt.linlin(0.0, 1.0, 0.5, 2), + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * 2, + \rate, Prand([-1, 1]), + // \playbackRate, 1, + // \grainsize, 0.2, + // \grainfreq, 10, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \out, eqBus, + ).play; + } + ); +}; - ~play[\mbTalkulator] = {|i| - case - {i.isInteger}{ - mbTrig[~mb.indexOf(i)].play; +~play[\mbTalkulator] = {|i| + case + {i.isInteger}{ + mbTrig[~mb.indexOf(i)].play; + } + {i.isCollection}{ + i.do{|item| + mbTrig[~mb.indexOf(item)].play; } - {i.isCollection}{ - i.do{|item| - mbTrig[~mb.indexOf(item)].play; - } - }; }; +}; - ~stop[\mbTalkulator] = {|i| - case - {i.isInteger}{ - mbTrig[~mb.indexOf(i)].stop; +~stop[\mbTalkulator] = {|i| + case + {i.isInteger}{ + mbTrig[~mb.indexOf(i)].stop; + } + {i.isCollection}{ + i.do{|item| + mbTrig[~mb.indexOf(item)].stop; } - {i.isCollection}{ - i.do{|item| - mbTrig[~mb.indexOf(item)].stop; - } - }; }; +}; - ~free[\mbTalkulator] = { - mbTrig.do(_.free); - bufs.do(_.free); - }; +~free[\mbTalkulator] = { + mbTrig.do(_.free); + bufs.do(_.free); +}; ) // ~play[\mbTalkulator].(~mb); diff --git a/sketches/mbTreeperculator.scd b/sketches/mbTreeperculator.scd index 7aafd43..c2ab39e 100644 --- a/sketches/mbTreeperculator.scd +++ b/sketches/mbTreeperculator.scd @@ -1,39 +1,48 @@ ( - ~mbTreeperculatorFx = FxChain( - fadeInTime: 10, - level: 0.dbamp, - fadeOutTime: 10, - out: ~masterBus, - ); - ~mbTreeperculatorFx.add(\eq, [ - \locut, 60, - ]); - ~mbTreeperculatorFx.add(\jpverb, [ - \mix, 0.3, - \revtime, 2, - ]); +~mbTreeperculatorFx = FxChain( + fadeInTime: 10, + level: 0.dbamp, + fadeOutTime: 10, + out: ~masterBus, +); +~mbTreeperculatorFx.add(\eq, [ + \locut, 60, +]); +~mbTreeperculatorFx.add(\jpverb, [ + \mix, 0.3, + \revtime, 2, +]); - ~mbTreeperculator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.05, - minibeeID: id, - minAmp: -6, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\treeperc], inf), - \rate, 2, - \dur, Pseq((0.125!4)), - \release, Pkey(\dur) * 2, - \legato, 0.1, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0), - \out, ~mbTreeperculatorFx.in, - \group, ~mbTreeperculatorFx.group, - ).play; - } - ); - }; +~mbTreeperculator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.05, + minibeeID: id, + minAmp: -6, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\treeperc], inf), + \rate, 2, + \dur, Pseq((0.125!4)), + \release, Pkey(\dur) * 2, + \legato, 0.1, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0), + \out, ~mbTreeperculatorFx.in, + \group, ~mbTreeperculatorFx.group, + ).play; + } + ); +}; ) + +// ( +// ~mbTreeperculatorFx.play; +// ~mbTreeperculator.do(_.play); +// ) +// ( +// ~mbTreeperculatorFx.free; +// ~mbTreeperculator.do(_.free); +// ) diff --git a/sketches/mbTwinkle.scd b/sketches/mbTwinkle.scd index 274bebd..c1892f6 100644 --- a/sketches/mbTwinkle.scd +++ b/sketches/mbTwinkle.scd @@ -1,61 +1,70 @@ ( - ~mbTwinkleFx.free; - ~mbTwinkle.do(_.free); - ~mbTwinkleFx = FxChain.new( - fadeInTime: 10, - level: 0.2, - fadeOutTime: 10, - out: ~masterBus, - ); - ~mbTwinkleFx.add(\flanger, [ - \feedback, 0.08, - \depth, 0.04, - \rate, 0.03, - \decay, 0.01, - \mix, 0.3, - ]); - ~mbTwinkleFx.add(\eq, [ - \hishelfdb, -9, - \hishelffreq, 600, - ]); - ~mbTwinkleFx.add(\jpverb, [ - \revtime, 3, - \mix, 0.3 - ]); - ~mbTwinkleFx.addPar( - \comb, [\mix, 0.4, \delay, 0.2, \decay, 2], - \comb, [\mix, 0.4, \delay, 0.3, \decay, 2], - \comb, [\mix, 0.4, \delay, 0.5, \decay, 2], - ); +~mbTwinkleFx.free; +~mbTwinkle.do(_.free); +~mbTwinkleFx = FxChain.new( + fadeInTime: 10, + level: 0.2, + fadeOutTime: 10, + out: ~masterBus, +); +~mbTwinkleFx.add(\flanger, [ + \feedback, 0.08, + \depth, 0.04, + \rate, 0.03, + \decay, 0.01, + \mix, 0.3, +]); +~mbTwinkleFx.add(\eq, [ + \hishelfdb, -9, + \hishelffreq, 600, +]); +~mbTwinkleFx.add(\jpverb, [ + \revtime, 3, + \mix, 0.3 +]); +~mbTwinkleFx.addPar( + \comb, [\mix, 0.4, \delay, 0.2, \decay, 2], + \comb, [\mix, 0.4, \delay, 0.3, \decay, 2], + \comb, [\mix, 0.4, \delay, 0.5, \decay, 2], +); - ~mbTwinkle = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.03, - minibeeID: id, - minAmp: -20, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \pm, - \dur, Prand((0.1..0.4), inf), - \scale, Scale.minorPentatonic, - \degree, (0..8).choose, - \octave, Prand((2..5), inf) + 3.rand, - \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, - \modfreqDev, Pwhite(10, 400), - \legato, 1.2, - \attack, Pkey(\dur) * Pkey(\legato), - \release, Pkey(\dur), - \pmindex, Pwhite(1.0, 4.0), - \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) - + Pkey(\ampScale), - \pan, Pwhite(-1.0, 1.0), - \out, ~mbTwinkleFx.in, - \group, ~mbTwinkleFx.group, - ).play; - }; - ) - } +~mbTwinkle = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.03, + minibeeID: id, + minAmp: -20, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \pm, + \dur, Prand((0.1..0.4), inf), + \scale, Scale.minorPentatonic, + \degree, (0..8).choose, + \octave, Prand((2..5), inf) + 3.rand, + \modfreq, Pfunc{|ev| ev.use { ~freq.() + (~freq.()/128).rand }}, + \modfreqDev, Pwhite(10, 400), + \legato, 1.2, + \attack, Pkey(\dur) * Pkey(\legato), + \release, Pkey(\dur), + \pmindex, Pwhite(1.0, 4.0), + \ampScale, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \db, Pseg([-70, 0, -70], [3*dt, 3*dt]) + + Pkey(\ampScale), + \pan, Pwhite(-1.0, 1.0), + \out, ~mbTwinkleFx.in, + \group, ~mbTwinkleFx.group, + ).play; + }; + ) +} ) + +// ( +// ~mbTwinkleFx.play; +// ~mbTwinkle.do(_.play); +// ) +// ( +// ~mbTwinkleFx.free; +// ~mbTwinkle.do(_.free); +// ) diff --git a/sketches/mbTwinkleFB.scd b/sketches/mbTwinkleFB.scd index d7122a9..5171b78 100644 --- a/sketches/mbTwinkleFB.scd +++ b/sketches/mbTwinkleFB.scd @@ -1,5 +1,4 @@ -( - +( ~mbTwinkleFBFx = List.new(0); 4.do{ ~mbTwinkleFBFx.add( @@ -137,17 +136,17 @@ } ) -// ( -// s.record("/home/kf/fmfbtest.wav"); -// ~mbTwinkleFBFx.do(_.play); -// ~mbTwinkleFB.do(_.play()); -// ) -// ( -// ~mbTwinkleFBFx.do(_.free); -// ~mbTwinkleFB.do(_.free); -// SystemClock.sched(8, { s.stopRecording; }); -// ) +( + // s.record("/home/kf/fmfbtest.wav"); + ~mbTwinkleFBFx.do(_.play); + ~mbTwinkleFB.do(_.play()); +) +( + ~mbTwinkleFBFx.do(_.free); + ~mbTwinkleFB.do(_.free); + // SystemClock.sched(8, { s.stopRecording; }); +) -// s.meter; -// s.plotTree; +s.meter; +s.plotTree; diff --git a/sketches/mbWalkGravel.scd b/sketches/mbWalkGravel.scd index b29e58e..46bfaa4 100644 --- a/sketches/mbWalkGravel.scd +++ b/sketches/mbWalkGravel.scd @@ -1,52 +1,63 @@ ( - ~mbWalkGravelFx = FxChain.new( - fadeInTime: 10, - level: 0.2, - fadeOutTime: 10, - out: ~masterBus, - ); - ~mbWalkGravelFx.add(\eq, [ - \hishelfdb, -9, - \hishelffreq, 600, - ]); - ~mbWalkGravelFx.add(\jpverb, [ - \revtime, 2, - \mix, 0.3 - ]); - ~mbWalkGravelFx.add(\compressor, [ - \ratio, 4, - \amp, 6.dbamp, - \thresh, -6.dbamp, - ]); +~mbWalkGravelFx = FxChain.new( + fadeInTime: 10, + level: 0.2, + fadeOutTime: 10, + out: ~masterBus, +); +~mbWalkGravelFx.add(\eq, [ + \hishelfdb, -9, + \hishelffreq, 600, +]); +~mbWalkGravelFx.add(\jpverb, [ + \revtime, 2, + \mix, 0.3 +]); +~mbWalkGravelFx.add(\compressor, [ + \ratio, 4, + \amp, 6.dbamp, + \thresh, -6.dbamp, +]); - ~mbWalkGravel = ~mb.collect {|id, idx| - MBDeltaTrig.new( - minAmp: -6, - maxAmp: 6, - threshold: 0.02, - function: {|dt, minAmp, maxAmp| - var degrees = (0..dt.linlin(0.0, 1.0, 4, 36)); - if (0.2.coin) { degrees = degrees.reverse }; - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\walkGravel]), - \dur, Prand((0.5..2.0), inf), - \rate, Prand([0.5, 1], inf), - \rateDev, Pwhite(0.0, 0.5), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 2), - \grainsize, Pwhite(0.01, 0.5), - \grainfreq, Pwhite(2, 40), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \panDev, Pwhite(0.0, 1.0), - \attack, Pkey(\dur) / 2, - \release, Pkey(\dur), - \pan, Pwhite(-1.0, 1.0), - \out, ~mbWalkGravelFx.in, - \group, ~mbWalkGravelFx.group, - ).play; - }; - ) - } +~mbWalkGravel = ~mb.collect {|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.02, + minibeeID: id, + minAmp: -6, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\walkGravel]), + \dur, Prand((0.5..2.0), inf), + \rate, Prand([0.5, 1], inf), + \rateDev, Pwhite(0.0, 0.5), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.01, 0.5), + \grainfreq, Pwhite(2, 40), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \attack, Pkey(\dur) / 2, + \release, Pkey(\dur), + \pan, Pwhite(-1.0, 1.0), + \out, ~mbWalkGravelFx.in, + \group, ~mbWalkGravelFx.group, + ).play; + }; + ) +} ) + +// ( +// ~mbWalkGravelFx.play; +// ~mbWalkGravel.do(_.play); +// ) +// ( +// ~mbWalkGravelFx.free; +// ~mbWalkGravel.do(_.free); +// ) +// s.plotTree; + diff --git a/sketches/metals.scd b/sketches/metals.scd index bf2076a..74f36b2 100644 --- a/sketches/metals.scd +++ b/sketches/metals.scd @@ -85,7 +85,7 @@ ).play; } ); - }; + } ) // ( diff --git a/sketches/numbers.scd b/sketches/numbers.scd index 874da0f..dacfe97 100644 --- a/sketches/numbers.scd +++ b/sketches/numbers.scd @@ -1,51 +1,60 @@ ( - var scale = Scale.minorPentatonic; +var scale = Scale.minorPentatonic; - ~numbersFx = FxChain.new( - fadeInTime: 10, - level: -14.dbamp, - fadeOutTime: 10, - out: ~masterBus, +~numbersFx = FxChain.new( + fadeInTime: 10, + level: -14.dbamp, + fadeOutTime: 10, + out: ~masterBus, +); +~numbersFx.add(\comb, [ + \delay, Pfunc({ + var deg = [0, 3, 5, 7].choose; + var octave = (1..3).choose; + Scale.minorPentatonic.degreeToFreq(deg, 60.midicps, octave).reciprocal; + }), + \decay, 2, + \mix, 1, +]); +~numbersFx.add(\jpverb, [ + \revtime, 3, + \mix, 0.1, +]); +~numbersFx.add(\eq, [ + \locut, 120 +]); + +~numbers = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.03, + minibeeID: id, + minAmp: -20, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\numbers]), + \dur, dt.linlin(0.0, 1.0, 0.5, 2), + \loop, 0, + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * Pwhite(1.0, 2.0), + \rate, 1, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0), + \out, ~numbersFx.in, + \group, ~numbersFx.group, + ).play; + }; ); - ~numbersFx.add(\comb, [ - \delay, Pfunc({ - var deg = [0, 3, 5, 7].choose; - var octave = (1..3).choose; - Scale.minorPentatonic.degreeToFreq(deg, 60.midicps, octave).reciprocal; - }), - \decay, 2, - \mix, 1, - ]); - ~numbersFx.add(\jpverb, [ - \revtime, 3, - \mix, 0.1, - ]); - ~numbersFx.add(\eq, [ - \locut, 120 - ]); +}; +) - ~numbers = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.03, - minibeeID: id, - minAmp: -20, - maxAmp: 6, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\numbers]), - \dur, dt.linlin(0.0, 1.0, 0.5, 2), - \loop, 0, - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur) * Pwhite(1.0, 2.0), - \rate, 1, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0), - \out, ~numbersFx.in, - \group, ~numbersFx.group, - ).play; - }; - ); - }; +( +~numbersFx.play; +~numbers.do(_.play); +) +( +~numbersFx.free; +~numbers.do(_.free); ) diff --git a/sketches/rainRingMod.scd b/sketches/rainRingMod.scd index 288f025..072987d 100644 --- a/sketches/rainRingMod.scd +++ b/sketches/rainRingMod.scd @@ -1,55 +1,56 @@ ( - ~rainRingModFx = FxChain.new( - fadeInTime: 5, - fadeOutTime: 5, - level: 0.dbamp, - out: ~masterBus - ); - ~rainRingModFx.add(\eq, [ - \locut, 200, - ]); - ~rainRingModFx.add(\ringMod, [ - \modfreq, Pexprand(400, 800), Pwhite(3, 4), - \mix, 1, - \lag, 3, - \depth, 8, - \amp, -6.dbamp, - ]); - ~rainRingModFx.add(\comb, [ - \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), - \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), - \lag, 8, - ]); - ~rainRingModFx.play; - ~rainRingMod = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.03, - minibeeID: id, - minAmp: -12, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\rain]), - \dur, dt.linlin(0.0, 1.0, 0.5, 2.0), - \attack, Pkey(\dur) / 2, - \release, Pkey(\dur), - \legato, 0.8, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \out, ~rainRingModFx.in, - \group, ~rainRingModFx.group, - ).play; - } - ) - } +~rainRingModFx = FxChain.new( + fadeInTime: 5, + fadeOutTime: 5, + level: 0.dbamp, + out: ~masterBus +); +~rainRingModFx.add(\eq, [ + \locut, 200, +]); +~rainRingModFx.add(\ringMod, [ + \modfreq, Pexprand(400, 800), Pwhite(3, 4), + \mix, 1, + \lag, 3, + \depth, 8, + \amp, -6.dbamp, +]); +~rainRingModFx.add(\comb, [ + \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), + \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), + \lag, 8, +]); +~rainRingModFx.play; +~rainRingMod = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.03, + minibeeID: id, + minAmp: -12, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\rain]), + \dur, dt.linlin(0.0, 1.0, 0.5, 2.0), + \attack, Pkey(\dur) / 2, + \release, Pkey(\dur), + \legato, 0.8, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \out, ~rainRingModFx.in, + \group, ~rainRingModFx.group, + ).play; + } + ) +} ) // ( // ~rainRingModFx.play; -// ~rainRingMod[5].play; +// ~rainRingMod.do(_.play); // ) // ( // ~rainRingModFx.free; -// ~rainRingMod[5].free; +// ~rainRingMod.(_.free); // ) +s.plotTree; diff --git a/sketches/rainRingModGrain.scd b/sketches/rainRingModGrain.scd index b9bd51e..c0aa998 100644 --- a/sketches/rainRingModGrain.scd +++ b/sketches/rainRingModGrain.scd @@ -1,58 +1,58 @@ ( - ~rainRingModGrainFx = FxChain.new( - fadeInTime: 5, - fadeOutTime: 5, - level: 0.dbamp, - out: ~masterBus - ); - ~rainRingModGrainFx.add(\eq, [ - \locut, 200, - ]); - ~rainRingModGrainFx.add(\ringMod, [ - \modfreq, Pexprand(400, 800), Pwhite(3, 4), - \mix, 1, - \lag, 3, - \depth, 8, - \amp, -6.dbamp, - ]); - ~rainRingModGrainFx.add(\comb, [ - \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), - \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), - \lag, 8, - ]); - ~rainRingModGrainFx.play; - ~rainRingModGrain = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.03, - minibeeID: id, - minAmp: -12, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\rain]), - \grainfreq, Pexprand(6, 100), - \grainsize, Pkey(\grainfreq).reciprocal / 2, - \posDev, Pwhite(0, 1000), - \dur, dt.linlin(0.0, 1.0, 0.5, 2.0), - \attack, Pkey(\dur) / 2, - \release, Pkey(\dur), - \legato, 0.8, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \out, ~rainRingModGrainFx.in, - \group, ~rainRingModGrainFx.group, - ).play; - } - ) - } +~rainRingModGrainFx = FxChain.new( + fadeInTime: 5, + fadeOutTime: 5, + level: 0.dbamp, + out: ~masterBus +); +~rainRingModGrainFx.add(\eq, [ + \locut, 200, +]); +~rainRingModGrainFx.add(\ringMod, [ + \modfreq, Pexprand(400, 800), Pwhite(3, 4), + \mix, 1, + \lag, 3, + \depth, 8, + \amp, -6.dbamp, +]); +~rainRingModGrainFx.add(\comb, [ + \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), + \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), + \lag, 8, +]); +~rainRingModGrainFx.play; +~rainRingModGrain = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.03, + minibeeID: id, + minAmp: -12, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\rain]), + \grainfreq, Pexprand(6, 80), + \grainsize, Pkey(\grainfreq).reciprocal / 2, + \posDev, Pwhite(0, 1000), + \dur, dt.linlin(0.0, 1.0, 0.5, 2.0), + \attack, Pkey(\dur) / 2, + \release, Pkey(\dur), + \legato, 0.8, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \out, ~rainRingModGrainFx.in, + \group, ~rainRingModGrainFx.group, + ).play; + } + ) +} ) // ( -// ~rainRingModGrainFx.play; -// ~rainRingModGrain[3].play; +// ~rainRingModGrainFx.play; +// ~rainRingModGrain.do(_.play); // ) // ( -// ~rainRingModGrainFx.free; -// ~rainRingModGrain[3].free; +// ~rainRingModGrainFx.free; +// ~rainRingModGrain.do(_.play); // ) diff --git a/sketches/rainulator.scd b/sketches/rainulator.scd index aeada36..8329878 100644 --- a/sketches/rainulator.scd +++ b/sketches/rainulator.scd @@ -1,68 +1,67 @@ ( - var mix, revtime; +var mix, revtime; - // ~rainulatorRevmix = MBBus.new(13, \x, 0.0, 1.0); - // ~rainulatorRevtime = MBBus.new(14, \x, 0.1, 4); +// ~rainulatorRevmix = MBBus.new(13, \x, 0.0, 1.0); +// ~rainulatorRevtime = MBBus.new(14, \x, 0.1, 4); - ~rainulatorFx = FxChain.new( - fadeInTime: 10, - level: -12.dbamp, - fadeOutTime: 10, - out: ~masterBus - ); - ~rainulatorFx.add(\eq, [ - \locut, 80, - ]); - ~rainulatorFx.add( \compressor, [ - \thresh, -2.dbamp, - \ratio, 8, - \amp, 6.dbamp, - ]); - ~ranulatorFx.add(\jpverb, [ - \mix, 0.3, - \revtime, 3, - // \mix, ~rainulatorRevmix.bus.asMap, - // \revtime, ~rainulatorRevtime.bus.asMap - ]); +~rainulatorFx = FxChain.new( + fadeInTime: 10, + level: -12.dbamp, + fadeOutTime: 10, + out: ~masterBus +); +~rainulatorFx.add(\eq, [ + \locut, 80, +]); +~rainulatorFx.add( \compressor, [ + \thresh, -2.dbamp, + \ratio, 8, + \amp, 6.dbamp, +]); +~ranulatorFx.add(\jpverb, [ + \mix, 0.3, + \revtime, 3, + // \mix, ~rainulatorRevmix.bus.asMap, + // \revtime, ~rainulatorRevtime.bus.asMap +]); - ~rainulator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.07, - minibeeID: id, - minAmp: -6, - maxAmp: 6, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\rain] ++ ~buf[\thunder]), - \dur, dt.linlin(0.0, 1.0, 0.5, 6), - \attack, Pkey(\dur), - \release, Pkey(\dur) * 2, - \rate, Prand([0.25, 1], inf), - \rateDev, Pwhite(0.0, 0.5), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 2), - \grainsize, Pwhite(0.01, 0.5), - \grainfreq, Pwhite(2, 40), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \panDev, Pwhite(0.0, 1.0), - \out, ~rainulatorFx.in, - \group, ~rainulatorFx.group, - ).play; - } - ); - }; +~rainulator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.07, + minibeeID: id, + minAmp: -6, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\rain] ++ ~buf[\thunder]), + \dur, dt.linlin(0.0, 1.0, 0.5, 6), + \attack, Pkey(\dur), + \release, Pkey(\dur) * 2, + \rate, Prand([0.25, 1], inf), + \rateDev, Pwhite(0.0, 0.5), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.01, 0.5), + \grainfreq, Pwhite(2, 40), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \out, ~rainulatorFx.in, + \group, ~rainulatorFx.group, + ).play; + } + ); +}; ) // ( // ~rainulatorFx.play; -// ~rainulator[0].play; -// // ~rainulator.do(_.play); +// // ~rainulator[0].play; +// ~rainulator.do(_.play); // ) -// ( - +// ( // ~rainulatorFx.free; // ~rainulator.do(_.free); // ) diff --git a/sketches/runningWater.scd b/sketches/runningWater.scd index 44f421c..fd9dc00 100644 --- a/sketches/runningWater.scd +++ b/sketches/runningWater.scd @@ -41,11 +41,11 @@ // ( // ~runningWaterFx.play; -// ~runningWater[6..7].do(_.play); -// // ~runningWater.do(_.play); +// // ~runningWater[6..7].do(_.play); +// ~runningWater.do(_.play); // ) // ( // ~runningWaterFx.free; -// ~runningWater[6..7].do(_.free); -// // ~runningWater.do(_.free); +// // ~runningWater[6..7].do(_.free); +// ~runningWater.do(_.free); // ) diff --git a/sketches/scaryverksted.scd b/sketches/scaryverksted.scd index 2898379..4d5f326 100644 --- a/sketches/scaryverksted.scd +++ b/sketches/scaryverksted.scd @@ -46,8 +46,7 @@ // ( // ~scaryverkstedFx.play; // ~scaryverkstedPlayer = ~scaryverksted.play; -// ) - +// ) // ( // ~scaryverkstedFx.free; // ~scaryverkstedPlayer.stop; diff --git a/sketches/sineRingMod.scd b/sketches/sineRingMod.scd index a1e0e9d..5608f29 100644 --- a/sketches/sineRingMod.scd +++ b/sketches/sineRingMod.scd @@ -1,38 +1,38 @@ ( - ~sineRingModFx = FxChain.new( - fadeInTime: 30, - fadeOutTime: 30, - level: 0.dbamp, - out: ~masterBus - ); - ~sineRingModFx.add(\ringMod, [ - \modfreq, Pexprand(200, 220), Pwhite(3, 4), - \mix, 1, - \lag, 3, - \depth, 8, - \amp, -6.dbamp, - ]); - ~sineRingModFx.add(\comb, [ - \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), - \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), - \lag, 8, - ]); - ~sineRingModFx.add(\jpverb, [ - \revtime, 4, - \mix, 0.3, - ]); - ~sineRingModFx.play; - ~sineRingMod = Pbind( - \instrument, \sine, - \dur, Pwhite(4, 6), - \freq, Pexprand(400, 440), - \attack, Pkey(\dur) / 2, - \release, Pkey(\dur), - \legato, 1.0, - \db, Pwhite(-80, -70), - \out, ~sineRingModFx.in, - \group, ~sineRingModFx.group, - ).play; +~sineRingModFx = FxChain.new( + fadeInTime: 30, + fadeOutTime: 30, + level: 0.dbamp, + out: ~masterBus +); +~sineRingModFx.add(\ringMod, [ + \modfreq, Pexprand(200, 220), Pwhite(3, 4), + \mix, 1, + \lag, 3, + \depth, 8, + \amp, -6.dbamp, +]); +~sineRingModFx.add(\comb, [ + \delay, Pexprand(400, 800).reciprocal, Pwhite(3, 4), + \mix, Pexprand(0.0001, 0.2), Pwhite(5, 8), + \lag, 8, +]); +~sineRingModFx.add(\jpverb, [ + \revtime, 4, + \mix, 0.3, +]); +~sineRingModFx.play; +~sineRingMod = Pbind( + \instrument, \sine, + \dur, Pwhite(4, 6), + \freq, Pexprand(400, 440), + \attack, Pkey(\dur) / 2, + \release, Pkey(\dur), + \legato, 1.0, + \db, Pwhite(-80, -70), + \out, ~sineRingModFx.in, + \group, ~sineRingModFx.group, +).play; ) // ( diff --git a/sketches/singsong.scd b/sketches/singsong.scd index f1170df..8f30a83 100644 --- a/sketches/singsong.scd +++ b/sketches/singsong.scd @@ -1,44 +1,44 @@ ( - ~singsong = (); - // ~singsong[\fx] = FxChain.new( - // fadeInTime:5, - // level: -9.dbamp, - // fadeOutTime: 5, - // in: ~mic[5], - // out: ~masterBus - // ); - // ~singsong[\fx].add( \comb, [ - // \delay, 1, - // \decay, 6, - // \mix, 0.3, - // \amp, -18.dbamp, - // ]); - // ~singsong[\fx].add(\jpverb, [ - // \revtime, 3, - // \mix, 0.3, - // ]); +~singsong = (); +// ~singsong[\fx] = FxChain.new( +// fadeInTime:5, +// level: -9.dbamp, +// fadeOutTime: 5, +// in: ~mic[5], +// out: ~masterBus +// ); +// ~singsong[\fx].add( \comb, [ +// \delay, 1, +// \decay, 6, +// \mix, 0.3, +// \amp, -18.dbamp, +// ]); +// ~singsong[\fx].add(\jpverb, [ +// \revtime, 3, +// \mix, 0.3, +// ]); - // ~singsong[\fx].play; +// ~singsong[\fx].play; - ~singsong[\fx1] = FxChain.new( - fadeInTime:5, - level: -9.dbamp, - fadeOutTime: 5, - in: ~mic[4], - out: ~masterBus - ); - ~singsong[\fx1].add( \comb, [ - \delay, 1, - \decay, 6, - \mix, 0.3, - \amp, -18.dbamp, - ]); - ~singsong[\fx1].add(\jpverb, [ - \revtime, 3, - \mix, 0.3, - ]); +~singsong[\fx1] = FxChain.new( + fadeInTime:5, + level: -9.dbamp, + fadeOutTime: 5, + in: ~mic[4], + out: ~masterBus +); +~singsong[\fx1].add( \comb, [ + \delay, 1, + \decay, 6, + \mix, 0.3, + \amp, -18.dbamp, +]); +~singsong[\fx1].add(\jpverb, [ + \revtime, 3, + \mix, 0.3, +]); - ~singsong[\fx1].play; +~singsong[\fx1].play; ) // ~singsong.do(_.free); diff --git a/sketches/stormEye.scd b/sketches/stormEye.scd index 581ec0c..2c3905f 100644 --- a/sketches/stormEye.scd +++ b/sketches/stormEye.scd @@ -1,251 +1,251 @@ ( - var numVoices = 3; - var bufLength = 2; - ~buf[\stormEye] = numVoices.collect{ - Buffer.alloc(s, s.sampleRate * bufLength); - }; - ~stormEye = Dictionary.new(); - ~stormEye[\fx] = List.new(); - ~stormEye[\rec] = List.newClear(numVoices); - ~stormEye[\recPos] = nil ! numVoices; - ~stormEye[\mono] = List.newClear(numVoices); - ~stormEye[\bus] = numVoices.collect{ - Bus.audio(s, ~numSpeakers); - }; - ~stormEye[\recBus] = numVoices.collect{ - Bus.audio(s, 1); - }; - ~stormEye[\group] = Group.new(); - numVoices.do{|i| - ~stormEye[\fx].add( - FxChain.new( - level: -12.dbamp, - out: ~stormEye[\bus][i], - fadeInTime: 30, - fadeOutTime: 30, - ) +var numVoices = 3; +var bufLength = 2; +~buf[\stormEye] = numVoices.collect{ + Buffer.alloc(s, s.sampleRate * bufLength); +}; +~stormEye = Dictionary.new(); +~stormEye[\fx] = List.new(); +~stormEye[\rec] = List.newClear(numVoices); +~stormEye[\recPos] = nil ! numVoices; +~stormEye[\mono] = List.newClear(numVoices); +~stormEye[\bus] = numVoices.collect{ + Bus.audio(s, ~numSpeakers); +}; +~stormEye[\recBus] = numVoices.collect{ + Bus.audio(s, 1); +}; +~stormEye[\group] = Group.new(); +numVoices.do{|i| + ~stormEye[\fx].add( + FxChain.new( + level: -12.dbamp, + out: ~stormEye[\bus][i], + fadeInTime: 30, + fadeOutTime: 30, ) - }; - ~stormEye[\fx][0].add(\eq, [ - \locut, 80, - \hishelfdb, -6, - \hishelffreq, 400, - ]); - ~stormEye[\fx][0].add(\ringMod, [ - \mix, 1, - \depth, 2, - \modfreq, 50, - \amp, -0.dbamp, - ]); - ~stormEye[\fx][0].add(\ringMod, [ - \mix, 1, - \depth, 2, - \modfreq, 20, - \amp, -0.dbamp, - ]); - ~stormEye[\fx][0].add(\ringMod, [ - \mix, 1, - \depth, 3, - \modfreq, 100, - \amp, -0.dbamp, - ]); - ~stormEye[\fx][0].add(\limiter, [ - \limit, -3.dbamp - ]); - ~stormEye[\fx][0].add(\greyhole, [ - \delayTime, 0.3, - \feedback, 0.9, - \mix, 0.4 - ]); - ~stormEye[\fx][0].add(\ringMod, [ - \mix, 0.3, - \depth, 2, - \modfreq, 7, - \amp, -0.dbamp, - ]); - ~stormEye[\fx][0].add(\eq, [ - \locut, 120, - \hishelfdb, -12, - ]); - ~stormEye[\fx][0].add(\limiter, [ - \limit, -3.dbamp - ]); - //--------------------------------------------------------- - ~stormEye[\fx][1].add(\eq, [ - \locut, 50, - ]); - ~stormEye[\fx][1].addPar( - \comb, [\mix, 1, \delay, 0.002, \decay, 2, \amp, 1/12], - \comb, [\mix, 1, \delay, 0.003, \decay, 2, \amp, 1/12], - \comb, [\mix, 1, \delay, 0.005, \decay, 2, \amp, 1/12], - ); - ~stormEye[\fx][1].add(\ringMod, [ - \mix, 0.9, - \depth, 2, - \modfreq, 5, - \amp, -12.dbamp, - ]); - ~stormEye[\fx][1].add(\eq, [ - \locut, 120, - \hishelfdb, -12, - ]); - ~stormEye[\fx][1].add(\limiter, [ - \limit, -3.dbamp - ]); - //--------------------------------------------------------- - ~stormEye[\fx][2].add(\eq, [ - \locut, 80, - ]); - ~stormEye[\fx][2].add(\greyhole, [ - \delayTime, 0.3, - \feedback, 0.8, - \mix, 0.3 - ]); - ~stormEye[\fx][2].add(\eq, [ - \locut, 500, - \hishelffreq, 400, - \hishelfdb, -12, - ]); - ~stormEye[\fx][2].add(\compressor, [ - \ratio, 8, - \threshold, -3.dbamp - ]); - ~stormEye[\fx][2].add(\limiter, [ - \limit, -3.dbamp - ]); - ////--------------------------------------------------------- - ~stormEye[\fx].do(_.play); - numVoices.do{|i| - ~stormEye[\mono][i] = Synth(\mono, [ - \in, ~stormEye[\bus][i], - \out, ~stormEye[\recBus][i] - ], target: ~stormEye[\group], addAction: \addToTail); + ) +}; +~stormEye[\fx][0].add(\eq, [ + \locut, 80, + \hishelfdb, -6, + \hishelffreq, 400, +]); +~stormEye[\fx][0].add(\ringMod, [ + \mix, 1, + \depth, 2, + \modfreq, 50, + \amp, -0.dbamp, +]); +~stormEye[\fx][0].add(\ringMod, [ + \mix, 1, + \depth, 2, + \modfreq, 20, + \amp, -0.dbamp, +]); +~stormEye[\fx][0].add(\ringMod, [ + \mix, 1, + \depth, 3, + \modfreq, 100, + \amp, -0.dbamp, +]); +~stormEye[\fx][0].add(\limiter, [ + \limit, -3.dbamp +]); +~stormEye[\fx][0].add(\greyhole, [ + \delayTime, 0.3, + \feedback, 0.9, + \mix, 0.4 +]); +~stormEye[\fx][0].add(\ringMod, [ + \mix, 0.3, + \depth, 2, + \modfreq, 7, + \amp, -0.dbamp, +]); +~stormEye[\fx][0].add(\eq, [ + \locut, 120, + \hishelfdb, -12, +]); +~stormEye[\fx][0].add(\limiter, [ + \limit, -3.dbamp +]); +//--------------------------------------------------------- +~stormEye[\fx][1].add(\eq, [ + \locut, 50, +]); +~stormEye[\fx][1].addPar( + \comb, [\mix, 1, \delay, 0.002, \decay, 2, \amp, 1/12], + \comb, [\mix, 1, \delay, 0.003, \decay, 2, \amp, 1/12], + \comb, [\mix, 1, \delay, 0.005, \decay, 2, \amp, 1/12], +); +~stormEye[\fx][1].add(\ringMod, [ + \mix, 0.9, + \depth, 2, + \modfreq, 5, + \amp, -12.dbamp, +]); +~stormEye[\fx][1].add(\eq, [ + \locut, 120, + \hishelfdb, -12, +]); +~stormEye[\fx][1].add(\limiter, [ + \limit, -3.dbamp +]); +//--------------------------------------------------------- +~stormEye[\fx][2].add(\eq, [ + \locut, 80, +]); +~stormEye[\fx][2].add(\greyhole, [ + \delayTime, 0.3, + \feedback, 0.8, + \mix, 0.3 +]); +~stormEye[\fx][2].add(\eq, [ + \locut, 500, + \hishelffreq, 400, + \hishelfdb, -12, +]); +~stormEye[\fx][2].add(\compressor, [ + \ratio, 8, + \threshold, -3.dbamp +]); +~stormEye[\fx][2].add(\limiter, [ + \limit, -3.dbamp +]); +////--------------------------------------------------------- +~stormEye[\fx].do(_.play); +numVoices.do{|i| + ~stormEye[\mono][i] = Synth(\mono, [ + \in, ~stormEye[\bus][i], + \out, ~stormEye[\recBus][i] + ], target: ~stormEye[\group], addAction: \addToTail); - ~stormEye[\rec][i] = Synth(\rec, [ - \in, ~stormEye[\recBus][i], - \out, ~masterBus, - \id, i, - \bufnum, ~buf[\stormEye][i] - ], target: ~stormEye[\group], addAction: \addToTail); - }; + ~stormEye[\rec][i] = Synth(\rec, [ + \in, ~stormEye[\recBus][i], + \out, ~masterBus, + \id, i, + \bufnum, ~buf[\stormEye][i] + ], target: ~stormEye[\group], addAction: \addToTail); +}; - ~stormEye[\in] = Synth(\soundin, [ - \in, 4, - \out, ~stormEye[\fx][0].in, - \amp, numVoices.reciprocal - ], target: ~stormEye[\fx][0].group); +~stormEye[\in] = Synth(\soundin, [ + \in, 4, + \out, ~stormEye[\fx][0].in, + \amp, numVoices.reciprocal +], target: ~stormEye[\fx][0].group); - ~stormEye[\osc] = OSCFunc.new({|args| - var idx = args[2]; - var pos = args[3]; - var offset = 0; - if((idx>=offset)&&(idx<(offset+3))){ - ~stormEye[\recPos][idx] = pos; - }; - }, '/recPos'); +~stormEye[\osc] = OSCFunc.new({|args| + var idx = args[2]; + var pos = args[3]; + var offset = 0; + if((idx>=offset)&&(idx<(offset+3))){ + ~stormEye[\recPos][idx] = pos; + }; +}, '/recPos'); - // Pdef(\stormEye1, - // Pbind( - // \instrument, \playbuf, - // \buf,~buf[\stormEye][0], - // \dur, 0.1, - // \legato, 0.3, - // \loop, 1, - // \startPos, Pfunc({|ev| - // var start = ~stormEye[\recPos][0]; - // var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); - // var pos = rrand(start, end); - // pos = end.mod(bufLength * s.sampleRate); - // pos; - // }), - // \attack, Pkey(\dur) * 0.2, - // \release, Pkey(\dur) * 1, - // \rate, 1, - // \db, -12, - // \pan, Pwhite(-1.0, 1.0), - // \out, ~masterBus, - // // \out, ~stormEye[\fx][1].in - // ); - // ).play; - // Pdef(\stormEye2, - // Pbind( - // \instrument, \playbuf, - // \buf,~buf[\stormEye][1], - // \dur, 0.2, - // \legato, 0.2, - // \loop, 1, - // \startPos, Pfunc({|ev| - // var start = ~stormEye[\recPos][1]; - // var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); - // var pos = rrand(start, end); - // pos = end.mod(bufLength * s.sampleRate); - // pos; - // }), - // \attack, Pkey(\dur) * 0.2, - // \release, Pkey(\dur) * 1, - // \rate, 1, - // \db, -6, - // \pan, Pwhite(-1.0, 1.0), - // \out, ~masterBus, - // // \out, ~stormEye[\fx][2].in - // ); - // ).play; - // Pdef(\stormEye3, - // Pbind( - // \instrument, \playbuf, - // \buf,~buf[\stormEye][2], - // \dur, 0.1, - // \legato, 0.4, - // \loop, 1, - // \startPos, Pfunc({|ev| - // var start = ~stormEye[\recPos][1]; - // var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); - // var pos = rrand(start, end); - // pos = end.mod(bufLength * s.sampleRate); - // pos; - // }), - // \attack, Pkey(\dur) * 0.2, - // \release, Pkey(\dur) * 2, - // \rate, 1, - // \db, -6, - // \pan, Pwhite(-1.0, 1.0), - // // \out, ~masterBus, - // \out, ~stormEye[\fx][0].in - // ); - // ).play; - Pdef(\stormEye4, - Pbind( - \instrument, \playbuf, - \buf, Prand(~buf[\storychop], inf), - \dur, Prand([1, Rest(1), Rest(2), Rest(5)], inf), - \legato, 0.4, - \loop, 1, - \startPos, 0, - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur) * 2, - \rate, 1, - \db, Pwhite(-24, -14), - \pan, Pwhite(-1.0, 1.0), - \out, ~stormEye[\fx][2].in - ); - ).play; +// Pdef(\stormEye1, +// Pbind( +// \instrument, \playbuf, +// \buf,~buf[\stormEye][0], +// \dur, 0.1, +// \legato, 0.3, +// \loop, 1, +// \startPos, Pfunc({|ev| +// var start = ~stormEye[\recPos][0]; +// var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); +// var pos = rrand(start, end); +// pos = end.mod(bufLength * s.sampleRate); +// pos; +// }), +// \attack, Pkey(\dur) * 0.2, +// \release, Pkey(\dur) * 1, +// \rate, 1, +// \db, -12, +// \pan, Pwhite(-1.0, 1.0), +// \out, ~masterBus, +// // \out, ~stormEye[\fx][1].in +// ); +// ).play; +// Pdef(\stormEye2, +// Pbind( +// \instrument, \playbuf, +// \buf,~buf[\stormEye][1], +// \dur, 0.2, +// \legato, 0.2, +// \loop, 1, +// \startPos, Pfunc({|ev| +// var start = ~stormEye[\recPos][1]; +// var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); +// var pos = rrand(start, end); +// pos = end.mod(bufLength * s.sampleRate); +// pos; +// }), +// \attack, Pkey(\dur) * 0.2, +// \release, Pkey(\dur) * 1, +// \rate, 1, +// \db, -6, +// \pan, Pwhite(-1.0, 1.0), +// \out, ~masterBus, +// // \out, ~stormEye[\fx][2].in +// ); +// ).play; +// Pdef(\stormEye3, +// Pbind( +// \instrument, \playbuf, +// \buf,~buf[\stormEye][2], +// \dur, 0.1, +// \legato, 0.4, +// \loop, 1, +// \startPos, Pfunc({|ev| +// var start = ~stormEye[\recPos][1]; +// var end = start + (bufLength * s.sampleRate) - (ev.dur * s.sampleRate); +// var pos = rrand(start, end); +// pos = end.mod(bufLength * s.sampleRate); +// pos; +// }), +// \attack, Pkey(\dur) * 0.2, +// \release, Pkey(\dur) * 2, +// \rate, 1, +// \db, -6, +// \pan, Pwhite(-1.0, 1.0), +// // \out, ~masterBus, +// \out, ~stormEye[\fx][0].in +// ); +// ).play; +Pdef(\stormEye4, + Pbind( + \instrument, \playbuf, + \buf, Prand(~buf[\storychop], inf), + \dur, Prand([1, Rest(1), Rest(2), Rest(5)], inf), + \legato, 0.4, + \loop, 1, + \startPos, 0, + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * 2, + \rate, 1, + \db, Pwhite(-24, -14), + \pan, Pwhite(-1.0, 1.0), + \out, ~stormEye[\fx][2].in + ); +).play; - ~stormEye[\free] = { - Pdef(\stormEye1).stop; - Pdef(\stormEye2).stop; - Pdef(\stormEye3).stop; - Pdef(\stormEye4).stop; - ~stormEye.do({|i| - if(i.class==OSCFunc){ - i.clear; - }; - if(i.isCollection){ - i.do(_.free); - }{ - i.free; - } - }); - }; +~stormEye[\free] = { + Pdef(\stormEye1).stop; + Pdef(\stormEye2).stop; + Pdef(\stormEye3).stop; + Pdef(\stormEye4).stop; + ~stormEye.do({|i| + if(i.class==OSCFunc){ + i.clear; + }; + if(i.isCollection){ + i.do(_.free); + }{ + i.free; + } + }); +}; ) // ~stormEye[\free].(); diff --git a/sketches/stormulator.scd b/sketches/stormulator.scd index 295c0f5..9b5645f 100644 --- a/sketches/stormulator.scd +++ b/sketches/stormulator.scd @@ -1,64 +1,65 @@ ( - ~stormulatorFx = FxChain.new( - fadeInTime: 5, - level: -3.dbamp, - fadeOutTime: 5, - out: ~masterBus - ); - ~stormulatorFx.add(\eq, [ - \hishelffreq, 400, - \hishelfdb, -3, - \locut, 120, - ]); - ~stormulatorFx.add( \compressor, [ - \thresh, -12.dbamp, - \ratio, 8, - \amp, 0.dbamp, - ]); - ~stormulatorFx.add(\limiter, [ - \limit, -3.dbamp, - ]); - ~stormulatorFx.add(\greyhole, [ - \feedback, 0.6, - \delayTime, 0.3, - \mix, 0.3, - ]); - ~storumlatorFx.add(\jpverb, [ - \revtime, 3, - \mix, 0.2, - ]); +~stormulatorFx = FxChain.new( + fadeInTime: 5, + level: -3.dbamp, + fadeOutTime: 5, + out: ~masterBus +); +~stormulatorFx.add(\eq, [ + \hishelffreq, 400, + \hishelfdb, -3, + \locut, 120, +]); +~stormulatorFx.add( \compressor, [ + \thresh, -12.dbamp, + \ratio, 8, + \amp, 0.dbamp, +]); +~stormulatorFx.add(\limiter, [ + \limit, -3.dbamp, +]); +~stormulatorFx.add(\greyhole, [ + \feedback, 0.6, + \delayTime, 0.3, + \mix, 0.3, +]); +~storumlatorFx.add(\jpverb, [ + \revtime, 3, + \mix, 0.2, +]); - ~stormulator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.04, - minibeeID: id, - minAmp: -9, - maxAmp: 0, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\coronaWhisper]), - // \buf, Prand(~buf[\flutterSpeak]++~buf[\storychop]), - \dur, dt.linlin(0.0, 1.0, 0.5, 2), - \attack, Pkey(\dur), - \release, Pkey(\dur), - \rate, Pwhite(0.5, 1), - \rateDev, Pwhite(0.0, 0.05), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 1), - \grainsize, Pwhite(0.03, 0.01), - \grainfreq, Pkey(\grainsize).reciprocal, - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0), - \panDev, Pwhite(0.0, 1.0), - \out, ~stormulatorFx.in, - \group, ~stormulatorFx.group, - ).play; - } - ); - }; +~stormulator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.04, + minibeeID: id, + minAmp: -9, + maxAmp: 0, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\coronaWhisper]), + // \buf, Prand(~buf[\flutterSpeak]++~buf[\storychop]), + \dur, dt.linlin(0.0, 1.0, 0.5, 2), + \attack, Pkey(\dur), + \release, Pkey(\dur), + \rate, Pwhite(0.5, 1), + \rateDev, Pwhite(0.0, 0.05), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 1), + \grainsize, Pwhite(0.03, 0.01), + \grainfreq, Pkey(\grainsize).reciprocal, + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0), + \panDev, Pwhite(0.0, 1.0), + \out, ~stormulatorFx.in, + \group, ~stormulatorFx.group, + ).play; + } + ); +}; ) + // ( // ~stormulatorFx.play; // ~stormulator.do(_.play); @@ -67,6 +68,3 @@ // ~stormulatorFx.free; // ~stormulator.do(_.free); // ) - -// s.record("~/stormEye"+/+Date.localtime.stamp++".wav"); -// s.stopRecording; diff --git a/sketches/ten.scd b/sketches/ten.scd index 5d9271a..f215c35 100644 --- a/sketches/ten.scd +++ b/sketches/ten.scd @@ -1,145 +1,145 @@ ( - fork{ - var aBus, revBus, resoBus, distBus, combBus, - dist, reverb, noise, instr, reso, comb, - group, route, fx, routeGroup, - klank, klang, bass, scale, pat, level; - ~free[\ten].(); - level = -20; - klank = List.new(); - klang = List.new(); - bass = List.new(); - pat = List.new(); - route = List.new(); - revBus = Bus.audio(s, ~numSpeakers); - resoBus = Bus.audio(s, ~numSpeakers); - distBus = Bus.audio(s, ~numSpeakers); - combBus = Bus.audio(s, ~numSpeakers); - aBus = Bus.audio(s, ~numSpeakers); - group = Group.new(); - instr = Group.head(group); - reso = Group.after(instr); - routeGroup = Group.after(reso); - fx = Group.after(routeGroup); - s.sync; - noise = Synth(\pink, [\out, resoBus, \amp, -6.dbamp], instr); - reverb = Synth(\jpverb, [\revtime, 4, \in, revBus, \out, ~bus[\ten]], fx); - dist = Synth(\dist, [\gain, 10, \in, distBus, \out, ~bus[\ten]], fx); - comb = Synth(\comb, [\in, combBus, \out, ~bus[\ten], \delay, 0.01], fx); - route.add(Synth(\route, [\in, aBus, \out, 0], routeGroup)); - route.add(Synth(\route, [\in, aBus, \out, revBus], routeGroup)); - route.add(Synth(\route, [\in, aBus, \out, combBus, \amp, 0], routeGroup)); - s.sync; - route.postln; - scale = Scale.minor; - klank.add( - Pbind( - \instrument, \klank, - \dur, 1/4, - \scale, scale, - \degree, Pseq( - (5!10) ++ - (4!10) ++ - (2!10) ++ - (1!6) ++ - (0!4), - ), - \ring, Pwhite(1, 2), - \decay, Pwhite(0.1, 0.3), - \db, Pseq([ - -14, Pwhite(-24, -20, 5), - -16, Pwhite(-34, -20, 3), - ] + level, inf), - \in, resoBus, - \out, aBus, - \reverb, Pfunc({route[1].set(\amp, rrand(-40, -12).dbamp)}), - \comb, Pfunc({|ev| - // comb.set(\delay, ev.freq.reciprocal); - // ev.degree.postln; - route[2].set(\amp, rrand(-40, -6).dbamp) - }), - \pan, Pfunc({noise.set(\pan, rrand(-1.0, 1.0))}), - \group, reso, - ); +fork{ + var aBus, revBus, resoBus, distBus, combBus, + dist, reverb, noise, instr, reso, comb, + group, route, fx, routeGroup, + klank, klang, bass, scale, pat, level; + ~free[\ten].(); + level = -20; + klank = List.new(); + klang = List.new(); + bass = List.new(); + pat = List.new(); + route = List.new(); + revBus = Bus.audio(s, ~numSpeakers); + resoBus = Bus.audio(s, ~numSpeakers); + distBus = Bus.audio(s, ~numSpeakers); + combBus = Bus.audio(s, ~numSpeakers); + aBus = Bus.audio(s, ~numSpeakers); + group = Group.new(); + instr = Group.head(group); + reso = Group.after(instr); + routeGroup = Group.after(reso); + fx = Group.after(routeGroup); + s.sync; + noise = Synth(\pink, [\out, resoBus, \amp, -6.dbamp], instr); + reverb = Synth(\jpverb, [\revtime, 4, \in, revBus, \out, ~bus[\ten]], fx); + dist = Synth(\dist, [\gain, 10, \in, distBus, \out, ~bus[\ten]], fx); + comb = Synth(\comb, [\in, combBus, \out, ~bus[\ten], \delay, 0.01], fx); + route.add(Synth(\route, [\in, aBus, \out, 0], routeGroup)); + route.add(Synth(\route, [\in, aBus, \out, revBus], routeGroup)); + route.add(Synth(\route, [\in, aBus, \out, combBus, \amp, 0], routeGroup)); + s.sync; + route.postln; + scale = Scale.minor; + klank.add( + Pbind( + \instrument, \klank, + \dur, 1/4, + \scale, scale, + \degree, Pseq( + (5!10) ++ + (4!10) ++ + (2!10) ++ + (1!6) ++ + (0!4), + ), + \ring, Pwhite(1, 2), + \decay, Pwhite(0.1, 0.3), + \db, Pseq([ + -14, Pwhite(-24, -20, 5), + -16, Pwhite(-34, -20, 3), + ] + level, inf), + \in, resoBus, + \out, aBus, + \reverb, Pfunc({route[1].set(\amp, rrand(-40, -12).dbamp)}), + \comb, Pfunc({|ev| + // comb.set(\delay, ev.freq.reciprocal); + // ev.degree.postln; + route[2].set(\amp, rrand(-40, -6).dbamp) + }), + \pan, Pfunc({noise.set(\pan, rrand(-1.0, 1.0))}), + \group, reso, ); - klank.add( - Pbind( - \instrument, \klank, - \dur, 1/4, - \scale, scale, - \degree, Pseq( - (5!10) ++ - (2!10) ++ - (4!10) ++ - (1!10) - ), - \ring, Pwhite(1, 2), - \decay, Pwhite(0.1, 0.3), - \db, Pseq([ - -14, Pwhite(-24, -20, 5), - -16, Pwhite(-34, -20, 3), - ] + level, inf), - \in, resoBus, - \out, aBus, - // \reverb, Pfunc({route[1].set(\amp, rrand(-40, -12).dbamp)}), - \pan, Pfunc({noise.set(\pan, rrand(-1.0, 1.0))}), - \group, reso, - ); + ); + klank.add( + Pbind( + \instrument, \klank, + \dur, 1/4, + \scale, scale, + \degree, Pseq( + (5!10) ++ + (2!10) ++ + (4!10) ++ + (1!10) + ), + \ring, Pwhite(1, 2), + \decay, Pwhite(0.1, 0.3), + \db, Pseq([ + -14, Pwhite(-24, -20, 5), + -16, Pwhite(-34, -20, 3), + ] + level, inf), + \in, resoBus, + \out, aBus, + // \reverb, Pfunc({route[1].set(\amp, rrand(-40, -12).dbamp)}), + \pan, Pfunc({noise.set(\pan, rrand(-1.0, 1.0))}), + \group, reso, ); - klang.add( - Pbind( - \instrument, \klang, - \dur, Pseq((2.5!3) ++ [1.5, 1]), - \scale, scale, - \octave, 3, - \attack, Pkey(\dur), - \degree, Pseq([3, [4, 2], [1, 4], [0, 5], [0, 6]]), - \spread, Pwhite(1.999, 2.001), - \db, Pseq((-12!4) ++ -15, inf) + level, - \group, instr, - \pan, Pwhite(-1.0, 1.0), - \legato, 1, - \out, aBus, - ); + ); + klang.add( + Pbind( + \instrument, \klang, + \dur, Pseq((2.5!3) ++ [1.5, 1]), + \scale, scale, + \octave, 3, + \attack, Pkey(\dur), + \degree, Pseq([3, [4, 2], [1, 4], [0, 5], [0, 6]]), + \spread, Pwhite(1.999, 2.001), + \db, Pseq((-12!4) ++ -15, inf) + level, + \group, instr, + \pan, Pwhite(-1.0, 1.0), + \legato, 1, + \out, aBus, ); - bass.add( - Pbind( - \instrument, \am, - \scale, scale, - \octave, 3, - \dur, 1/2, - \degree, Pseq( - (3!5) ++ - (2!5) ++ - (6!5) ++ - (7!5), - ), - \attack, Pkey(\dur), - \modattack, Pkey(\dur), - \modfreq, Pkey(\freq) * 0.5, - \moddepth, 4, - \legato, 0.9, - \db, -32 + level, - \out, distBus, - \group, instr, + ); + bass.add( + Pbind( + \instrument, \am, + \scale, scale, + \octave, 3, + \dur, 1/2, + \degree, Pseq( + (3!5) ++ + (2!5) ++ + (6!5) ++ + (7!5), ), - ); - // pat.add(Pseq(klank, 2)); - // pat.add(Ppar([klank[0], klang[0]], 4)); - pat.add(Ppar([klank[0], bass[0]], inf)); - // pat.add(Ppar([klank[0], klang[0], bass[0]], 4)); - Pdef(\ten, Pseq(pat)).play; + \attack, Pkey(\dur), + \modattack, Pkey(\dur), + \modfreq, Pkey(\freq) * 0.5, + \moddepth, 4, + \legato, 0.9, + \db, -32 + level, + \out, distBus, + \group, instr, + ), + ); + // pat.add(Pseq(klank, 2)); + // pat.add(Ppar([klank[0], klang[0]], 4)); + pat.add(Ppar([klank[0], bass[0]], inf)); + // pat.add(Ppar([klank[0], klang[0], bass[0]], 4)); + Pdef(\ten, Pseq(pat)).play; - ~free[\ten] = { - fork { - Pdef(\ten).stop; - group.release(5); - 10.wait; - group.free; - [aBus, revBus, resoBus, distBus, combBus].do(_.free); - } - } + ~free[\ten] = { + fork { + Pdef(\ten).stop; + group.release(5); + 10.wait; + group.free; + [aBus, revBus, resoBus, distBus, combBus].do(_.free); + } } +} ) // ~free[\ten].(); diff --git a/sketches/tribal.scd b/sketches/tribal.scd index a275c33..15e517c 100644 --- a/sketches/tribal.scd +++ b/sketches/tribal.scd @@ -1,84 +1,84 @@ ( - var lead, lead2, scale, melody, melodyWah, melodySeq, bus, route, group, instr, fx, level; - // ~free[\tribal].(); - - group = Group.new; - instr = Group.head(group); - fx = Group.after(instr); - bus = Bus.audio(s, ~numSpeakers); +var lead, lead2, scale, melody, melodyWah, melodySeq, bus, route, group, instr, fx, level; +// ~free[\tribal].(); - route = Synth.tail(fx, \route, [ - \in, bus, - \out, ~bus[\tribal] - ], fx); +group = Group.new; +instr = Group.head(group); +fx = Group.after(instr); +bus = Bus.audio(s, ~numSpeakers); - scale = Scale.minor(); +route = Synth.tail(fx, \route, [ + \in, bus, + \out, ~bus[\tribal] +], fx); - lead = Pfxb( - Pbind( - \instrument, \pm, - \dur, 1/4, - \degree, Pseq([ - Pseq([0, 0, 4, 4, 3, 2, 1, 2]), - Pseq([0, 0, 4, 4, 3, 2, 6, 7]), - Pseq([0, 0, 4, 4, 3, 2, 1, -1]), - Pseq([0, 0, 4, 4, 3, 2, -3, -1]), - ], inf), - \octave, 4, - \root, 0, - \pmindex, Pwhite(3.0, 6.0), - \modfreq, Pfunc({|ev| - scale.degreeToFreq(ev.degree, ev.root.midicps, ev.octave) - }), - \legato, 0.8, - \attack, Pkey(\dur), - \db, Ppatlace([Pwhite(-16, -14), Pwhite(-25, -20)], inf) + level, - \scale, scale, - // \group, instr, - ), \jpverbx, \xFade, 0.8 - ); +scale = Scale.minor(); - lead2 = Pbind( +lead = Pfxb( + Pbind( \instrument, \pm, \dur, 1/4, - \degree, Prand([ - Pseq([ - Pseq((-3!8)), - Pseq((-4!8)), - Pseq((-3!8)), - Pseq((-5!4)++(-6!4)), - ]), - Pseq([ - Pseq((-3!8)), - Pseq((-4!8)), - Pseq((-5!8)), - Pseq((-3!4)++(-1!2)++(0!2)), - ]), - Pseq((-5!16)++(-4!16)), - ], inf), + \degree, Pseq([ + Pseq([0, 0, 4, 4, 3, 2, 1, 2]), + Pseq([0, 0, 4, 4, 3, 2, 6, 7]), + Pseq([0, 0, 4, 4, 3, 2, 1, -1]), + Pseq([0, 0, 4, 4, 3, 2, -3, -1]), + ], inf), \octave, 4, \root, 0, - \pmindex, Pwhite(0.5, 1.5) + 3, + \pmindex, Pwhite(3.0, 6.0), \modfreq, Pfunc({|ev| scale.degreeToFreq(ev.degree, ev.root.midicps, ev.octave) }), - \legato, 0.9, - \db, Ppatlace([Pwhite(-12, -10), Pwhite(-20, -15)], inf) + level, + \legato, 0.8, + \attack, Pkey(\dur), + \db, Ppatlace([Pwhite(-16, -14), Pwhite(-25, -20)], inf) + level, \scale, scale, - \group, instr - ); + // \group, instr, + ), \jpverbx, \xFade, 0.8 +); + +lead2 = Pbind( + \instrument, \pm, + \dur, 1/4, + \degree, Prand([ + Pseq([ + Pseq((-3!8)), + Pseq((-4!8)), + Pseq((-3!8)), + Pseq((-5!4)++(-6!4)), + ]), + Pseq([ + Pseq((-3!8)), + Pseq((-4!8)), + Pseq((-5!8)), + Pseq((-3!4)++(-1!2)++(0!2)), + ]), + Pseq((-5!16)++(-4!16)), + ], inf), + \octave, 4, + \root, 0, + \pmindex, Pwhite(0.5, 1.5) + 3, + \modfreq, Pfunc({|ev| + scale.degreeToFreq(ev.degree, ev.root.midicps, ev.octave) + }), + \legato, 0.9, + \db, Ppatlace([Pwhite(-12, -10), Pwhite(-20, -15)], inf) + level, + \scale, scale, + \group, instr +); - melody = Ppar([lead, lead2]).play(TempoClock(0.7)); - // melody = Pfxb(melody, \jpverbx, \xFade, 0.3).play(TempoClock(0.7)); - // melodySeq = Pseq([melody, melodyWah], inf).play(TempoClock(0.7)); +melody = Ppar([lead, lead2]).play(TempoClock(0.7)); +// melody = Pfxb(melody, \jpverbx, \xFade, 0.3).play(TempoClock(0.7)); +// melodySeq = Pseq([melody, melodyWah], inf).play(TempoClock(0.7)); - ~free[\tribal] = { - fork{ - melody.stop; - 5.wait; - [bus, route, group].do(_.free); - } +~free[\tribal] = { + fork{ + melody.stop; + 5.wait; + [bus, route, group].do(_.free); } +} ) // ~free[\tribal].(); diff --git a/sketches/trumpetInsects.scd b/sketches/trumpetInsects.scd index 15786ee..d327e4d 100644 --- a/sketches/trumpetInsects.scd +++ b/sketches/trumpetInsects.scd @@ -1,53 +1,53 @@ ( - var bufs, trumpet; - var out, outBus; - var fadeInTime = 30; - var fadeOutTime = 90; - var group, fx, instr; +var bufs, trumpet; +var out, outBus; +var fadeInTime = 30; +var fadeOutTime = 90; +var group, fx, instr; - group = Group.new(); - fx = Group.tail(group); - instr = Group.head(group); +group = Group.new(); +fx = Group.tail(group); +instr = Group.head(group); - // bufs = BufArray("/home/kf/sc/100-sketches/audio/trumpet"); - outBus = Bus.audio(s, ~numSpeakers); - out = Synth(\route, [ - \in, outBus, - \out, ~masterBus, - \attack, fadeInTime, - \release, fadeOutTime, - ], fx); +// bufs = BufArray("/home/kf/sc/100-sketches/audio/trumpet"); +outBus = Bus.audio(s, ~numSpeakers); +out = Synth(\route, [ + \in, outBus, + \out, ~masterBus, + \attack, fadeInTime, + \release, fadeOutTime, +], fx); - trumpet = MBDeltaPlayer( - minibeeID: (13..16), - // minibeeID: [9, 12], - bufs: ~buf[\trumpet], - targetGroup: instr, - out: outBus, - grainFreqRange: [1, 12], - grainSizeRange: [0.001, 0.015], - revTime: 3, - threshold: 0.035, - revLevelRange: [0.001, 0.20], - minAmp: 0.dbamp, - maxAmp: 6.dbamp, - maxDuration: 2, - hishelfdb: -6, - locut: 150, - rateRange: [0.95, 1.2], - ).play; +trumpet = MBDeltaPlayer( + minibeeID: (13..16), + // minibeeID: [9, 12], + bufs: ~buf[\trumpet], + targetGroup: instr, + out: outBus, + grainFreqRange: [1, 12], + grainSizeRange: [0.001, 0.015], + revTime: 3, + threshold: 0.035, + revLevelRange: [0.001, 0.20], + minAmp: 0.dbamp, + maxAmp: 6.dbamp, + maxDuration: 2, + hishelfdb: -6, + locut: 150, + rateRange: [0.95, 1.2], +).play; - ~free[\trumpetInsects] = { - fork{ - out.set(\gate, 0); - fadeOutTime.wait; - trumpet.free; - // bufs.do(_.free); - group.free; - } - }; +~free[\trumpetInsects] = { + fork{ + out.set(\gate, 0); + fadeOutTime.wait; + trumpet.free; + // bufs.do(_.free); + group.free; + } +}; - "sketches/trumpetInsects.scd".postln; +"sketches/trumpetInsects.scd".postln; ) // ~free[\trumpetInsects].(); diff --git a/sketches/trumpetdeltagrain.scd b/sketches/trumpetdeltagrain.scd index 6634327..217b2ad 100644 --- a/sketches/trumpetdeltagrain.scd +++ b/sketches/trumpetdeltagrain.scd @@ -1,95 +1,95 @@ ( - fork{ - var bufs = []; - var group = Group.new(); - var kGroup = Group.head(group); - var instrGroup = Group.after(kGroup); - var routeGroup = Group.after(instrGroup); - var fxGroup = Group.after(routeGroup); - var outGroup = Group.after(fxGroup); - var long = PathName.new(~root+/+"audio/trumpet/long"); - var squeak = PathName.new(~root+/+"audio/trumpet/squeak"); - var trigs; - var route = []; - var reverb; - var revBus = Bus.audio(s, ~numSpeakers); - var revTime = 2; - var aBus = Bus.audio(s, ~numSpeakers); - var outBus = Bus.audio(s, ~numSpeakers); - var eq; - // ~free.do(_.value()); - "sketches/trumpetdeltagrain.scd".postln; - long.entries.do({|path| - bufs = bufs.add(Buffer.readChannel(s, path.fullPath, channels: 0)); - }); - squeak.entries.do({|path| - bufs = bufs.add(Buffer.readChannel(s, path.fullPath, channels: 0)); - }); - route = [ - Synth(\route, [\in, aBus, \out, outBus], routeGroup), - Synth(\route, [\in, aBus, \out, revBus, \amp, 0], routeGroup), - ]; - reverb = Synth(\jpverb, [\revtime, revTime, \in, revBus, \out, outBus], fxGroup); - eq = Synth(\eq, [\in, outBus, \out, ~bus[\trumpetdeltagrain], \locut, 80, \hishelffreq, 500, \hishelfdb, -6 ], outGroup); - s.sync; - bufs.postln; - trigs = ~mb.collect{|id| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.02, - minibeeID: id, - minAmp: -10.dbamp, - maxAmp: 6.dbamp, - function: { |dt, minAmp, maxAmp| - var buf = bufs.choose; - var bufdur = buf.duration * 0.5; - var release = bufdur * 0.5; - var attack = bufdur * 0.4; - var revLevel= rrand(-20, -6).dbamp; - var phasorBus = Bus.control(s, 1); - var phasor = Synth(\kline, [\dur, bufdur, \out, phasorBus], kGroup); - var grFreqBus = Bus.control(s, 1); - var grFreq = Synth(\kline, [\dur, bufdur, \start, rrand(1, 20), \end, rrand(1, 20), \out, grFreqBus], kGroup); - var panBus = Bus.control(s, 1); - var pan = Synth(\kline, [\dur, bufdur, \start, rrand(-1.0, 1.0), \end, rrand(-1.0, 1.0), \out, panBus], kGroup); - var impulseBus = Bus.control(s, 1); - var impulse = Synth(\impulse, [\freq, grFreqBus.asMap, \out, impulseBus], kGroup); - var synth = Synth(\grbuf, - [ - \buf, buf, - \amp, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \attack, attack, - \pos, phasorBus.asMap, - \rate, exprand(0.125, 4), - \grainsize, exprand(0.001, 0.3), - \trig, impulseBus.asMap, - \rel, release, - \pan, panBus.asMap, - // \pan, rrand(-1.0, 1.0), - \out, aBus, - ], - target: instrGroup, - ); - SystemClock.sched((bufdur - attack - release), {synth.release(release)}); - SystemClock.sched(bufdur, { [grFreqBus, grFreq, panBus, pan, phasorBus, impulse, impulseBus].do(_.free); }); - route[1].set(\amp, revLevel); - }; - ).play(); - }; +fork{ + var bufs = []; + var group = Group.new(); + var kGroup = Group.head(group); + var instrGroup = Group.after(kGroup); + var routeGroup = Group.after(instrGroup); + var fxGroup = Group.after(routeGroup); + var outGroup = Group.after(fxGroup); + var long = PathName.new(~root+/+"audio/trumpet/long"); + var squeak = PathName.new(~root+/+"audio/trumpet/squeak"); + var trigs; + var route = []; + var reverb; + var revBus = Bus.audio(s, ~numSpeakers); + var revTime = 2; + var aBus = Bus.audio(s, ~numSpeakers); + var outBus = Bus.audio(s, ~numSpeakers); + var eq; + // ~free.do(_.value()); + "sketches/trumpetdeltagrain.scd".postln; + long.entries.do({|path| + bufs = bufs.add(Buffer.readChannel(s, path.fullPath, channels: 0)); + }); + squeak.entries.do({|path| + bufs = bufs.add(Buffer.readChannel(s, path.fullPath, channels: 0)); + }); + route = [ + Synth(\route, [\in, aBus, \out, outBus], routeGroup), + Synth(\route, [\in, aBus, \out, revBus, \amp, 0], routeGroup), + ]; + reverb = Synth(\jpverb, [\revtime, revTime, \in, revBus, \out, outBus], fxGroup); + eq = Synth(\eq, [\in, outBus, \out, ~bus[\trumpetdeltagrain], \locut, 80, \hishelffreq, 500, \hishelfdb, -6 ], outGroup); + s.sync; + bufs.postln; + trigs = ~mb.collect{|id| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.02, + minibeeID: id, + minAmp: -10.dbamp, + maxAmp: 6.dbamp, + function: { |dt, minAmp, maxAmp| + var buf = bufs.choose; + var bufdur = buf.duration * 0.5; + var release = bufdur * 0.5; + var attack = bufdur * 0.4; + var revLevel= rrand(-20, -6).dbamp; + var phasorBus = Bus.control(s, 1); + var phasor = Synth(\kline, [\dur, bufdur, \out, phasorBus], kGroup); + var grFreqBus = Bus.control(s, 1); + var grFreq = Synth(\kline, [\dur, bufdur, \start, rrand(1, 20), \end, rrand(1, 20), \out, grFreqBus], kGroup); + var panBus = Bus.control(s, 1); + var pan = Synth(\kline, [\dur, bufdur, \start, rrand(-1.0, 1.0), \end, rrand(-1.0, 1.0), \out, panBus], kGroup); + var impulseBus = Bus.control(s, 1); + var impulse = Synth(\impulse, [\freq, grFreqBus.asMap, \out, impulseBus], kGroup); + var synth = Synth(\grbuf, + [ + \buf, buf, + \amp, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \attack, attack, + \pos, phasorBus.asMap, + \rate, exprand(0.125, 4), + \grainsize, exprand(0.001, 0.3), + \trig, impulseBus.asMap, + \rel, release, + \pan, panBus.asMap, + // \pan, rrand(-1.0, 1.0), + \out, aBus, + ], + target: instrGroup, + ); + SystemClock.sched((bufdur - attack - release), {synth.release(release)}); + SystemClock.sched(bufdur, { [grFreqBus, grFreq, panBus, pan, phasorBus, impulse, impulseBus].do(_.free); }); + route[1].set(\amp, revLevel); + }; + ).play(); + }; - ~free.add(\trumpetdeltagrain -> { - fork{ - trigs.do(_.stop); - bufs.do(_.free); - revTime.wait; - reverb.release(revTime); - route.do(_.release(revTime)); - revTime.wait; - aBus.free; - revBus.free; - outBus.free; - group.free; - } - }); - } + ~free.add(\trumpetdeltagrain -> { + fork{ + trigs.do(_.stop); + bufs.do(_.free); + revTime.wait; + reverb.release(revTime); + route.do(_.release(revTime)); + revTime.wait; + aBus.free; + revBus.free; + outBus.free; + group.free; + } + }); +} ) diff --git a/sketches/trumpetulator.scd b/sketches/trumpetulator.scd index 1629692..6e57c87 100644 --- a/sketches/trumpetulator.scd +++ b/sketches/trumpetulator.scd @@ -1,56 +1,63 @@ -( +( +~trumpetulatorFx = FxChain.new( + fadeInTime: 10, + level: 0.dbamp, + fadeOutTime: 15, + out: ~masterBus +); +~trumpetulatorFx.add(\eq, [ + \hishelfdb, -9, + \locut, 150 +]); +~trumpetulatorFx.add(\flanger, [ + \feedback, 0.08, + \depth, 0.04, + \rate, 0.03, + \decay, 0.01, + \mix, 0.2, +]); +~trumpetulatorFx.add(\jpverb, [ + \mix, 0.2, + \revtime, 3 +]); - ~trumpetulatorFx = FxChain.new( - fadeInTime: 10, - level: 0.dbamp, - fadeOutTime: 15, - out: ~masterBus - ); - ~trumpetulatorFx.add(\eq, [ - \hishelfdb, -9, - \locut, 150 - ]); - ~trumpetulatorFx.add(\flanger, [ - \feedback, 0.08, - \depth, 0.04, - \rate, 0.03, - \decay, 0.01, - \mix, 0.2, - ]); - ~trumpetulatorFx.add(\jpverb, [ - \mix, 0.2, - \revtime, 3 - ]); - - ~trumpetulator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.035, - minibeeID: id, - minAmp: -12, - maxAmp: 6, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand((~buf[\brpiano]++~buf[\trumpet])), - \dur, dt.linlin(0.0, 1.0, 0.5, 1), - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur) * 2, - \rate, Prand([0.25, 1], inf), - \rateDev, Pwhite(0.0, 0.15), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 2), - \grainsize, Pwhite(0.001, 0.15), - \grainfreq, Pwhite(1, 12), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \panDev, Pwhite(0.0, 1.0), - \out, ~trumpetulatorFx.in, - \group, ~trumpetulatorFx.group, - ).play; - } - ); - }; - // "trumpetulator.scd".postln; +~trumpetulator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.035, + minibeeID: id, + minAmp: -12, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand((~buf[\brpiano]++~buf[\trumpet])), + \dur, dt.linlin(0.0, 1.0, 0.5, 1), + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * 2, + \rate, Prand([0.25, 1], inf), + \rateDev, Pwhite(0.0, 0.15), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.001, 0.15), + \grainfreq, Pwhite(1, 12), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \out, ~trumpetulatorFx.in, + \group, ~trumpetulatorFx.group, + ).play; + } + ); +}; ) +// ( +// ~trumpetulatorFx.play; +// // ~trumpetulator.do(_.play); +// ~trumpetulator[7].play; +// ) +// ( +// ~trumpetulatorFx.free; +// ~trumpetulator.do(_.free); +// ) diff --git a/sketches/unisonoBubbles.scd b/sketches/unisonoBubbles.scd index 753d669..df16837 100644 --- a/sketches/unisonoBubbles.scd +++ b/sketches/unisonoBubbles.scd @@ -45,3 +45,7 @@ // ~unisonoBubblesFx.play; // ~unisonoBubbles.do(_.play); // ) +// ( +// ~unisonoBubblesFx.free; +// ~unisonoBubbles.do(_.free); +// ) diff --git a/sketches/velcroClean.scd b/sketches/velcroClean.scd index f2da2c7..af770d0 100644 --- a/sketches/velcroClean.scd +++ b/sketches/velcroClean.scd @@ -41,11 +41,11 @@ // ( // ~velcroCleanFx.play; -// ~velcroClean[0.3].do(_.play); -// // ~velcroClean.do(_.play); +// // ~velcroClean[0.3].do(_.play); +// ~velcroClean.do(_.play); // ) // ( // ~velcroCleanFx.free; -// ~velcroClean[0..3].do(_.free); -// // ~velcroClean.do(_.free); +// // ~velcroClean[0..3].do(_.free); +// ~velcroClean.do(_.free); // ) diff --git a/sketches/velcrolator.scd b/sketches/velcrolator.scd index 74390be..04ebde5 100644 --- a/sketches/velcrolator.scd +++ b/sketches/velcrolator.scd @@ -1,59 +1,58 @@ ( - ~velcrolatorFx = FxChain.new( - fadeInTime: 10, - level: -3.dbamp, - fadeOutTime: 10, - out: ~masterBus - ); - ~velcrolatorFx.add(\jpverb, [ - \revtime, 3, - \mix, Pwhite(0.0, 0.1), Pwhite(2, 4), - \lag, 2, - ]); - ~velcrolatorFx.add( \compressor, [ - \thresh, -4.dbamp, - \ratio, 8, - \amp, 0.dbamp, - ]); +~velcrolatorFx = FxChain.new( + fadeInTime: 10, + level: -3.dbamp, + fadeOutTime: 10, + out: ~masterBus +); +~velcrolatorFx.add(\jpverb, [ + \revtime, 3, + \mix, Pwhite(0.0, 0.1), Pwhite(2, 4), + \lag, 2, +]); +~velcrolatorFx.add( \compressor, [ + \thresh, -4.dbamp, + \ratio, 8, + \amp, 0.dbamp, +]); - ~velcrolator = ~mb.collect{|id, idx| - MBDeltaTrig.new( - speedlim: 0.5, - threshold: 0.07, - minibeeID: id, - minAmp: -6, - maxAmp: 6, - function: {|dt, minAmp, maxAmp| - Pbind( - \instrument, \grbufphasor, - \buf, Prand(~buf[\velcro]), - \dur, dt.linlin(0.0, 1.0, 0.5, 2), - \attack, Pkey(\dur) * 0.2, - \release, Pkey(\dur) * 2, - \rate, 1, - // \rate, Prand([0.25, 1], inf), - \rateDev, Pwhite(0.0, 0.5), - \posDev, Pwhite(0.0, 0.3), - \playbackRate, Pwhite(0.1, 2), - \grainsize, Pwhite(0.01, 0.5), - \grainfreq, Pwhite(2, 40), - \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), - \pan, Pwhite(-1.0, 1.0, 1), - \panDev, Pwhite(0.0, 1.0), - \out, ~velcrolatorFx.in, - \group, ~velcrolatorFx.group, - ).play; - } - ); - }; +~velcrolator = ~mb.collect{|id, idx| + MBDeltaTrig.new( + speedlim: 0.5, + threshold: 0.07, + minibeeID: id, + minAmp: -6, + maxAmp: 6, + function: {|dt, minAmp, maxAmp| + Pbind( + \instrument, \grbufphasor, + \buf, Prand(~buf[\velcro]), + \dur, dt.linlin(0.0, 1.0, 0.5, 2), + \attack, Pkey(\dur) * 0.2, + \release, Pkey(\dur) * 2, + \rate, 1, + // \rate, Prand([0.25, 1], inf), + \rateDev, Pwhite(0.0, 0.5), + \posDev, Pwhite(0.0, 0.3), + \playbackRate, Pwhite(0.1, 2), + \grainsize, Pwhite(0.01, 0.5), + \grainfreq, Pwhite(2, 40), + \db, dt.linlin(0.0, 1.0, minAmp, maxAmp), + \pan, Pwhite(-1.0, 1.0, 1), + \panDev, Pwhite(0.0, 1.0), + \out, ~velcrolatorFx.in, + \group, ~velcrolatorFx.group, + ).play; + } + ); +}; ); // ( // ~velcrolatorFx.play; -// ~velcrolator[0].play; -// ) - +// ~velcrolator.do(_.play) +// ) // ( // ~velcrolatorFx.free; -// ~velcrolator[0].free; -// ) +// ~velcrolator.do(_.free); +// ); diff --git a/stormulator/200611_142334.wav b/stormulator/200611_142334.wav new file mode 100644 index 0000000..456ebc2 --- /dev/null +++ b/stormulator/200611_142334.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5b4fa95d8e2b832e093e0dcc02538c485959737c7637aa384260ff5d470aa4f +size 1892456 -- GitLab