«Re: Kalimba» by p.dupuis

on 22 Apr'16 03:37 in code forkinstrumentpluckkalimbaplucked

Here is a slightly thinner sounding version of snappizz's kalimba SynthDef. I added filtering on the SinOsc and on the PinkNoise. IMO it sounds better if the mix stays low.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(
SynthDef(\kalimba, {
    |out = 0, freq = 440, amp = 0.1, mix = 0.1|
    var snd, click;
    // Basic tone is a SinOsc
    snd = SinOsc.ar(freq) * EnvGen.ar(Env.perc(0.03, Rand(3.0, 4.0), 1, -7), doneAction: 2);
	snd = HPF.ar( LPF.ar(snd, 380), 120);
    // The "clicking" sounds are modeled with a bank of resonators excited by enveloped white noise
	click = DynKlank.ar(`[
        // the resonant frequencies are randomized a little to add variation
        // there are two high resonant freqs and one quiet "bass" freq to give it some depth
        [240*ExpRand(0.97, 1.02), 2020*ExpRand(0.97, 1.02), 3151*ExpRand(0.97, 1.02)],
        [-9, 0, -5].dbamp,
        [0.8, 0.07, 0.08]
	], BPF.ar(PinkNoise.ar, 6500, 0.1) * EnvGen.ar(Env.perc(0.001, 0.01))) * 0.1;
	snd = (snd*mix) + (click*(1-mix));
	snd = Mix( snd );
    Out.ar(out, Pan2.ar(snd, 0, amp));
}).add;
)

(
Pbind(
    \instrument, \kalimba,
    \dur, Pseq([0.3, 0.15], inf),
	\stretch, 1.3,
    \amp, 0.5*(2**Pgauss(0, 0.1)),
    \degree, Pseq([0, -3, [1, 4], 2, Rest, 1, -3, -2, -4, -2, [0, 5], 1, Rest, 0, -2, Rest], inf)
).play;
)
ancestors
full graph
raw 1128 chars (focus & ctrl+a+c to copy)
reception
comments