«Modal synthesis of xilophone, marimba, glokenspiel, tubular bells» by nicolaariutti
on 21 Jul'18 11:41 inExample of modal synthesis made with a Klank UGEN as resonator and white noise impulse as an exciter.
All resonators of the Klank UGEN are properly tuned to resamble modal frequencies of a real bell I've recoded and analysed.
The fs
, pitchy
and T60
arguments are used to scale all the system in order to simulate various percussive instruments such as xilophone, marimba, glokenspiel and tubular bells.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
// 1. define the synth ( SynthDef(\bell, { |fs=1, t60=1, pitchy=1, amp=0.25, gate=1| var sig, exciter; //exciter = Impulse.ar(0); exciter = WhiteNoise.ar() * EnvGen.ar(Env.perc(0.001, 0.05), gate) * 0.25; sig = Klank.ar( `[ [1, 2, 2.803, 3.871, 5.074, 7.81, 10.948, 14.421], // freqs [1, 0.044, 0.891, 0.0891, 0.794, 0.1, 0.281, 0.079], // amplitudes [1, 0.205, 1, 0.196, 0.339, 0.047, 0.058, 0.047]*t60 // ring times ], exciter, freqscale:fs*pitchy); sig = FreeVerb.ar(sig) * amp; DetectSilence.ar(sig, 0.001, 0.5, doneAction:2); Out.ar(0, sig!2); }).add ) // 2. Test a single note x = Synth(\bell, [\fs, 60.midicps, \t60, 9.177, \pitchy, 8]); // 3. Test different textures // glokenspiel ( Pbind( \instrument, \bell, \fs, Pseq( (60..72), 1).midicps, \t60, 6, \pitchy, 4, \dur, 0.25 ).play; ) // tubular bells ( Pbind( \instrument, \bell, \fs, Pseq( (60..72), 1).midicps, \t60, 9, \pitchy, 1, \dur, 1 ).play; ) // xilophone ( Pbind( \instrument, \bell, \fs, Pseq( (60..72), 1).midicps, \t60, 1, \pitchy, 4, \dur, 0.25 ).play; ) // marimba ( Pbind( \instrument, \bell, \fs, Pseq( (60..72), 1).midicps, \t60, 0.5, \pitchy, 1, \dur, 0.25 ).play; )
descendants
full graph
«Re: Modal synthesis of xilophone, marimba, glokenspiel, tubular bells» by anonymous (private)
reception
I'm super impressed, thanks for sharing this !
Thanks a lot!