Sound Out

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.

Contesti di Uscita

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.

Sound Out FX

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_hauseroga 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.

Mono e Stereo out

choose (scegli)

Direct Out

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` .