Fino a qui abbiamo visto come ottenere flussi audio multipli in Sonic pi - sia attraverso l’uso del synth :sound_in
sia attraverso il potente sistema live_audio
. In aggiunta all’uso di flussi audio multipli in ingresso, Sonic Pi può erogare flussi audio multipli in uscita. Questo si ottiene tramite l’FX :sound_out
.
Facciamo un rapido riepilogo di come i synth ed FX di Sonic pi erogano il loro audio nel loro contesto FX corrente. Ad esempio, consideriamo quanto segue:
with_fx :reverb do # C
with_fx :echo do # B
sample :bd_haus # A
end
end
Il modo più semplice per capire cosa succede al flusso audio è cominciare dal contesto audio più annidato e man mano valutarne i contorni. In questo caso l’oggetto più annidato è etichettato A
ed è il sample :bd_haus
che viene triggerato. L’audio di questo va direttamente nel suo contesto che è B
- ovvero :echo
FX. Questo aggiunge echo all’audio in arrivo e lo eroga nel suo contesto che è C
- ovvero :reverb
FX. Questo aggiunge quindi riverbero al flusso audio in ingresso e lo eroga nel suo contesto che è il livello più alto - ovvero diffusori sinistro e destro (uscita 1 e 2 della tua scheda audio). L’audio fluisce in uscita in un segnale stereo direttamente.
Il comportamento sopra è vero per tutti i synth (incluso live_audio
) e la maggioranza degli FX ad eccezione di :sound_out
. L’FX :sound_out
fa due cose. Innanzitutto eroga il proprio audio nel suo contesto esterno come descritto sopra. Secondariamente eroga anche il proprio audio direttamente verso un’uscita della tua scheda audio. Diamo un’occhiata:
with_fx :reverb do # C
with_fx :sound_out, output: 3 do # B
sample :bd_haus # A
end
end
In questo esempio, il nostro sample :bd_haus
eroga il proprio audio nel suo contesto esterno che è l’FX :sound_out
. Questo a sua volta eroga il proprio audio al suo contesto esterno :reverb
FX (come atteso). Tuttavia eroga anche un mix mono alla terza uscita della scheda audio di sistema. L’audio generato all’interno di :sound_out
tuttavia ha due destinazioni - l’FX :reverb
e l’uscita 3.
choose (scegli)
Come abbiamo visto, il comportamento di default per :sound_out
e :sound_out_stereo
è mandare audio sia nel loro contesto esterno (come tipicamente tutti gli FX) e a un’uscita specifica della scheda audio. Tuttavia, occasionalmente potresti voler mandare solo all’uscita della tua scheda audio e non al contesto esterno (e di conseguenza evitare che il suono sia mixato e mandato alle uscite standard 1 e 2). Questo è possibile usando l’opzione FX standard amp:` che interviene sull’audio dopo che l’FX ha potuto manipolare l’audio:
with_fx :sound_out, output: 3, amp: 0 do # B
sample :loop_amen # A
end
Nell’esempio sopra, il sample :loop_amen
viene mandato al suo contesto esterno, l’FX :sound_out
. Questo a sua volta manda un mix mono all’uscita 3 della scheda audio dopo di che l’audio per 0, cosa che in pratica lo silenzia. E’ proprio questo segnale silenziato che viene inviato al contesto esterno :sound_out, che è a sua volta l'output standard. Quindi con questo codice, i canali di uscita audio predefiniti non riceveranno alcun audio, mentre il canale 3 riceverà un mix mono del break di batteria
amen` .