The :sound_in
synth as described in the previous section provides a very flexible and familiar method for working with input audio. However, as also discussed it has a few issues when working with a single input of audio as a single instrument (such as a voice or guitar). By far the best approach to working with a single continuous stream of audio is to use live_audio
.
live_audio
shares a couple of core design constraints with live_loop
(hence the similar name). Firstly it must have a unique name and secondly only one live_audio
stream with that name may exist at any one time. Let’s take a look:
foo
Dieser Code verhält sich ähnlich zu synth :sound_in
, mit einigen wesentlichen Unterschieden: er läuft ununterbrochen (bis Du ihn ausdrücklich stoppst) und Du kannst ihn dynamisch in neue FX-Inhalte schieben.
On initial triggering live_audio
works exactly as you might expect it to work with FX. For example, to start a live audio stream with added reverb simply use a :reverb
FX block:
foo
However, given that live_audio
runs forever (at least until you stop it) it would be pretty limiting if, like typical synths, the live audio was bound within the :reverb
FX for its entire existence. Luckily this is not the case and it was designed to be easy to move between different FX. Let’s try it. Run the code above to hear live audio coming directly from the first input of your sound card. Note, if you’re using a laptop, this will typically be out of your built-in microphone, so it’s recommended to use headphones to stop feedback.
Jetzt, während Du noch den Ton live von der Soundkarte mit Reverb hörst, ändere den Code so um:
foo
Und nun, drück Run, und sofort wirst Du den Sound mit dem Echo-FX hören und nicht mehr mit Reverb. Wenn Du beides möchtest, ändere einfach wieder den Code und drück Run:
foo
foo
Unlike standard synths, as live_audio
has no envelope, it will continue running forever (even if you delete the code, just like a function is still defined in memory if you delete the code in the editor). To stop it, you need to use the :stop
arg:
foo
It can easily be restarted by calling it without the :stop
arg again:
foo
Additionally all running live audio synths are stopped when you hit the global Stop button (as with all other running synths and FX).
With respect to audio channels, by default live_audio
acts similarly to the :sound_in
synth in that it takes a single mono input stream of audio and converts it to a stereo stream using the specified panning. However, just like :sound_in_stereo
it’s also possible to tell live_audio
to read two consecutive audio inputs and treat them as the left and right channels directly. This is achieved via the :stereo
opt. For example, to treat input 2 as the left signal and input 3 as the right signal, you need to configure the input:
opt to 2 and enable stereo mode as follows:
foo
Note that once you have started a live audio stream in stereo mode, you cannot change it to mono without stopping and starting. Similarly, if you start it in the default mono mode, you can’t switch to stereo without starting and stopping the stream.