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