Last active
March 6, 2020 05:59
-
-
Save narirou/9329712 to your computer and use it in GitHub Desktop.
A sample music of SuperCollider that use White Noise.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * White Noise Ambient | |
| * | |
| * narirou | |
| * 2013/07/22 | |
| * | |
| * Public licenced. | |
| * | |
| */ | |
| ( | |
| // ------------------ | |
| // | |
| // SynthDef | |
| // | |
| // ------------------ | |
| // Swish | |
| SynthDef(\swish,{ | |
| var basePitch, swishPitch, swish, noise; | |
| var sound; | |
| var env; | |
| noise = WhiteNoise.ar(0.5); | |
| basePitch = EnvGen.kr( | |
| Env( | |
| [0.80, 0.80, 0.44, 0.36, 0.24, 0.12, 0.00], | |
| [1.00, 0.00, 0.00, 0.20, 0.18, 0.18], | |
| 2.0 | |
| ) | |
| ); | |
| swishPitch = LFNoise2.kr(500, 0, 1) * basePitch.range(2.0, 2.7); | |
| swish = Mix.fill( | |
| 4, | |
| {|i| | |
| BPF.ar(noise, swishPitch + SinOsc.kr(i * basePitch.range(10, 0.01)) * 1200); | |
| } | |
| ); | |
| sound = Pan2.ar( | |
| swish, | |
| Line.kr(-0.95, 0.95, 4.5), | |
| 0.04 | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(1.0, 0.5, 4.5, 0.8, \welch), | |
| doneAction:2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Swish2 | |
| SynthDef(\swish2,{ | |
| var sound; | |
| var env; | |
| sound = Resonz.ar( | |
| WhiteNoise.ar(0.5), | |
| 1000, | |
| XLine.kr(0.001, 0.8, 5.3) | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(0.5, 0.5, 6.0, 1, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Swish3 | |
| SynthDef(\swish3,{ | |
| var noise, basePitch, swishPitch, swish; | |
| var sound; | |
| var env; | |
| noise = Limiter.ar( | |
| GVerb.ar( | |
| BPF.ar( | |
| WhiteNoise.ar([0.05, 0.05]), | |
| SinOsc.kr( | |
| SinOsc.kr([1/108, 1/109]).range(1/108, 1/13) | |
| ).exprange(200, 1300), | |
| PMOsc.kr(1/20, 1/256, 3).range(0.1, 3) | |
| ), | |
| roomsize: 10, | |
| damping: PMOsc.kr(1/27, 1/108, 3).range(0.5, 1), | |
| drylevel: SinOsc.kr(1/9).range(0.1, 1) | |
| ) | |
| ); | |
| basePitch = EnvGen.kr( | |
| Env( | |
| [0.80, 0.80, 0.44, 0.36, 0.24, 0.12, 0.00], | |
| [1.00, 0.00, 0.00, 0.20, 0.18, 0.18], | |
| 2.0 | |
| ) | |
| ); | |
| swishPitch = LFNoise2.kr(500, 0, 1) * basePitch.range(2.0, 2.7); | |
| swish = Mix.fill( | |
| 3, | |
| {|i| | |
| BPF.ar(noise, swishPitch + SinOsc.kr(i * basePitch.range(9, 0.1)) * 1000); | |
| } | |
| ); | |
| sound = Pan2.ar( | |
| swish, | |
| Line.kr(-0.95, 0.95, 1.0), | |
| 1.0 | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(2, 0.5, 6.5, 0.5, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Swish4 | |
| SynthDef(\swish4,{ | |
| var sound; | |
| var env; | |
| sound = Resonz.ar( | |
| WhiteNoise.ar(0.5), | |
| 1800, | |
| XLine.kr(0.001, 0.8, 5.3) | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(0.5, 0.5, 6.0, 1, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Step | |
| SynthDef(\step, { arg freq = 0, degree; | |
| var sound; | |
| var env; | |
| sound = OnePole.ar( | |
| BPF.ar(WhiteNoise.ar(1), 1800), | |
| 0.5 | |
| ) * 0.1; | |
| sound = FreeVerb.ar(sound, 0.5, 0.5, 0.1); | |
| env = EnvGen.ar( | |
| Env.perc(0.1, 0.2, 0.5), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0, 1], sound * env); | |
| }).store; | |
| // Step3 | |
| SynthDef(\step3, { | |
| var freq, vib, r; | |
| var sound; | |
| var env; | |
| freq = LFCub.kr(LFCub.kr(0.2, 0, 8, 10)); | |
| vib = BPF.kr(PinkNoise.kr, freq, 0.3) * 10; | |
| r = TRand.kr( | |
| 100, 100, | |
| LFSaw.kr(vib, 0, 2, 30) | |
| ); | |
| sound = BPF.ar( WhiteNoise.ar(1), r/3 ); | |
| sound = Decay.ar( | |
| Impulse.ar(XLine.kr(10, 20, 4)), | |
| 0.2, | |
| sound | |
| ); | |
| sound = OnePole.ar( | |
| sound, | |
| FSinOsc.kr(Line.kr(0.1, 5, 10)) | |
| ); | |
| sound = Pan2.ar( | |
| sound, | |
| FSinOsc.kr(3), | |
| 1.0 | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(0.8, 0.5, 4.0, 1, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0, 1], sound * env); | |
| }).store; | |
| // Blow | |
| SynthDef(\blow, { | |
| var sound; | |
| var env; | |
| sound = OnePole.ar( | |
| BPF.ar(WhiteNoise.ar(1), 100), | |
| FSinOsc.kr(Line.kr(0.1, 5, 10)) | |
| ); | |
| sound = sound + Splay.ar(FreqShift.ar(sound, 1/(4..7))); | |
| sound = Pan2.ar( | |
| sound, | |
| FSinOsc.kr(1), | |
| 0.1 | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(0.5, 0, 3.8, 1, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0, 1], sound * env); | |
| }).store; | |
| // Wind | |
| SynthDef(\wind, { | |
| var pitch; | |
| var sound; | |
| var env; | |
| sound = HPF.ar(WhiteNoise.ar(0.5), XLine.kr(800, 1800, 3)) * 0.05; | |
| 3.do {|i| | |
| var filtered = RLPF.ar(WhiteNoise.ar(0.5), 1000, 0.1) * 0.1; | |
| sound = DelayN.ar(filtered, 1, 0.1*i, 0, sound * 0.7); | |
| }; | |
| env = EnvGen.ar( | |
| Env.linen(0.2, 0, 2.8, 0.8, \welch), | |
| doneAction:2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sinbal | |
| SynthDef(\sinbal, { arg amp = 1, octave=8.0; | |
| var noise, tempo; | |
| var sound; | |
| var env; | |
| noise = HPF.ar(WhiteNoise.ar(0.2), 1000); | |
| tempo = SinOsc.kr(0, 1, 0, 3800); | |
| sound = RHPF.ar(noise, tempo, 1000) * 0.1; | |
| env = EnvGen.ar( | |
| Env.perc, | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sinbal Long | |
| SynthDef(\sinbalLong, { | |
| var pitch; | |
| var sound; | |
| var env; | |
| sound = HPF.ar(WhiteNoise.ar(0.5), XLine.kr(1000, 2000, 1)) * 0.05; | |
| 3.do {|i| | |
| var filtered = RLPF.ar(WhiteNoise.ar(0.5), 1000, 0.1) * 0.1; | |
| sound = DelayN.ar(filtered, 1, 0.1*i, 0, sound * 0.6); | |
| }; | |
| sound = Decay.ar( | |
| Impulse.ar(13, 0.25), | |
| 0.5, | |
| sound, | |
| sound | |
| ); | |
| sound = Pan2.ar( | |
| sound, | |
| Line.kr(-0.95, 0.95, 9.0) | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(1.0, 0, 8.0, 0.8, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sinbal Step | |
| SynthDef(\sinbalStep, { | |
| var sound; | |
| var env; | |
| sound = HPF.ar(WhiteNoise.ar(0.5), XLine.kr(1000, 2000, 0.3)) * 0.05; | |
| 3.do {|i| | |
| var filtered = RLPF.ar(WhiteNoise.ar(0.5), 1000, 0.1) * 0.1; | |
| sound = DelayN.ar(filtered, 1, 0.1*i, 0, sound * 0.6); | |
| }; | |
| sound = Decay.ar( | |
| Impulse.ar(4.7, 0.25), | |
| 0.5, | |
| sound, | |
| sound | |
| ); | |
| env = EnvGen.ar( | |
| Env.linen(0.2, 0, 6.8, 0.8, \welch), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sinbal One | |
| SynthDef(\sinbalOne, { | |
| var sound; | |
| var env; | |
| sound = HPF.ar(WhiteNoise.ar(0.5), XLine.kr(1000, 2000, 3)) * 0.05; | |
| 3.do {|i| | |
| var filtered = RLPF.ar(WhiteNoise.ar(0.5), 1000, 0.1) * 0.1; | |
| sound = DelayN.ar(filtered, 1, 0.1*i, 0, sound * 0.6); | |
| }; | |
| env = EnvGen.ar( | |
| Env.perc(0.05, 0.8, 1, -4), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sizuku | |
| SynthDef(\sizuku, { arg freq = 1000; | |
| var sound; | |
| var env; | |
| sound = RLPF.ar(WhiteNoise.ar(0.5), freq, 0.1) * 0.1; | |
| 2.do{|i| | |
| sound = DelayN.ar(sound, 1, 0.1*i, 0, sound * 0.5); | |
| }; | |
| env = EnvGen.ar( | |
| Env.perc(0.05, 1, 1, -5), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sizuku Random | |
| SynthDef(\sizukuRandom, { arg freq = 1000; | |
| var sound; | |
| var env; | |
| sound = RLPF.ar(WhiteNoise.ar(0.5), Rand(300, freq), 0.1) * 0.1; | |
| 2.do{|i| | |
| sound = DelayN.ar(sound, 1, 0.1*i, 0, sound * 0.5); | |
| }; | |
| env = EnvGen.ar( | |
| Env.perc(0.05, 1, 1, -5), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Sizuku Echo | |
| SynthDef(\sizukuEcho, { arg freq = 1000; | |
| var sound; | |
| var env; | |
| sound = RLPF.ar(WhiteNoise.ar(0.5), Rand(2000, freq), 0.1) * 0.1; | |
| 2.do {|i| | |
| sound = DelayN.ar(sound, 1, 0.1 * i, 0, sound * 0.5); | |
| }; | |
| sound = Decay.ar( | |
| Impulse.ar(XLine.kr(2,20,2.0), 0.25), | |
| 0.5, | |
| sound, | |
| sound | |
| ); | |
| env = EnvGen.ar( | |
| Env.perc(0.05, 3, 1, -5), | |
| doneAction:2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // Background Wind | |
| SynthDef(\bg,{ | |
| var lfs, lfn, lfs2, lfn2, dust, sin, sin2; | |
| var noise, noise2; | |
| var sound; | |
| var env; | |
| // 1 | |
| lfs = LFSaw.ar([1, 5], 0, 3, 70); | |
| lfn = LFNoise2.ar(1, 10, lfs).midicps; | |
| // 2 | |
| lfs2 = LFSaw.ar(1, 0, 2, 40); | |
| lfn2 = LFNoise0.ar(5, 20, lfs2).midicps + 100; | |
| dust = Dust.kr( 5, lfn ); | |
| sin = HPF.ar( | |
| SinOsc.ar(lfn, 0, 0.4), | |
| 1500, | |
| ); | |
| sin2 = HPF.ar( | |
| SinOsc.ar(TRand.kr(300, 1000, dust)), | |
| 500 | |
| ) * 0.3; | |
| noise = BPF.ar(WhiteNoise.ar(0.5), lfn, 0.4); | |
| noise = CombN.ar(noise, 1, 0.3, 2); | |
| noise2 = BPF.ar(WhiteNoise.ar(0.5), lfn2, 0.4); | |
| noise2 = CombN.ar(noise2, 1, 0.3, 2); | |
| sound = Mix.ar([noise2, noise]) * 0.5; | |
| sound = Pan2.ar(sound, FSinOsc.kr(0.5)*Rand(-1, 1), 0.05); | |
| env = EnvGen.ar( | |
| Env.adsr(0.4, 0.3, 3.0, 3.0, 1), | |
| EnvGen.kr(Env.linen(0.1, 1.5, 0.1)), | |
| doneAction: 2 | |
| ); | |
| Out.ar([0,1], sound * env); | |
| }).store; | |
| // ------------------ | |
| // | |
| // Pbinds | |
| // | |
| // ------------------ | |
| // Swish | |
| ~swish = Pbind( | |
| \instrument, \swish, | |
| \degree, Pseq([1], 1), | |
| \dur, 6.5 | |
| ); | |
| ~swish2 = Pbind( | |
| \instrument, \swish2, | |
| \degree, Pseq([1], 1), | |
| \dur, 6.5 | |
| ); | |
| ~swish3 = Pbind( | |
| \instrument, \swish3, | |
| \degree, Pseq([1], 1), | |
| \dur, 16.0 | |
| ); | |
| ~swish4 = Pbind( | |
| \instrument, \swish4, | |
| \degree, Pseq([1], 1), | |
| \dur, 9.0 | |
| ); | |
| // Step | |
| ~step = Pbind( | |
| \instrument, \step, | |
| \degree, Pseq(Array.new.extend(50,1), 1), | |
| \dur, Pseq(List[0.6, 0.2, 0.2, 0.6, 0.2, 0.6], inf), | |
| \octave, Pfunc(8.0), | |
| \scale, Scale.major | |
| ); | |
| ~step3 = Pbind( | |
| \instrument, \step3, | |
| \degree, Pseq([1], 1), | |
| \dur, 6.5 | |
| ); | |
| // Blow | |
| ~blow = Pbind( | |
| \instrument, \blow, | |
| \degree, Pseq([1], 11), | |
| \dur, 6.5 | |
| ); | |
| // Sizuku | |
| ~sizuku = Pbind( | |
| \instrument, \sizuku, | |
| \degree, Pseq([1], 100), | |
| \dur, 2.5, | |
| \octave, 6.0, | |
| \scale, Scale.major | |
| ); | |
| ~sizuku2 = Pbind( | |
| \instrument, \sizuku, | |
| \degree, Pseq([3, 4, 6, 7], 100), | |
| \dur, 1.0, | |
| \octave, 6.0, | |
| \scale, Scale.major | |
| ); | |
| ~sizuku3 = Pbind( | |
| \instrument, \sizukuRandom, | |
| \degree, Pseq([1, 3, 8], 1), | |
| \dur, Pseq(List[1.0, 0.1, 1.2, 0.2, 0.8, 0.1], inf), | |
| \octave, 6.0, | |
| \scale, Scale.major | |
| ); | |
| ~sizukuEcho = Pbind( | |
| \instrument, \sizukuEcho, | |
| \degree, Pseq([3, 6], 6 * 2 - 3),// (17.8 * 2) * 2 + 8.0 + 5.2 | |
| \dur, Pseq(List[5.0, 0.2, 7.0, 1.0, 4.0, 0.6], inf), // 17.8 | |
| \octave, 6.0, | |
| \scale, Scale.major | |
| ); | |
| // Wind | |
| ~wind = Pbind( | |
| \instrument, \wind, | |
| \degree, Pseq([1], 1), | |
| \dur, 4.5 | |
| ); | |
| // Sinbal | |
| ~sinbal = Pbind( | |
| \instrument, \sinbal, | |
| \amp, 1, | |
| \degree, Pseq(Array.new.extend(60,1), 1), | |
| \dur, Pseq(List[0.6, 0.2, 0.2, 0.6, 0.2, 0.6], inf), | |
| \octave, Pfunc(8.0), | |
| \scale, Scale.major | |
| ); | |
| ~sinbalLong = Pbind( | |
| \instrument, \sinbalLong, | |
| \degree, Pseq([1], 1), | |
| \dur, 9.0 | |
| ); | |
| ~sinbalStep = Pbind( | |
| \instrument, \sinbalStep, | |
| \degree, Pseq([1], 1), | |
| \dur, 9.0 | |
| ); | |
| ~sinbalOne = Pbind( | |
| \instrument, \sinbalOne, | |
| \degree, Pseq([1], 100), | |
| \dur, Pseq(List[0.5, 1.5], inf) | |
| ); | |
| // Background Wind | |
| ~bg = Pbind( | |
| \instrument, \bg, | |
| \degree, Pseq([1], 12), | |
| \dur, 5.0 | |
| ); | |
| // ------------------ | |
| // | |
| // Start | |
| // | |
| // ------------------ | |
| Ptpar([ | |
| // Preset01 | |
| 00.0, ~swish2, | |
| 04.5, ~swish, | |
| 05.5, ~sinbalLong, | |
| 07.0, ~wind, | |
| 11.0, ~swish, | |
| 12.0, ~sinbalLong, | |
| 13.5, ~wind, | |
| // Preset02 | |
| 16.5, ~swish4, | |
| 18.0, ~swish3, | |
| 19.0, ~sinbalStep, | |
| 20.5, ~sinbalLong, | |
| 21.5, ~wind, | |
| 25.5, ~swish, | |
| 26.5, ~sinbalLong, | |
| 28.0, ~wind, | |
| 31.0, ~swish, | |
| 32.5, ~sinbalLong, | |
| 34.0, ~wind, | |
| // Preset01 | |
| 37.0, ~swish2, | |
| 41.5, ~swish, | |
| 42.5, ~sinbalLong, | |
| 44.0, ~wind, | |
| 47.0, ~swish, | |
| 48.0, ~sinbalLong, | |
| 49.5, ~wind, | |
| // Preset02 | |
| 52.5, ~swish4, | |
| 54.0, ~swish3, | |
| 55.0, ~sinbalStep, | |
| 56.5, ~sinbalLong, | |
| 58.0, ~wind, | |
| 61.0, ~swish, | |
| 62.0, ~sinbalLong, | |
| 63.5, ~wind, | |
| 66.5, ~swish, | |
| 67.5, ~sinbalLong, | |
| 69.0, ~wind, | |
| // End | |
| 73.5, ~sinbalLong, | |
| // 75.0, ~wind, | |
| // test | |
| // 00.0, ~sizuku, | |
| // 01.8, ~sizuku2, | |
| // 01.8, ~sizuku3, | |
| // 06.0, ~sinbal, | |
| // 01.0, ~step, | |
| // 05.5, ~sinbalStep, | |
| // 05.5, ~sinbalOne, | |
| // Preset3 | |
| 09.0, ~sizukuEcho, | |
| // Preset4 | |
| 02.0, ~bg, | |
| 04.2, ~blow, | |
| ], 1).play; | |
| ) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment