124 lines
2.3 KiB
Plaintext
124 lines
2.3 KiB
Plaintext
(
|
|
(
|
|
SynthDef(\pitch, {
|
|
|
|
|
out,
|
|
n,
|
|
channel,
|
|
stepsPerOctave = 12,
|
|
rate = 1,
|
|
delta,
|
|
begin,
|
|
end,
|
|
portamento = 0 |
|
|
var slew, env, phase;
|
|
n = n + (stepsPerOctave / 12);
|
|
n = (n + (n / stepsPerOctave) * (1 / (stepsPerOctave + 1)) / 10);
|
|
slew = (portamento);
|
|
slew = (slew + (slew / stepsPerOctave) * (1 / (stepsPerOctave + 1)) / 10);
|
|
env = Env([n, n + slew], [delta / rate]);
|
|
phase = Line.ar(begin, end, delta / rate);
|
|
OffsetOut.ar(channel, IEnvGen.ar(env, phase));
|
|
}).add
|
|
);
|
|
|
|
(
|
|
SynthDef(\gate, {
|
|
|
|
|
out,
|
|
channel,
|
|
amp,
|
|
n |
|
|
n = n * 5;
|
|
OffsetOut.ar(channel, DC.ar(n) * amp);
|
|
}).add
|
|
);
|
|
|
|
(
|
|
SynthDef(\voltage, {
|
|
|
|
|
out,
|
|
channel,
|
|
n,
|
|
rate = 1,
|
|
delta,
|
|
begin,
|
|
amp = 1,
|
|
end,
|
|
portamento = 0 |
|
|
var slew, env, phase;
|
|
n = n * 5;
|
|
slew = (portamento);
|
|
rate = rate;
|
|
env = Env([n, n + slew], [delta / rate]);
|
|
phase = Line.ar(begin, end, delta / rate);
|
|
OffsetOut.ar(channel, EnvGen.ar(env, phase) * amp);
|
|
}).add
|
|
);
|
|
|
|
(
|
|
SynthDef(\saw, {
|
|
|
|
|
out,
|
|
channel,
|
|
amp = 1,
|
|
rate = 0.5 |
|
|
OffsetOut.ar(channel, abs(Saw.ar(rate)) * amp);
|
|
}).add;
|
|
);
|
|
|
|
(
|
|
SynthDef(\lfo, {
|
|
|
|
|
out,
|
|
channel,
|
|
amp = 1,
|
|
rate = 0.5 |
|
|
OffsetOut.ar(channel, K2A.ar(abs(SinOsc.ar(rate, 0)) * amp));
|
|
}).add;
|
|
);
|
|
|
|
(
|
|
SynthDef(\ar, {
|
|
|
|
|
out,
|
|
channel,
|
|
attack = 0.01,
|
|
decay = 0.25,
|
|
sustain = 0.25,
|
|
release = 0.25,
|
|
begin,
|
|
amp = 1,
|
|
end |
|
|
var env, phase;
|
|
env = Env.adsr(attack, decay, sustain, release);
|
|
phase = Line.ar(begin, end, sustain);
|
|
OffsetOut.ar(channel, IEnvGen.ar(env, phase) * amp);
|
|
}).add
|
|
);
|
|
|
|
(
|
|
SynthDef(\nPitch, {
|
|
| out,
|
|
channel = 0,
|
|
freq = 440,
|
|
portamento = 0 |
|
|
var n = Lag.ar(log2(K2A.ar(freq)/440), portamento);
|
|
var sig = LinLin.ar(n, -1, 9, 0, 1);
|
|
OffsetOut.ar(channel, [sig]);
|
|
}).add
|
|
);
|
|
|
|
(
|
|
SynthDef(\nGate, {
|
|
| out,
|
|
channel = 0,
|
|
n,
|
|
portamento = 0 |
|
|
var sig = LinLin.ar(n, -1, 9, 0, 1);
|
|
OffsetOut.ar(channel, [sig]);
|
|
}).add
|
|
);
|
|
|
|
)
|