Browse Source

Slower lag, scale, small delta

tags/kitchen
Pete Shadbolt 3 years ago
parent
commit
150d0b5d15
1 changed files with 10 additions and 9 deletions
  1. +10
    -9
      audio.scd

+ 10
- 9
audio.scd View File

@@ -11,35 +11,36 @@ s.waitForBoot {


// Create the synth definition and load it // Create the synth definition and load it
module = SynthDef.new(\module, { module = SynthDef.new(\module, {
arg hue, saturation, value, pan, gain, octave;
arg hue, saturation, value, pan, gain, octave, notefreq;
var oscillator, noise, filter, panner, mixer, frequency, qfactor, lagtime, output, amplitude; var oscillator, noise, filter, panner, mixer, frequency, qfactor, lagtime, output, amplitude;


// Dynamic time of the module // Dynamic time of the module
lagtime = 100 / (2**octave); lagtime = 100 / (2**octave);


// Oscillator/filter frequency // Oscillator/filter frequency
frequency = (130 + (hue * 130)) * (2 ** octave);
frequency = notefreq * (1 + (hue*0.01));
//frequency = (130 + (hue * 130)) * (2 ** octave);
//frequency = 130 * Scale.major.ratios[(hue * 12).asInteger]; //frequency = 130 * Scale.major.ratios[(hue * 12).asInteger];
//frequency = (130 * frequency) * (2**octave); //frequency = (130 * frequency) * (2**octave);
frequency = Lag.kr(frequency, lagtime/10);
frequency = Lag.kr(frequency, lagtime/100);
// Filtered saw oscillator // Filtered saw oscillator
oscillator = SawDPW.ar(frequency);
filter = DFM1.ar(oscillator, frequency, 0.8, 1.0, 0.0, 0.0006);
oscillator = Mix.ar([SawDPW.ar(frequency), SawDPW.ar(frequency/2+0.5)]);
filter = DFM1.ar(oscillator, frequency, saturation/2, 1.0, 0.0, 0.0006);


// Noise // Noise
qfactor = Lag.kr((1 - saturation)**4, lagtime)/10;
qfactor = Lag.kr((1 - saturation)**4, lagtime);
noise = Crackle.ar(1.99, 1.0); noise = Crackle.ar(1.99, 1.0);
noise = BPF.ar(noise, frequency, qfactor); noise = BPF.ar(noise, frequency, qfactor);


// Mix noise and saw // Mix noise and saw
mixer = Mix.ar([filter * saturation, noise*(1-saturation)]);
mixer = Mix.ar([filter * saturation.sqrt(), 0.5 * noise*(1-saturation)]);


// Apply pan // Apply pan
panner = LinPan2.ar(mixer, pan); panner = LinPan2.ar(mixer, pan);


// Apply dynamics // Apply dynamics
amplitude = Lag.kr(HPF.kr(value, 4 * hue / (lagtime)), lagtime/10);
amplitude = Lag.kr(HPF.kr(value, 4 * hue / (lagtime)), lagtime);
output = panner * amplitude; output = panner * amplitude;


// Compress // Compress
@@ -62,7 +63,7 @@ s.waitForBoot {
octave = (2 - (index / 4).floor); octave = (2 - (index / 4).floor);
"Module %: Pan %, octave %\n".postf(index, pan.round(1e-1), octave.round(1e-1)); "Module %: Pan %, octave %\n".postf(index, pan.round(1e-1), octave.round(1e-1));
Synth.new(\module, Synth.new(\module,
[\hue, 0.5, \saturation, 0.1, \value, 0.5, \pan, pan, \gain, 0.9, \octave, octave]
[\hue, 0.5, \saturation, 0.1, \value, 0.5, \pan, pan, \gain, 0.9, \octave, octave, \notefreq, Scale.major.degreeToFreq(index, 48.midicps, octave)]
) )
} }
); );


Loading…
Cancel
Save