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