13.1 Аудио вход

# Аудио вход

Одним простым (и, должно быть, уже знакомым) способом доступа к аудио входам является использование нашего друга `synth` с указанием для него пути `: sound_in`:

```
synth :sound_in
```

Это будет работать так же, как и любой синтезатор, такой как «synth: dsaw», за исключением того, что сгенерированный звук будет считываться непосредственно с первого входа звуковой карты вашей системы. На ноутбуках это обычно встроенный микрофон, но если у вас есть внешняя звуковая карта, вы можете подключить любой аудиовход к первому входу.

## Увеличение длительности

Одна вещь, которую вы могли бы заметить, это то, что как `synth: dsaw`, синтезатор`: sound_in` длится всего 1 такт, поскольку к нему применяется стандартная огибающая. Если вы хотите, чтобы он звучал немного дольше, измените настройки огибающей ADSR. Например, следующий код будет ближайшие 8 тактов держать открытым аудиовход для нашего синтезатора:

```
synth :sound_in, sustain: 8
```

## Добавление эффектов

Конечно, как и на любой обычный синтезатор, вы можете легко накладывать на него эффекты с помощью FX-блока:

```
with_fx :reverb do
  with_fx :distortion do
    synth :sound_in, sustain: 8
  end
end
```

Если вы подключили гитару к первому входу, вы должны услышать ее с искажением и реверберацией, пока исполняется код.

Вы можете использовать синтезатор `: sound_in`одновременно столько раз, сколько вам нравится (точно так же, как вы делаете это с любым обычным синтезатором). Например, следующий код будет воспроизводить два синтезатора `: sound_in` одновременно - один с искажением, а другой с реверберацией:

```
with_fx :distortion do
  synth :sound_in, sustain: 8
end
with_fx :reverb do  
  synth :sound_in, sustain: 8
end
```

## Многоканальный вход

Вы можете выбрать, какой аудиовход вы хотите воспроизвести, с помощью опции `input:`. Вы также можете указать стереовход (два последовательных входа), используя синтезатор `: sound_in_stereo`. Например, если у вас есть звуковая карта с по крайней мере тремя входами, вы можете рассматривать первые два как стереопоток и добавлять искажения, а третий - как монопоток и добавлять реверберацию со следующим кодом:

```
with_fx :distortion do
  synth :sound_in_stereo, sustain: 8, input: 1
end
with_fx :reverb do  
  synth :sound_in, sustain: 8, input: 3
end
```


## Потенциальные сложности

Однако, хотя это и действенный метод, у этого подхода есть несколько ограничений. Во-первых, он работает только в течение определенного периода времени (из-за наличия огибающей ADSR), и, во-вторых, нет возможности переключать эффекты после запуска исполнения кода. Обе эти вещи являются типичными запросами при работе с внешними аудиопотоками от микрофонов, гитар и внешних синтезаторов. Поэтому мы рассмотрим предлагаемое Sonic Pi решения проблемы (потенциально) бесконечного потока живого аудиовхода: `live_audio`.
