Audio en direct

Le synthé :sound_in, comme décrit dans la section précédente, fournit une méthode très flexible et familière pour travailler avec les entrées audio. Toutefois, comme nous en avons discuté, elle a quelques problématiques lorsque nous travaillons avec une seule entrée audio comme un seul instrument (comme la voix ou une guitare). La meilleure approche pour travailler avec un seul flux d’audio en continu, et de loin, est d’utiliser live_audio.

Une entrée audio nommée

live_audio partage quelques contraintes de design interne avec live_loop (d’où le nom similaire). Premièrement, il doit avoir un nom unique et deuxièmement, un seul flux live_audio avec ce nom peut exister à tout moment. Jetons un coup d’œil :

live_audio :foo

Ce code va réagir d’une façon similaire à synth :sound_in avec quelques différences clés : il tourne pour toujours (jusqu’à ce que vous le stoppiez explicitement) et vous pouvez le bouger vers de nouveaux contextes FX dynamiquement.

Travailler avec des FX

A son déclenchement initial, live_audio fonctionne exactement de la façon que vous pensez qu’il fonctionne avec FX. Par exemple, pour démarrer un flux audio en direct avec des réverbérations ajoutées, utiliser simplement un bloc FX :reverb :

with_fx :reverb do
  live_audio :foo
end

Toutefois, considérant que ce live_audio tourne pour toujours (au moins jusqu’à ce que vous l’arrêtiez), ce serait assez contraignant si, comme les synthés typiques, l’audio en direct était lié à l’intérieur du FX :reverb pour son existence entière. Heureusement, ce n’est pas le cas et cela a été conçu pour être facile à déplacer entre des FX différents. Essayons-le. Exécutez le code ci-dessus pour entendre l’audio en direct venir directement de la première entrée de votre carte de son. À noter, si vous utilisez un portable, cela correspondra habituellement à votre microphone intégré, alors il est recommandé d’utiliser des écouteurs pour arrêter le retour d’informations.

Maintenant, pendant que vous entendez l’audio live depuis votre carte son avec de la réverbération, modifiez le code ainsi :

with_fx :echo do
  live_audio :foo
end

Maintenant, pressez Exécuter, et vous entendrez immédiatement l’audio joué au travers de l’écho FX et plus via la réverbération. Si vous voulez les deux, modifiez le code à nouveau et pressez Exécuter :

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

Il est important de préciser que vous pouvez appeler live_audio :foo depuis tout thread ou tout boucle live, et il déplacera le synthé audio live de ce contexte actuel de thread. Vous pouvez donc facilement avoir plusieurs boucles live qui appellent live_audio :foo à différent moments faisant en sorte que le contexte d’effet soit automatiquement changé, ceci donnant des résultats intéressants.

Arrêter l’audio en direct

Contrairement aux synthés standards, étant donné que live_audio n’a pas d’enveloppe, il va continuer de s’exécuter pour toujours (même si vous supprimez le code, une fonction demeure définie en mémoire même si vous supprimez le code dans l’éditeur). Pour l’arrêter, vous devez utiliser l’argument :stop :

live_audio :foo, :stop

Cela peut être facilement redémarré en l’appelant sans l’argument :stop de nouveau :

live_audio :foo

De plus, tous les synthés d’audio en direct qui s’exécutent sont arrêtés quand vous pressez sur le bouton Stop global (de même que pour tous les autres synthés et FX qui s’exécutent).

Entrée stéréo

Pour ce qui est des canaux audio, par défaut live_audio agit similairement au synthé :sound_in dans le fait qu’il prend un simple flux d’entrée mono d’audio et le convertit en flux stéréo en utilisant le panoramique spécifié. Cependant, tout comme :sound_in_stereo, il est également possible de dire à live_audio de lire deux entrées audio consécutivement et de les traiter en tant que canaux de droite et de gauche directement. Cela est possible via l’option :stereo. Par exemple, pour traiter l’entrée 2 en tant que signal de gauche et l’entrée 3 en tant que signal de droite, vous avez besoin de configurer l’option input: à 2 et d’activer le mode stéréo comme suit :

live_audio :foo, stereo: true, input: 2

Notez qu’une fois que vous avez démarré un flux d’audio en direct en mode stéréo, vous ne pouvez pas le changer en mono sans l’arrêter et le démarrer. Similairement, si vous le démarrez dans le mode mono par défaut, vous ne pouvez pas changer en stéréo sans arrêter et démarrer le flux.