165 lines
4.9 KiB
Markdown
165 lines
4.9 KiB
Markdown
# *ark'd, amorphic* development LOG
|
|
|
|
I'll try to post as much as possible about research and work on this project here in a form of a daily log.
|
|
|
|
|
|
|
|
.
|
|
|
|
## 7.apr, 2020
|
|
|
|
Started to sketch more into my notebook:
|
|
|
|
MATERIALS:
|
|
- samples
|
|
- granular syn.
|
|
- glitches, basskicks, highhats
|
|
- leads, pads, basses
|
|
- SynthDefs, Buffers (loading)
|
|
|
|
TRYING THINGS OUT ub a different workflow with Ndef and Proxies?
|
|
|
|
ARCHITECTURE
|
|
- master bus
|
|
- sends?
|
|
- control busses
|
|
|
|
PATTERNS
|
|
- nested
|
|
- 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)
|
|
|
|
)
|
|
)
|
|
)
|
|
```
|
|
|
|
|
|
|
|
|
|
.
|
|
|
|
## 10.apr, 2020
|
|
|
|
Implemented bus routing while using Ndef so I could hear the yesterday's melodies in more rich reverb/delay kinda space:
|
|
|
|
```
|
|
~reverBus = Bus.audio(s,2);
|
|
|
|
Ndef(\ba).play(~reverBus, addAction: \addToHead)
|
|
|
|
~reverbDelay = Synth(\verbDelayFX, [\inBus, ~reverBus, \outBus, 0], addAction: \addAfter);
|
|
```
|
|
... and then the ```Pbind``` or ```Pbindf``` need
|
|
```
|
|
\out, ~reverBus
|
|
```
|
|
inside.
|
|
|
|
I then went on to find ways how to load single-cycle waveforms and discovered that the collection I have has them all in size of 600 samples. Which SC doesn't like in order to oscilate them with ```Osc.ar``` and use them as wavetables. However it's possible to oscilate them with ```BufRd.ar``` which I tested and played a little with it:
|
|
```
|
|
|
|
Ndef(\bosc).play
|
|
Ndef(\bosc).fadeTime=2;
|
|
|
|
(
|
|
Ndef(\bosc, {
|
|
var buffer = ~smpBuffers[2], freq = 30, oscDetune = 1.01, amp = 0.2;
|
|
BufRd.ar(1, bufnum:buffer, phase: LFSaw.ar([freq,freq*oscDetune]) * BufFrames.ir(buffer)) * amp
|
|
//+ SinOsc.ar(60.2) * 0.5;
|
|
} );
|
|
)
|
|
|
|
```
|
|
|
|
... but then I discovered and started to read on Buffer filling methods and ```Harmonics``` class. It's a sine harmonics factory with number of different methods how to manipulate the frequencies and amps for them. It took me a while to understand what exactly is going on, but now I understand and I'm curious about all different ways how one can fill a buffer with various waveforms to use in synths.
|
|
|
|
the main ark_d.scd is in complete disarray, because I'm using it as a testing ground. I should be working in SC_Workspace, but then I would not be able to work on different machines (I would need to continue saving the Workspace, yeah.).
|
|
|
|
That was about 3.5 hours of work today. I feel I'm far from something musically concrete, but **I'm showing up**.
|
|
|
|
-
|
|
|
|
##
|