Live audio

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.

Audio ingang met een naam

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.

Werken met Effecten

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.

Live audio stoppen

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

Stereo ingang

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