Phone - Supercollider




tratto da Designing Sound - Supercollider

Handset Filter

Questo è il filtro che emula la cornetta del telefono il sig segnale viene clippato bilateralmente tra -0.9 e 0.9;
questo clip introduce armoniche dispari allargando lo spettro e causa perdite nelle armoniche originali; viene imitato l'effetto band-limit del cavo con un filtro risonante centrato a 2Khz; le frequenze delle due sinusoidi sono entrambe all'interno dei 2Khz, ma noi qui siamo interessati all'effetto che il BPF ha sulle armoniche introdotte dal clip; Poi viene aggiunto l'effetto di un piccolo altoparlante con un altro BPF centrato a 400Hz e un clip tra -0.4 e 0.4 per introdurre appunto la distorsione dell'altoparlante; e poi con il doppio HPF vengono eliminate le basse frequenze;

(
Ndef(\transmed, {
        var sig = Ndef(\phonesource).ar.clip2(0.9);
        sig = BPF.ar(sig, 2000, 1/12);
        sig =
                BPF.ar(sig * 0.5, 400, 1/3)
                +
                (sig.clip2(0.4) * 0.15);
        HPF.ar(HPF.ar(sig, 90), 90) * 100;
}).play
)


CCITT standard for telephony as follows :

Ringing tone : 480Hz + 440Hz On 2s, off 4s Indicate remote ring

(
Ndef(\phonesource, {
        var onoff;
        onoff = LFPulse.ar(1/6, width: 1/3);
        SinOsc.ar([480, 440], 0, onoff).sum * 0.2
})
)


Busy

(
Ndef(\phonesource, {
        var onoff;
        onoff = LPF.ar(LFPulse.ar(2), 100);
        SinOsc.ar([480, 620], 0, onoff).sum * 0.2
})
)

Old-Style Pulse Dialer


(
Ndef(\phonesource, { |t_trig=0, number=0|
        var onoff, trigs, son;
        number = if(number < 0.5, 10, number); // zero is represented by 10 clicks!
        onoff = Trig1.ar(t_trig, number * 0.1);
        trigs = Impulse.ar(10) * onoff;
        son = Trig1.ar(trigs, 0.04);
        son;
});
)

// ...then dial some numbers by repeatedly running this line:
Ndef(\phonesource).set(\t_trig, 1, \number, 10.rand.postln)







Categories: Share

Leave a Reply