Skip to content

prayerBell SynthDef add() works in supercollider but fails in sc3nb. #26

@quagly

Description

@quagly

This prayerBell synthDef fails when adding to scsynth using sc3nb but works when used directly in supercollider. I am able to use some other SynthDefs.

Environment
python 3.13.7
sc3nb dev branch

Code

SynthDef("prayerbell", definition=r"""
{ arg out, singSwitch = 0, freq = 2434, amp = 0.5, decayScale = 1, lag = 10, pan = 0;
	var snd, input, first, freqScale, mallet, sing;
	freqScale = freq / 2434;
	freqScale = Lag3.kr(freqScale, lag);
	decayScale = Lag3.kr(decayScale, lag);

	// mallet
	mallet = LPF.ar(
		in: Impulse.ar(0) ! 2 * amp,
		freq: 10000 * freqScale
	);

	// sing
	sing = LPF.ar(
		in: {PinkNoise.ar * Integrator.kr(singSwitch * 0.001, 0.999).linexp(0, 1, 0.01, 1) * amp} ! 2,
		freq: 2434 * freqScale
	);

	sing = sing + Dust.ar(0.1);
	sing = LPF.ar(sing, 10000 * freqScale);
	sing = sing * LFNoise1.kr(0.5).range(-45, -30).dbamp;

	// input = mallet + sing
	input = mallet + (singSwitch.clip(0, 1) * sing);

	// resonant filter bank
	snd = DynKlank.ar(
		specificationsArrayRef: `[
			// Array of filter frequencies
			[
				(first = LFNoise1.kr(0.5).range(2424, 2444)) + Line.kr(20, 0, 0.5),
				first + LFNoise1.kr(0.5).range(1,3),
				LFNoise1.kr(1.5).range(5435, 5440) - Line.kr(35, 0, 1),
				LFNoise1.kr(1.5).range(5480, 5485) - Line.kr(10, 0, 0.5),
				LFNoise1.kr(2).range(8435, 8445) + Line.kr(15, 0, 0.05),
				LFNoise1.kr(2).range(8665, 8670),
				LFNoise1.kr(2).range(8704, 8709),
				LFNoise1.kr(2).range(8807, 8817),
				LFNoise1.kr(2).range(9570, 9607),
				LFNoise1.kr(2).range(10567, 10572) - Line.kr(20, 0, 0.05),
				LFNoise1.kr(2).range(10627, 10636) + Line.kr(35, 0, 0.05),
				LFNoise1.kr(2).range(14689, 14697) - Line.kr(10, 0, 0.05)
			],
			// Array of filter amplitudes
			[
				LFNoise1.kr(1).range(-10, -5).dbamp,
				LFNoise1.kr(1).range(-20, -10).dbamp,
				LFNoise1.kr(1).range(-12, -6).dbamp,
				LFNoise1.kr(1).range(-12, -6).dbamp,
				-20.dbamp,
				-20.dbamp,
				-20.dbamp,
				-25.dbamp,
				-10.dbamp,
				-20.dbamp,
				-20.dbamp,
				-25.dbamp
			],
			// Array of filter decay times
			[
				20 * freqScale.pow(0.2),
				20 * freqScale.pow(0.2),
				5,
				5,
				0.6,
				0.5,
				0.3,
				0.25,
				0.4,
				0.5,
				0.4,
				0.6
			] * freqScale.reciprocal.pow(0.5)
		],
		input: input,
		freqscale: freqScale,
		freqoffset: 0,
		decayscale: decayScale
	);

	DetectSilence.ar(snd, doneAction: 2);

	Out.ar(out, Pan2.ar(Mix.ar(snd), pan));
}
""").add()

Error

ERROR: unable to receive /return message from sclang
sclang output: (also see console) 

sc3> 
<c); r.tmpSynthDef.asBytes();", "127.0.0.1", 57131);
sc3nb - Creating SynthDef prayerbell
-> Int8Array[83, 67, 103, 102, 0, 0, 0, 2, 0, 1, 10, 112, 114, 97, 121, 101, 114, 98, 101, 108, 108, 0, 0, 0, 45, 69, 24, 32, 0, 0, 0, 0, 0, 70, 28, 64, 0, 58, -125, 18, 111, 63, 127, -66, 119, 63, -128, 0, 0, 60, 35, -41, 10, 61, -52, -52, -51, 63, 0, 0, 0, 64, -16, 0, 0, -62, 22, 0, 0, 65, 32, 0, 0, 65, -96, 0, 0, 64, 0, 0, 0, 63, -64, 0, 0, 64, 32, 0, 0, 69, -87, -20, 0, 66, 12, 0, 0, 69, -85, 84, 0, 64, -96, 0, 0, 70, 3, -32, 0, 65, 112, 0, 0, 61, 76, -52, -51, 70, 7, 110, 0, 70, 8, 10, 0, 70, 9, -80, 0, 6...etc...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions