// title: UI sounds (pt1) // author: nicolaariutti // description: // This code is an attempt to recreate a sound inspired from some technological/science fictional UI interface. // // Sounds are created using FM technique. // Play around FC, FM, ATK and RLS to obtain different sound characters. // code: // UI sounds // this code is an attempt to recreate a sound // inspired from some technological/electrical UI interface // 1. first define the synth // Here we are using the FM technique ( SynthDef(\fmmod, { | amp=0.2, fc=1000, fm = 100, idx = 100, atk=0.01, rls=0.1 | var env = EnvGen.ar(Env.perc(atk, rls), doneAction:2); var modulator = SinOsc.ar(fm); var carrier = SinOsc.ar(fc + (idx*modulator) ); var sig = carrier * env * amp; sig = HPF.ar(sig, 1000); Out.ar(0, sig!2); }).add; ) // 2. then define the Pbind which will play the sequence // of UI sounds simulating variuos characters showing up on an // imaginary display. // Play around FC, FM, ATK and RLS to obtain different sound characters. ( p = Pbind( \instrument, \fmmod, \fc, 10000, \fm, 100, \idx, 100, \amp, 0.6, \atk, 0.01, \rls, 0.001, \dur, Pwhite(0.1, 0.05, 10) ).asEventStreamPlayer; ) // 3. play it p.play; // 4. Here are some presets // "cricket" preset ( Pbind( \instrument, \fmmod, \fc, 10000, \fm, 100, \idx, 100, \amp, 0.6, \atk, 0.01, \rls, 0.001, \dur, Pwhite(0.1, 0.05, 10) ).play; ) // preset 2 ( Pbind( \instrument, \fmmod, \fc, 10000, \fm, 1000, \idx, 100, \amp, 0.6, \atk, 0.001, \rls, 0.01, \dur, Pwhite(0.1, 0.05, 10) ).play; ) // preset 3 ( Pbind( \instrument, \fmmod, \fc, 10000, \fm, 100, \idx, 10, \amp, 0.4, \atk, 0.01, \rls, 0.01, \dur, Pwhite(0.1, 0.05, 10) ).play; ) // preset 4 ( Pbind( \instrument, \fmmod, \fc, 1000, \fm, 100, \idx, 1000, \amp, 0.2, \atk, 0.01, \rls, 0.001, \dur, Pwhite(0.1, 0.05, 10) ).play; ) // preset 5 ( Pbind( \instrument, \fmmod, \fc, 5000, \fm, 1000, \idx, 1000, \amp, 0.4, \atk, 0.01, \rls, 0.001, \dur, Pwhite(0.1, 0.05, 10) ).play; ) // preset 5 ( Pbind( \instrument, \fmmod, \fc, 8000, \fm, 1000, \idx, 1000, \amp, 0.7, \atk, 0.01, \rls, 0.001, \dur, Pwhite(0.1, 0.05, 10) ).play; )