# 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_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.

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