Monofonia

Se pensiamo al mondo digitale un segnale monofonico è un un flusso di numeri (numeric stream) compresi tra +/-1.0 scritti su un singolo bus di uscita audio che, dopo essere stati convertiti in segnale analogico (flusso di elettroni liberi che scorrono in una direzione all'interno di un singolo cavo) viene diffuso da un solo altoparlante. Possiamo pensare anche al percorso inverso: quando colleghiamo un microfono ad una scheda audio o a un mixer tramite un cavo analogico il segnale che entra è monofonico e se colleghiamo più microfoni avremo un segnale mono per ognuno di loro.

Bus audio

In Supercollider abbiamo a disposizione 128 canali audio (da 0 a 127) che sono anche chiamati Bus. I primi 16 sono pubblici ovvero utilizzati per i segnali in ingresso e in uscita da Supercollider, gli altri sono privati ovvero utili per routing interni al software.

Possiamo scrivere qalsiasi tipo di segnale su ognuno di questi con la UGen Out.ar() mentre per leggerli dobbiamo utilizzare la UGen In.ar().

Ricordiamo che per utilizzare sistemi multicanale in entrata ed uscita da SuperCollider dobbiamo prima settare il Server che nelle ultime versioni ha solo due canali in uscita di default.

Out.ar()

Gli argomenti di questa UGen sono: Out.ar(numero_del_bus, segnale_da_collegare) dove il segnale può anche essere un Array di segnali.

s.options.numOutputBusChannels_(6);
s.reboot;
s.plotTree;
s.scope;      
s.meter;

(
SynthDef(\out,{arg t_trig = 0, out = 0;
	       var freq,env,senv,sig,mix;
	           freq  = #[200,974,1500,1800];
	           env   = Env.perc([0.1,0.2,0.3,0.4],[0.4,0.3,0.2,0.1]);
	           senv  = EnvGen.kr(env, t_trig);
	           sig   = SinOsc.ar(freq, mul:senv)*0.5;
	           mix   = Mix(sig)*0.5;
	    Out.ar(out,mix)
}).add;

{a = Synth(\out)}.defer(0.2);
)

a.set(\out,0, \t_trig,1);
a.set(\out,1, \t_trig,1);
a.set(\out,rand(8).postln, \t_trig,1);	

Se il segnale che vogliamo scrivere è stereo o multicanale, dobbiamo specificare come argomento solo il primo da sinistra, gli altri sono posizionati automaticamente nei canali attigui:

(
SynthDef(\out,{arg t_trig = 0, out = 0, pos = 0;
	       var freq,env,senv,sig,mix,pan;
	           freq  = #[200,974,1500,1800];
	           env   = Env.perc([0.1,0.2,0.3,0.4],[0.4,0.3,0.2,0.1]);
	           senv  = EnvGen.kr(env, t_trig);
	           sig   = SinOsc.ar(freq, mul:senv)*0.5;
	           mix   = Mix(sig)*0.5;
			   pan   = Pan2.ar(mix,pos,0.5);
	    Out.ar(out,pan)
}).add;

{a = Synth(\out)}.defer(0.2);
)

a.set(\pos,rrand(-1.0,1.0),\out,rand(7),\t_trig,1);

Mono

In SuperCollider la maggior parte delle UGens genera o elabora un segnale monofonico che di default è scritto sul bus audio 0 (in un sistema di diffusione standard corrisponde al canale sinistro). Come abbiamo appena visto può essere anche il risultato del mixaggio di più canali audio:

{SinOsc.ar}.play;
{Mix.new(SinOsc.ar([440,578,897])*0.2)}.play;

image not found

image not found

In una SynthDef ad esempio possiamo stabilire su quale bus audio scrivere un segnale monofonico, specificandolo come primo argomento di Our.ar().

(
SynthDef(\mono,
    	      {arg bus=0;
               var sig;
                   sig = SinOsc.ar;
               Out.ar(bus, sig*0.2)}
         ).add;

{~synth = Synth(\mono)}.defer(0.1);
)

~synth.set(\bus,rand(8));

(
r = Routine.new({
                 inf.do({
                         ~synth.set(\bus,rand(2));
                         0.5.wait
                         })
                 }).reset.play
)
r.stop;		

Possiamo in questo modo inviare contemporaneamente più segnali mono a diversi bus audio che saranno diffusi da più altoparlanti

Dual mono e multi mono

Se duplichiamo un segnale monofonico scrivendolo su due canali attigui e lo diffondiamo tramite due altoparlanti non otteniamo un segnale stereofonico ma dual-mono (due segnali monofonici uguali):

{SinOsc.ar(rrand(700,1200)!2,0,0.1)}.play; // esegui più volte...	

image not found

I sistemi di diffusione multi-monofonici si prestano a interessanti soluzioni artistico espressive nel terzo modo di pensare lo spazio tra quelli illustrati all'inizio di questo Paragrafo. Pensiamo per esempio a un ensemble di strumenti acustici elaborati in tempo reale ognuno da un proprio device con un uscita monofonica e un singolo altoparlante. Se disposti in posizioni fisse non univoche all'interno di uno spazio reale (a uno strumento corrisponde l'altoparlante che diffonde le elaborazioni di un'altro strumento) si possono realizzare giochi di specchi e rimandi sonori spaziali tra strumenti reali e i loro doppi elettroacustici molto accattivanti, facendo assumere di fatto al parametro spazio la stessa importanza degli altri parametri musicali come altezza, dinamica, timbro, etc. sul piano del linguaggio musicale e sonoro.

image not found