I wrote a synth that uses Shaper under the hood. I want to render a pattern with it using NRT.
Also I know, that I should initiate buffer in NRT server a bit different, but didn’t find any example how to use it with Buffer methods like .chebyMsg
(
var server = Server(\nrt2,
options: ServerOptions.new
.numOutputBusChannels_(2)
);
var buf = Buffer.new(server, 1024, 1);
var def = SynthDef(\drone1, {
| shaperBuf |
var numsynths = 8;
var freq = \freq.kr(110);
var freqs = numsynths.collect({
freq + Rand(0.5, 2.5);
});
var random_amps_modulators = numsynths.collect({
SinOsc.kr(Rand(0.25, 5), Rand(0, 160).mod(2pi)).range(0.01, 1);
});
var signals = (LFTri.ar(freqs) * random_amps_modulators).collect({
| signal |
Shaper.ar(shaperBuf, signal, 0.5)
});
var sig = signals * \amp.kr(-6.dbamp);
var env = Env([0, 1, 0], [0.5, 9]).kr(2);
sig = RLPF.ar(sig, freq * 5, 0.2);
Out.ar(\out.kr(0), Splay.ar(sig * env));
});
def.add;
x = Pbind(
\instrument, \drone1,
\dur, 8,
\octave, 4,
\note, Pseq([\A, \Cm, \A, \CM7].chordProg, inf),
\amp, -10.dbamp,
\shaperBuf, buf
).asScore(duration: 32, timeOffset: 0.001);
// Here I try to fill this buffer
x.add([0.0, buf.cheby([1, 0.5, 1, 1, 0.25, 2]).allocMsg]);
x.add([0.0, [\d_recv, def.asBytes]]);
x.sort;
x.recordNRT(
outputFilePath: "~/drone.aiff".standardizePath,
sampleRate: 48000,
headerFormat: "AIFF",
sampleFormat: "int16",
options: server.options,
duration: 32
);
server.remove;
)
But result file is empty.
So how can I use chebyMsg with NRT?