diff --git a/LOG.md b/LOG.md index 9fb14ec..ba878c6 100644 --- a/LOG.md +++ b/LOG.md @@ -1,12 +1,5 @@ # *ark'd, amorphic* development LOG -## 8.apr, 2020 - -Ended up with two kinda finished SynthDefs - a granulator (I wonder how could it be made more reusable, there's space for improvement), and a supersaw, that is still quite soft - I think quite useful for some deep ground here and there. I have managed to make it quite clean, and learned a lot in the process, especially regarding the Splay and panning and stereo balancing. Basic loading of whatever is in lib/ and smp/ folders now works. Will need to be improved on the way. - -I'm kinda moving towards a self-baked framework for composing *dance* tracks, or at least beat-based stuff. It's probably the only way - to build everything by yourself (of course so much has been built within SuperCollider too on top of which I'm building now. There's now also just a basic Buffer player. I was thinking to just create number of different SynthDefs, all some kind of specific synth sounds - pads, leads, basses, etc. I'm also thinking to get onto the single-cycle waveforms collection and use that for table oscilators: Osc, COsc, VOsc, VOsc3... - -I also init remote git repo on git.tmp.si/luka/ark_d.amorphic and pushed current work there (here?). ## 7.apr, 2020 @@ -28,4 +21,87 @@ ARCHITECTURE PATTERNS - nested - - Ppar, conductor? \ No newline at end of file + - Ppar, conductor? + + + +## 8.apr, 2020 + +Ended up with two kinda finished SynthDefs - a granulator (I wonder how could it be made more reusable, there's space for improvement), and a supersaw, that is still quite soft - I think quite useful for some deep ground here and there. I have managed to make it quite clean, and learned a lot in the process, especially regarding the Splay and panning and stereo balancing. Basic loading of whatever is in lib/ and smp/ folders now works. Will need to be improved on the way. + +I'm kinda moving towards a self-baked framework for composing *dance* tracks, or at least beat-based stuff. It's probably the only way - to build everything by yourself (of course so much has been built within SuperCollider too on top of which I'm building now. There's now also just a basic Buffer player. I was thinking to just create number of different SynthDefs, all some kind of specific synth sounds - pads, leads, basses, etc. I'm also thinking to get onto the single-cycle waveforms collection and use that for table oscilators: Osc, COsc, VOsc, VOsc3... + +I also init remote git repo on git.tmp.si/luka/ark_d.amorphic and pushed current work there (here?). + + + +## 9.apr, 2020 + +Three hours of play and learning in the morning. Learned how to use ```Ndef``` and then experimented with first building a synth (using Ndef) with sine and pulse oscilators, adding detuning and filter, converting to a ```SynthDef``` and using ```Ndef``` to play with a ```Pbind```: + +``` + +( +SynthDef(\sinPulz, { + arg gate = 1, freq, out=0, amp = 1, attackTime=0.01, releaseTime=1, oscDetune=0.05, cutoff=1; + var snd, env; + + oscDetune = oscDetune * 0.1; + oscDetune = oscDetune+1; + + + env = Linen.kr(gate, attackTime:attackTime, releaseTime:releaseTime, doneAction:2); + + snd = SinOsc.ar([freq, freq*oscDetune]) ; + snd = snd + SinOsc.ar([freq*2, freq*oscDetune*2]) ; + snd = snd + Pulse.ar([freq/2,(freq/2)*oscDetune]) * LFNoise1.kr(0.5).exprange(2,40); + + snd = snd.softclip; + snd = RLPF.ar(snd, freq: + //LFNoise1.kr(0.01).exprange(4000,300), + freq * cutoff, + rq:0.4); + + snd = snd * env * amp * 0.4; + + Out.ar(out, snd); +}).add; +) + +// add a delay/reverb bus here? + +// first press play :) +Ndef(\ba).play + +// set default quant +Ndef(\ba).proxyspace.quant = 5; + +( +Ndef(\ba, + Pbindf( + Ppar([ + Pbind( + \octave, [4,5,7], + \amp, [0.1,0.2,0.005], + \degree, Pseq([0,3,4,2,6], inf), + \dur, Prand([1,0.5,2], inf), + ), + Pbind( + \octave, [3,6], + \degree, Pseq([[0,-3],4,6,3,2], inf), + \dur, 3.5, + \amp, 0.2, + \legato, 0.6, + \attackTime, 2, + \releaseTime, 2, + )]), + // common parameters + \instrument, \sinPulz, + \oscDetune, Prand([1,3,7]*0.01, inf), + \scale, Scale.minor.tuning_(\just), + \cutoff, Prand([1,2,3,4,5,6], inf) + + ) + ) +) +``` \ No newline at end of file diff --git a/ark_d.scd b/ark_d.scd index 5adcff2..07cec11 100644 --- a/ark_d.scd +++ b/ark_d.scd @@ -54,6 +54,113 @@ y.set(\pan, 0) y.set(\gate, 0) z = Synth(\bufPlayer, [\bufnum, ~smpBuffers.at(0)]) + +/////////////////////////////////////////////////////////////////////////////////////////// + + +( +SynthDef(\sinPulz, { + arg gate = 1, freq, out=0, amp = 1, attackTime=0.01, releaseTime=1, oscDetune=0.05, cutoff=1; + var snd, env; + + oscDetune = oscDetune * 0.1; + oscDetune = oscDetune+1; + + + env = Linen.kr(gate, attackTime:attackTime, releaseTime:releaseTime, doneAction:2); + + snd = SinOsc.ar([freq, freq*oscDetune]) ; + snd = snd + SinOsc.ar([freq*2, freq*oscDetune*2]) ; + snd = snd + Pulse.ar([freq/2,(freq/2)*oscDetune]) * LFNoise1.kr(0.5).exprange(2,40); + + snd = snd.softclip; + snd = RLPF.ar(snd, freq: + //LFNoise1.kr(0.01).exprange(4000,300), + freq * cutoff, + rq:0.4); + + snd = snd * env * amp * 0.4; + + Out.ar(out, snd); +}).add; +) + +// add a delay/reverb bus here? + +// first press play :) +Ndef(\ba).play + +// set default quant +Ndef(\ba).proxyspace.quant = 5; + +( +Ndef(\ba, + Pbindf( + Ppar([ + Pbind( + \octave, [4,5,7], + \amp, [0.1,0.2,0.005], + \degree, Pseq([0,3,4,2,6], inf), + \dur, Prand([1,0.5,2], inf), + ), + Pbind( + \octave, [3,6], + \degree, Pseq([[0,-3],4,6,3,2], inf), + \dur, 3.5, + \amp, 0.2, + \legato, 0.6, + \attackTime, 2, + \releaseTime, 2, + )]), + // common parameters + \instrument, \sinPulz, + \oscDetune, Prand([1,3,7]*0.01, inf), + \scale, Scale.minor.tuning_(\just), + \cutoff, Prand([1,2,3,4,5,6], inf) + + ) + + +) +) +//////////////////////////////////////////////////////////////////////////////////////////// + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ///////////////////////////////////////////////////////////////////////////////////////