«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!