Programmare dal vivo

Il synth :sound_in, come descritto nella sezione precedente, fornisce un metodo molto semplice e flessibile per lavorare con audio in ingresso. Tuttavia, come già discusso, ha qualche problema quando si lavora con un singolo ingresso audio come singolo strumento (come una voce o una chitarra). Di gran lunga il miglior approccio per un singolo flusso di audio continuo è l’uso di live_audio.

Un Ingresso Audio Nominato

live_audio condivide un paio di restrizioni di base con live_loop (da qui il nome simile). Innanzitutto deve avere un nome univoco e secondariamente solo un flusso live_audio per volta con quel nome può esistere nello stesso momento. Diamo un’occhiata:

live_audio :foo

Questo codice si comporterà in modo analogo a synth :sound_in con alcune differenze chiave: viene eseguito per sempre (fino a che non lo interrompi esplicitamente) e puoi “spostarlo” a un nuovo contesto di effetti dinamicamente.

Lavorare con FX

All’innesco iniziale live_audio funziona esattamente come ti aspetteresti che funzioni con FX. Ad esempio, per avviare un flusso audio con aggiunta di riverbero semplicemente usa il blocco FX :reverb:

with_fx :reverb do
  live_audio :foo
end

Tuttavia, dato che live_audio gira per sempre (almeno fino a quando lo fermi) sarebbe piuttosto limitante se, come tipicamente i synth, fosse chiuso dentro un blocco FX :reverb per la sua intera esistenza. Fortunatamente non è questo il caso in quanto è stato progettato per essere semplice spostarsi su un FX diverso. Proviamo. Esegui il codice sopra per sentire l’audio dal vivo proveniente dal primo ingresso della tua scheda audio. Nota, se stai usando un portatile, questo sarà tipicamente il microfono integrato quindi è consigliabile usare le cuffie per prevenire il feedback.

reverb,

with_fx :echo do
  live_audio :foo
end

Ora, premi Run, e sentirai immediatamente l’audio riprodotto attraverso un FX echo e non più attraverso riverbero. Se li avessi voluti entrambi, semplicemente modifica il codice nuovamente e premi Run:

with_fx :reverb do
  with_fx :echo do
    live_audio :foo
  end
end

foo

Fermare live Audio

A differenza dei synth standard, dato che live_audio non ha un envelope, continuerà a girare all’infinito (anche se cancelli il codice, come una funzione rimane definita in memoria se cancelli il codice nell’editor). Per fermarlo devi usare l’arg :stop:

live_audio :foo, :stop

Può essere facilmente riavviato chiamandolo senza l’arg :stop:

live_audio :foo

Addizionalmente, tutti i synth live audio vengono arrestati quando premi il pulsante Stop globale (come per tutti gli altri synth e FX in esecuzione).

Ingressi Stereo

Rispetto ai canali audio, di default live_audio si comporta in modo simile al synth :sound_in in quanto prende un flusso audio mono e lo converte in un flusso stereo usando un panning specifico. Tuttavia, come :sound_in_stereo è possibile dire a live_audio di leggere 2 ingressi audio consecutivi e trattarli come canali destro e sinistro direttamente. Questo si ottiene attraverso l’opzione :stereo. Ad esempio, per trattare ingresso 2 come segnale sinistro e ingresso 3 come segnale destro, devi configurare l’opzione input: a 2 e abilitare modalità stereo come segue:

live_audio :foo, stereo: true, input: 2

Notare che dopo aver avviato lo stream audio in modalità stereo, non puoi cambiarla a mono senza fermarla e riavviarla. Similmente, se avvi nella modalità mono di default, non puoi passare a stereo senza fermare e riavviare il flusso.