De :sound_in
synth zoals beschreven in de vorige sectie bied een flexibele en bekende manier om met ingang audio te werken. Maar, zoals ook beschreven heeft het een paar onhandigheden wanneer het gaat om werken met een enkelvoudig ingangs geluid als een enkel instrument (zoals een stem of een gitaar). De allerbeste manier om met een oneindig geluid te werken is live_audio
gebruiken.
Er zijn een paar ontwerp beperkingen die live_audio
deelt met live_loop
(vandaar dat hun naam gelijk-ig is). Allereerst moet het een unieke naam hebben. Ten tweede mag er ook maar één live_audio
met dezelfde naam tegelijk bestaan. Zie hier:
live_audio :bla
Deze code gedraagt zich gelijk aan synth :sound_in
met een paar belangrijke verschillen: de code blijft altijd actief (tot je het expliciet stopt) en je het dynamisch naar een nieuwe effect context verplaatsen.
Als een live_audio
blok als eerste gespeeld word, gedraagt het zich zoals je zou verwachten bij effecten. Om een live geluid van nagalm te voorzien gebruik je gewoon een :reverb
effect blok:
with_fx :reverb do
live_audio :bla
end
Maar aangezien een live_audio
geluid maar door blijft gaan (in ieder geval tot je het stopt) zou het best een beperking zijn als, dat zoals bij synths, het gekoppelde effect :reverb
er voor altijd aan vast zou zitten. Gelukkig is dit niet het geval en was het ontworpen om eenvoudig van effect te wisselen. Laten het eens proberen. Start de code hierboven om het geluid horen dat uit eerst ingang van je geluidskaart komt. Let op, als je een laptop gebruikt zal dit doorgaans de ingebouwde microfoon zijn, het is dus aan te raden om een koptelefoon te gebruiken om rondzingen te voorkomen.
Wijzig, terwijl je de live audio uit de geluidskaart nog met nagalm (reverb) hoort, de code naar het volgende:
with_fx :echo do
live_audio :bla
end
Druk op Afspelen en je zult meteen horen dat het geluid een echo effect heeft gekregen en geen nagalm meer. Als je ze beide wil, pas de code aan en druk op Afspelen:
with_fx :reverb do
with_fx :echo do
live_audio :bla
end
end
Het is belangrijk om je er op te wijzen dat je live_audio :bla
vanuit elke thread or live loop kunt aanroepen zodat het geluid ervan in die threads effect context terecht komt. Je kunt dus eenvoudig vanuit meerdere live loops live_audio :bla
aanroepen op verschillende momenten, met als resultaat dat de effecten context automatisch word vervangen. Dit zal zeker wat interessante resultaten opleveren.
Een live_audio
heeft in tegenstelling tot andere synths geen envelop en zal oneindig doorgaan (zelfs als je de code verwijderd, blijft het code blok actief in het geheugen). Om het stoppen gebruik je het :stop
argument:
live_audio :bla, :stop
Hij kan eenvoudig weer gestart worden door de code opnieuw af te spelen zonder het :stop
argument:
live_audio :bla
Daar komt nog bij dat alle :sound_in
synth worden gestopped zodra je op de “Stop” knop hebt gedrukt (net zoals dat met alle andere synths en effecten het geval is).
Als het gaat om audio kanalen werkt live_audio
gelijk aan de :sound_in
synth. Het neemt de mono input van de audio en zet dit om in een stereo geluid met de aangegeven balans. Net als bij :sound_in_stereo
is het ook mogelijk om aanlive_audio
te vertellen om twee opeenvolgende audio ingangen samen te voegen tot een linker en rechter kanaal. Dit doe je door de :stereo
optie te gebruiken. Om bijvoorbeeld ingang kanaal 2 als links en kanaal 3 als rechts te gebruiken, zet je de input:
optie op 2 en activeer je de stereo modus op de volgende manier:
live_audio :bla, stereo: true, input: 2
Zodra je een live audio geluid in stereo modus hebt gestart kun je deze niet weer veranderen naar mono modus zonder te stoppen en te starten. Omgekeerd kun je ook de mono modus niet omzetten naar stereo zonder te stoppen en weer te starten.