// ======================================================================================================================================================================================= // Example 1 // 4 Sine Wave Oscillators with individual pitch control (Y MODE, Encoders 1A, 2A, 3A & 4A) // Sinewave 1 (sine1) = 200hz // Sinewave 2 (sine2) = 300hz // Sinewave 3 (sine3) = 400hz // Sinewave 4 (sine4) = 500hz // Pitch control for each Sinewave is +/- 1000hz // NOTE: SuperCollider Oscillators work at positive and negative frequencies (you'll notice this when turning the encoders) // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; // This will load OSC definitions so that SuperCollider knows what to expect on its OSC software port (i.e. wahat encoder data-streams etc.) // Having these defenitions in a seperate file saves you from having to copy/paste the same defenintions in each patch file. x = { // This is where you define your parameters // You can define all possible Planet Drone parameters even when you only use a few of them // Remember that the patch filename pre-fix (4_, 8_, 12_ or 16_) gives you access to either the first 4, first 8, first 12 or all 16 "planetDrone_" parameters // "planetDrone_effect_1" to "planetDrone_effect_3" are always accepted. arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, // Y-MODE, Encoders 1A, 2A, 3A and 4A planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, // Y-MODE, Encoders 1B, 2B, 3B and 4B planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, // Y-MODE, Encoders 1C, 2C, 3C and 4C planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, // Y-MODE, Encoders 1D, 2D, 3D and 4D planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, // X-MODE, Encoders 1 EFF, 2 EFF, 3 EFF sine1, sine2, sine3, sine4, result; sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000), 0, 0.5).dup; // Sine Oscillator 1, 200hz +/- ("Range of planetDrone_1a = -1 and less ..0.. +1 and more" * 1000) sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000), 0, 0.5).dup; // Sine Oscillator 2, 300hz +/- ("Range of planetDrone_1a = -1 and less ..0.. +1 and more" * 1000) sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000), 0, 0.5).dup; // Sine Oscillator 3, 400hz +/- ("Range of planetDrone_1a = -1 and less ..0.. +1 and more" * 1000) sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000), 0, 0.5).dup; // Sine Oscillator 4, 500hz +/- ("Range of planetDrone_1a = -1 and less ..0.. +1 and more" * 1000) result = (sine1 + sine2 + sine3 + sine4); // Mix Sinewaves }.play; s.volume = -95; // This is the initial patch volume and it's controlled by X-MODE, Encoder 4 Volume. // You have to turn up the volume to hear audio. // Set to -10 or so when developing a patch so that you don't turn up the volume each time you test your creative patch! } // ======================================================================================================================================================================================= // ======================================================================================================================================================================================= // Example 2 // 4 Sine Wave Oscillators with individual pitch control (Y MODE, 1A, 2A, 3A & 4A) // ... plus a fixed frequency change of +/- 100hz each at a slow frequency of 0.25hz // Sinewave 1 (sine1) = 200hz // Sinewave 2 (sine2) = 300hz // Sinewave 3 (sine3) = 400hz // Sinewave 4 (sine4) = 500hz // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; x = { arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, sine1, sine2, sine3, sine4, result; sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000) + SinOsc.ar(0.25, 0, 100), 0, 0.5).dup; sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000) + SinOsc.ar(0.25, 0, 100), 0, 0.5).dup; sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000) + SinOsc.ar(0.25, 0, 100), 0, 0.5).dup; sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000) + SinOsc.ar(0.25, 0, 100), 0, 0.5).dup; result = (sine1 + sine2 + sine3 + sine4); }.play; s.volume = -95; } // ======================================================================================================================================================================================= // ======================================================================================================================================================================================= // Example 3 // 4 Sine Wave Oscillators with individual pitch control (Y MODE, 1A, 2A, 3A & 4A) // ... plus a fixed frequency change of +/- 100hz each at a slow frequency of 0.25hz // ....plus a variable frequency change of the "wobble" using X-MODE Encoder 1 EFF by +/- 4hz // Sinewave 1 (sine1) = 200hz // Sinewave 2 (sine2) = 300hz // Sinewave 3 (sine3) = 400hz // Sinewave 4 (sine4) = 500hz // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; x = { arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, sine1, sine2, sine3, sine4, result; sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100), 0, 0.5).dup; sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100), 0, 0.5).dup; sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100), 0, 0.5).dup; sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100), 0, 0.5).dup; result = (sine1 + sine2 + sine3 + sine4); }.play; s.volume = -95; } // ======================================================================================================================================================================================= // ======================================================================================================================================================================================= // Example 4 // 4 Sine Wave Oscillators with individual pitch control (Y MODE, 1A, 2A, 3A & 4A) // ... plus a fixed frequency change of +/- 100hz each at a slow frequency of 0.25hz // ... plus a variable frequency change of the "wobble" using X-MODE Encoder 1 EFF by +/- 4hz // ... plus now with frequency depth using X-MODE Encoder 2 EFF // Sinewave 1 (sine1) = 200hz // Sinewave 2 (sine2) = 300hz // Sinewave 3 (sine3) = 400hz // Sinewave 4 (sine4) = 500hz // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; x = { arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, sine1, sine2, sine3, sine4, result; sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; result = (sine1 + sine2 + sine3 + sine4); }.play; s.volume = -95; } // ======================================================================================================================================================================================= // ======================================================================================================================================================================================= // Example 5 // 4 Sine Wave Oscillators with individual pitch control (Y MODE, 1A, 2A, 3A & 4A) // ... plus a fixed frequency change of +/- 100hz each at a slow frequency of 0.25hz // ... plus a variable frequency change of the "wobble" using X-MODE Encoder 1 EFF by +/- 4hz // ... plus now with frequency depth using X-MODE Encoder 2 EFF // ... plus with even more frequency shift but this time at different depths using X-MODE Encoder 3 EFF // Sinewave 1 (sine1) = 200hz // Sinewave 2 (sine2) = 300hz // Sinewave 3 (sine3) = 400hz // Sinewave 4 (sine4) = 500hz // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; x = { arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, sine1, sine2, sine3, sine4, result; sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) + (planetDrone_effect_3*20), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) - (planetDrone_effect_3*5.25), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) + (planetDrone_effect_3*30), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) - (planetDrone_effect_3*10.75), 0, 100 + (planetDrone_effect_2*250)), 0, 0.5).dup; result = (sine1 + sine2 + sine3 + sine4); }.play; s.volume = -95; } // ======================================================================================================================================================================================= // ======================================================================================================================================================================================= // Example 6 // Like example 5 but with a fixed amount of reverb to get you droning! // ======================================================================================================================================================================================= s.waitForBoot{ "../OSCfunctions.scd".loadRelative; x = { arg planetDrone_1a, planetDrone_2a, planetDrone_3a, planetDrone_4a, planetDrone_1b, planetDrone_2b, planetDrone_3b, planetDrone_4b, planetDrone_1c, planetDrone_2c, planetDrone_3c, planetDrone_4c, planetDrone_1d, planetDrone_2d, planetDrone_3d, planetDrone_4d, planetDrone_effect_1, planetDrone_effect_2, planetDrone_effect_3, sine1, sine2, sine3, sine4, result; GVerb.ar( sine1 = SinOsc.ar(200 + (planetDrone_1a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) + (planetDrone_effect_3*20), 0, 100 + (planetDrone_effect_2*250)), 0, 0.1).dup; sine2 = SinOsc.ar(300 + (planetDrone_2a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) - (planetDrone_effect_3*5.25), 0, 100 + (planetDrone_effect_2*250)), 0, 0.1).dup; sine3 = SinOsc.ar(400 + (planetDrone_3a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) + (planetDrone_effect_3*30), 0, 100 + (planetDrone_effect_2*250)), 0, 0.1).dup; sine4 = SinOsc.ar(500 + (planetDrone_4a * 1000) + SinOsc.ar(0.25 + (planetDrone_effect_1*4) - (planetDrone_effect_3*10.75), 0, 100 + (planetDrone_effect_2*250)), 0, 0.1).dup; result = (sine1 + sine2 + sine3 + sine4), roomsize: 25, revtime: 4, damping: 0.4, inputbw: 0.15, spread: 18, drylevel: -8, earlyreflevel: -9, taillevel: -8, maxroomsize: 100, mul: 0.1, add: 0) }.play; s.volume = -95; } // =======================================================================================================================================================================================