Иван Георгиевич Титаренко - Линукс для музыканта: плагины ALSA
Название: | Линукс для музыканта: плагины ALSA | |
Автор: | Иван Георгиевич Титаренко | |
Жанр: | Программы, Linux | |
Изадано в серии: | неизвестно | |
Издательство: | SxR | |
Год издания: | 2022 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Линукс для музыканта: плагины ALSA"
Линукс для музыканта: сложная настройка звуковой подсистемы с поддержкой звука высокой четкости с помощью плагинов. Плагины предназначены для тонкой настройки ALSA, Advanced Linux Sound Architecture, продвинутой звуковой архитектуры Linux. С помощью плагинов создаются настраиваемые виртуальные устройства, перенаправляются звуковые потоки, подключаются эффектные фильтры LADSPA. Плагины меняют функциональность системы, расширяют возможности устройств ввода и вывода: преобразование частоты дискретизации, копирование семплов между каналами, поддержка звуковых серверов Jack и PulseAudio. Синтаксис основного файла конфигурации .asoundrc может показаться сложным начинающему любителю качественного звука, музыканту, поэтому в брошюре рассматриваются основные плагины ALSA, приводятся примеры тонкой настройки.
Читаем онлайн "Линукс для музыканта: плагины ALSA". [Страница - 5]
** Плагины обрабатывают звуковой поток, сложная обработка сильно нагружает процессор и может привести к сбоям в работе звуковой подсистемы.
Плагины создают виртуальные потоки, их можно использовать как обычные аппаратные устройства.
Чтобы увидеть полный список плагинов и опций, посмотрите документацию alsa-lib
https://www.alsa-project.org/wiki/ALSA_Library_API
Определение ведомого устройства
Подключаемый модуль можно указать непосредственно или как дополнительный параметр внутри определения. Также могут быть указаны настройки: количество каналов, формат и т.д.Пример 1.
pcm_slave.NAME {
pcm STR # имя
pcm { } # определение
format STR # формат или "без изменений"
channels INT # количество каналов или "неизменная" строка
rate INT # частота в Гц или " без изменений" строка
period_time INT # период или "неизменная" строка
buffer_time INT # буфер или "неизмененная" строка
}
Пример 2.
pcm_slave.slave_rate44100Hz {
pcm "hw:0,0"
rate 44100
}
pcm.rate44100Hz {
type plug
slave slave_rate44100Hz
}
Эквивалентная конфигурация.
pcm.rate44100Hz {
type plug
slave {
pcm "hw:0,0"
rate 44100
}
}
Простое ведомое устройство может быть определено следующим образом:
pcm_slave.sltest {
pcm "hw:1,0"
}
Это определяет ведомое устройство без каких-либо параметров, как псевдоним. Укажем некоторые параметры:
pcm_slave.sl2 {
pcm "hw:1,0"
rate 48000
}
pcm.rate_convert {
type rate
slave sl2
}
Теперь вы можете вызвать это вновь созданное виртуальное устройство:
$ aplay -D rate_convert test.wav
Команда выводит звук с частотой дискретизации 44,1 кГц.
В краткой форме настройки можно записать так.
pcm.rate_convert {
type rate
slave {
pcm
rate 48000
}
}
Плагин plug
Более сложным инструментом является плагин plug. Мы можем использовать плагин следующим образом.pcm_slave.sl3 {
pcm "hw:1,0"
format S16_LE
channels 1
rate 16000
}
pcm.complex_convert {
type plug
slave sl3
}
Проверьте работу с помощью команды:
$ aplay -vD complex_convert test.wav
Настройка определяет формат S16_LE, один канал и частоту дискретизации 16 кГц. Команда aplay с параметром -v (вывод подробной информации) покажет настройки.
$ aplay -v test.wav
Микширование, плагин dmix
Программное микширование — возможность одновременного воспроизведения нескольких звуковых файлов или приложений на одном устройстве. Существует множество способов программного микширования в среде Linux. Обычно для этого требуется серверное приложение, такое как ARTSD, ESD, JACK.В ALSA есть собственный плагин для микширования, dmix. Интересным и потенциально полезным свойством плагина можно считать возможность его применения как плагина "по умолчанию"". Теоретически это означает, что все приложения, имеющие встроенную поддержку ALSA, будут совместно использовать звуковое устройство.
** ALSA 1.0.9 rc2 и выше не треубет настройки dmix для аналогового выхода. Также dmix включен по умолчанию для звуковых карт, которые не поддерживают аппаратное микширование.
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:1,0"
period_time 0
period_size 1024
buffer_size 4096
--">