Как сделать звук на линуксе
Управление уровнем звука из командной строки Ubuntu
Оригинал: Control Audio volume through the Ubuntu Command Line
Автор: Karim Buzdar
Дата публикации: 10 июля 2019 года
Перевод: А. Кривошей
Дата перевода: февраль 2020 г.
Человек, разбирающийся в терминале, найдет способ выполнить любое действие, находясь в командной строке. В основном мы делаем системные настройки в графическом интерфейсе Ubuntu, но есть определенные ситуации, когда вы можете сделать это из командной строки. ALSA или Advanced Linux Sound Architecture обеспечивает поддержку аудио для большинства дистрибутивов Linux.
В этой статье мы объясним, как вы можете установить пакет утилит ALSA, если он еще не установлен в вашей Ubuntu. Мы также объясним, как вы можете управлять звуковыми свойствами ваших звуковых карт с помощью:
Мы запускали команды и процедуры, упомянутые в этой статье, в системе Ubuntu 18.04 LTS.
Установка ALSA
Пакет Alsa-utils содержит утилиты Alsamixer и Amixer. Этот пакет доступен в официальных репозиториях Ubuntu и может быть легко установлен в командной строке с помощью команды apt-get.
Откройте терминал либо через системный поиск приложений, либо с помощью сочетания клавиш Ctrl+Alt+T.
Следующим шагом является обновление индекса репозиториев вашей системы с помощью следующей команды:
Это поможет вам установить последнии доступные версии программ из интернета. Обратите внимание, что только авторизованный пользователь может добавлять, удалять и настраивать программное обеспечение в Ubuntu.
Теперь вы готовы установить Alsa-utils; вы можете сделать это, выполнив следующую команду от имени sudo:
Система может попросить вас ввести пароль для sudo, а также запросить выбор Y/n для продолжения установки. Введите Y, а затем нажмите Enter; программное обеспечение будет установлено в вашей системе. Однако процесс может занять некоторое время в зависимости от скорости вашего интернета.
Alsamixer предлагает графическое представление звуковых карт, установленных в вашей системе, и позволяет вам легко просматривать и управлять свойствами этих карт. Alsamixer создан на базе Ncurses, так что вы можете оставаться в терминале, работая с громкостью звуковой карты.
Вы можете запустить этот графический интерфейс, выполнив следующую команду в вашем терминале:
Alsamixer отобразит свойства вашей звуковой карты по умолчанию следующим образом:
Если вы не можете увидеть все свойства, как показано на снимке экрана выше, либо разверните окно терминала или используйте клавиши со стрелками влево и вправо, чтобы просмотреть свойства, которые не видны.
Представления Alsamixer
Когда вы открываете интерфейс Alsamixer, вы видите его в представлении Payback. Это означает, что из этого представления вы можете управлять только параметрами, связанными с воспроизведением звука. Два других вида, на которые вы можете переключиться:
Представление Capture
Чтобы просмотреть свойства, относящиеся только к захвату звука, вы можете переключиться в режим Capture, нажав F4, когда открыт Alsamixer. Вот так выглядит представление Capture:
Представление All
Чтобы просмотреть свойства, связанные как с захватом, так и с воспроизведением звука, вы можете переключиться в режим «All», нажав клавишу F5, когда открыт Alsamixer. Вот так выглядит All:
Представление Playback
Чтобы вернуться в режим Playback, нажмите кнопку F3.
Выбор звуковой карты
Утилита Alsamixer отображает свойства карты, которая выбрана «по умолчанию». Для просмотра/редактирования свойств другой звуковой карты, установленной в вашей системе, вы можете нажать F6.
Меню звуковой карты, как показано выше, появляется при нажатии клавиши F6. Вы можете перемещаться вверх и вниз по меню и затем нажать Enter, чтобы выбрать другую карту. Вы также можете вручную ввести имя карты, если оно не отображается в списке, выбрав пункт меню «enter device name».
Вы можете выйти из этого меню, нажав Esc.
Управление свойствами звука
Вы можете перемещаться влево и вправо, чтобы выбрать устройство, громкость которого вы хотите увеличить, уменьшить или отключить.
Когда вы выбрали устройство, используйте клавиши вверх и вниз, чтобы увеличить или уменьшить громкость соответственно.
Чтобы отключить устройство/элемент управления, нажмите клавишу m, когда выбрано это свойство.
Для получения информации обо всем, что вы можете сделать с помощью Alsamixer, нажмите элемент управления F1. Это отобразит справку следующим образом:
Вы можете использовать клавишу Esc, чтобы выйти из этого окна справки.
Использование Amixer для управления звуком с помощью команд
Введите следующую команду, чтобы увидеть все, что вы можете сделать с Amixer:
Ваша команда amixer выглядит в целом так:
Во всех ваших командах amixer вам нужно указывать три вещи:
1. Звуковая карта (номер карты), свойством которой вы хотите управлять.
2. Устройство/элемент управления, громкостью которого вы хотите управлять.
3. Значение громкости в процентах или децибелах, которое вы хотите установить, увеличить или уменьшить. Вы также можете указать, хотите ли вы отключить звук для звуковой карты.
Команда scontrols позволяет просматривать список элементов управления, которыми вы можете управлять:
1. Следующая команда установит громкость на главном элементе управления/устройстве первой звуковой карты на 100%.
2. Следующая команда установит громкость на элементе управления/устройстве Speaker второй звуковой карты на 30%.
3. Следующая команда установит громкость на элементе управления/устройстве Speaker второй звуковой карты на 3 дБ.
4. Следующая команда увеличит громкость на элементе управления/устройстве Speaker второй звуковой карты на 2 дБ.
5. Используйте следующие команды, чтобы отключить или включить звук устройства.
Лучшие аудио редакторы Linux
Существует не так уж много хороших или хотя бы достойных программ для работы со звуком в Linux. Большинство приложений написаны «на коленке» и совершенно не подходят тем, кто хочет записывать качественную музыку. Профессионалам приходится либо переходить на Windows или MacOS, либо устанавливать популярные аудиоредакторы с помощью Wine, либо ограничиваться программой Ardour, которая, хоть и не совсем дотягивает до функциональности FL Studio и Cubase, но всё же даёт возможность обрабатывать звук на высоком уровне.
А вот те, для кого музыка — хобби, могут найти для себя неплохие синтезаторы, звуковые редакторы и инструменты для сведения треков. В этой подборке мы собрали лучшие аудио редакторы Linux.
Лучшие аудио редакторы для Linux
В эту подборку попали приложения с удобным интерфейсом и современными возможностями. Они рассчитаны на выполнение разноуровневых задач: от самых простых до максимально сложных.
1. LMMS
LMMS — это FL Studio и Cubase «на минималках». Программа позволяет писать музыку, используя встроенные синтезаторы и коллекцию сэмплов, накладывать на звук разнообразные эффекты. Поскольку поддерживаются VST-плагины и пресеты, пользователь получает почти неограниченные возможности для творчества.
Нельзя сказать, что LMMS будет простым для новичков в мире цифровой музыки, но его преимущество заключается в наличии большого количества видеоуроков и текстовых инструкций на просторах интернета.
2. Rosegarden
Достаточно мощный аудио редактор секвенсер с удобным и понятным интерфейсом. От большинства конкурентов отличается наличием нотного редактора. Причём, записывать ноты можно как с MIDI-клавиатуры, так и «играя» на обычной компьютерной клавиатуре или пользуясь экранными кнопками.
В Rosegarden есть всё, что необходимо для редактирования музыки: звуковой микшер, множество эффектов и виртуальных инструментов, возможность загружать LADSPA-плагины. При нажатии на F1 открывается инструкция к программе — написана она очень подробно и доходчиво, но, к сожалению, существует только в англоязычном варианте.
3. Mixxx
Программа для диджеев и тех, кто увлекается созданием музыкальных миксов. Возможен ввод звука с микрофона и работа с файлами в форматах ogg, mp3, wave, flac. В арсенале этой программы множество эквалайзеров, звуковых эффектов и настроек.
Пользователям доступны поддержка от сообщества на форуме, документация из базы знаний Mixxx Wiki, обучающие материалы, общение с единомышленниками в Zulip Chat и новостная рассылка.
4. Cecilia
Cecilia — это графический интерфейс для Csound, предназначенный для синтеза звука и обработки звуковых сигналов. Программа была написана в 1995-м году и за последнюю четверть века пережила немало трансформаций. Сейчас она может похвастаться простым интерфейсом, а также оригинальными пресетами и модулями, которые наверняка понравятся звуковым дизайнерам и музыкантам. Её недостаток — отсутствие русифицированной версии.
5. Ardour
Программа для многоканальной записи звука и цифровая звуковая станция в одном. На данный момент может считаться лучшим ПО для Linux в своей категории. Из-за мощного аудио редактора Linux она часто используется профессиональными музыкантами. Среди преимуществ Ardour:
На официальном сайте бесплатная версия доступна только в виде исходников. Однако пользователи убунтуподобных операционных систем могут установить Ardour из репозитория ubuntu-bionic-universe.
6. SubMix
Submix — простой в использовании аудио редактор с современным интерфейсом и минимальным набором функций. Позволяет обрезать треки и делать вставки, перемещать части дорожек, записывать звук с микрофона. Количество треков, задействованных в одном проекте, не ограничено. Сейчас ведётся активная разработка программы, так что можно надеяться на расширение её возможностей в будущем.
7. Audacity
Ещё один простой и удобный звуковой редактор. Он был создан для записи подкастов, но может использоваться и для работы с музыкой. Поддерживает файлы в форматах Ogg Vorbis, mp2, mp3, wav, aiff, и au. При наличии многоканальной звуковой карты позволяет одновременную запись 16 каналов. Пользователи могут добавлять в Audacity дополнительные плагины, хотя и тех, что установлены «из коробки», хватит для выполнения большинства задач. Среди преимуществ этой программы есть частотный анализ звука и накладывание разнообразных эффектов, а также наличие руководства по работе, которое можно скачать с сайта и использовать без доступа к интернету.
8. Transitions DJ
Отличная программа от Адама Хилсса, который в своё время принимал участие в разработке программного обеспечения для корпораций Intel и Google. Предназначена для создания миксов и сведения композиций во время живых выступлений. Имеет удобный, но не русифицированный интерфейс. Позволяет добавлять файлы как непосредственно с диска, так и из аккаунта на SoundCloud.
9. Yoshimi
Yoshimi — один из лучших программных MIDI-синтезаторов для Linux. Собран на базе ZynAddSubFX и почти один в один повторяет его дизайн, но отличается от первоисточника новыми функциями. Предлагает пользователям доступ к огромному количеству инструментов и эффектов, позволяет наигрывать мелодию на компьютерной клавиатуре либо на виртуальной при помощи мышки. Также можно устанавливать дополнительные инструменты и патчи.
10. Qtractor
Многодорожечный синтезатор. Подойдёт для домашней звуковой студии. «Из коробки» пользователь получает огромное количество эффектов и 13 музыкальных инструментов. Также можно загружать дополнительные инструменты и контроллеры. Возможна установка пользовательских VST-, LADSPA-, V2-, DSSI-эффектов. Программа поддерживает около 30 типов файлов, а также 16/24/32/64-битные сэмплы.
Выводы
Несмотря на нехватку качественного ПО для обработки звука в ОС Linux, в репозиториях и сторонних источниках можно найти вполне достойные программы, поэтому Linux для аудио вполне подходит. А вам приходилось писать или редактировать музыку? Расскажите в комментариях, какими приложениями пользовались и какие из них понравились больше всего.
Как сделать звук на линуксе
В статье даны конкретные примеры настройки звуковой карты (или нескольких карт) компьютера с помощью «стандартных средств», входящих в состав дистрибутива Ubuntu (в моей Runtu 14.04 были установлены по-умолчанию).
1. Консольная утилита «AlsaMixer».
Открыть терминал и ввести : alsamixer.
Откроется такое окно. Как видно, хоть программа и терминальная, но имеет графическое оформление, вполдне доступное для понимания. Всё просто и даже в основном по-русски! :-))
С остальными настройками также несложно разобраться, а для посильной бесплатной помощи существует клавиша «F1». Стрелками «вверх-вниз-влево-вправо» можно выбирать нужное звуковое устройство и задавать уровень его громкости/чувствительности.
2. Утилита «Pavucontrol» («PulseAudio»)
Для запуска набрать в терминале: pavucontrol :
Либо сделать это же, щёлкнув по значку динамика («Рег. Громкости») и, далее, по «Параметрам звука» :
А можно ещё кликнуть по «динамику» правой кнопкой мыши и выпадет дополнительное меню, где следует выбрать строчку «Настройка каналов (двойной щелчок)» :
(что делает двойной щелчок лично я так и не понял. Для запуска программы оказалось достаточно даже одного щелчка, что экономит силы и время :-))
Таким образом, существует возможность зайти в программу настройки звука аж тремя способами! Это «разнообразие» способов вряд-ли имеет особый практический смысл, однако может вселить в пользователя уверенность в полной власти над «системой» и поверить в возможность свободного выбора! :-)) Как хочу, так и ворочу.
Каким бы из вышеуказанных способом вы не воспользовались, результат будет одинаковым и, скорее всего — положительным. Тогда откроется следующее окно настроек:
Но для начала во вкладке «Конфигурация» следует выбрать свою звуковую карту. Если у вас она одна, то делать здесь, в общем-то, ничего особо не придётся. У меня же их три, что предоставляет, опять же, свободу действий и право личного выбора, но несколько усложняет жизнь :-)) :
Следует выбрать одну из звуковых карт, для остальных желательно указать параметр «Выключено» (при включении, например, сразу двух карт, у меня звук появлялся и пропадал на обеих картах совершенно непредсказуемым образом). Вообще, чтобы карта «активировалось» для настроек, необходимо воткнуть в неё необходимые разъёмы — наушники, колонки, микрофоны и т.д. (по крайней мере, это будет более корректно). Не следует втыкать в карту посторонние предметы и всё что попало (спички, отвёртки и им подобное), ибо это никак не поспособствует улучшению качества звука, а приведёт к непредсказуемым для науки результатам и даже порче дорогого имущества! :-))
В строке выбранной звуковой карты, справа, можно разглядеть «кнопку» со стрелкой :
При нажатии на неё выпадет спиcок возможных конфигураций звуковой схемы:
Ну и на этом я позволю себе закончить увлекательное и познавательное (отчасти) повествование, ибо на этом известные мне в настоящий момент времени способы настроек звуковых карт, в общем то, исчерпаны.
Извините за внимание.
Автор предупреждает, что его мнение не всегда совпадает с тем, что он тут пишет :-))
Программирование звука в Linux
Андрей Боровский
borovsky@yandex.ru
Эта статья посвящена программированию звуковой подсистемы Linux. Мы рассмотрим различные аспекты программирования звука: от работы с основными устройствами до форматов хранения аудиоданных. Разумеется, в журнале нельзя полностью охватить материал, оригинальная документация по которому насчитывает сотни страниц, так что моя задача √ помочь читателю сориентироваться в многообразии устройств и средств программирования.
Оборудование и данные
Микшер
Большинство звуковых карт оборудовано микшерами. Микшер √ это устройство, позволяющее устанавливать уровни записи/воспроизведения для других устройств, а также выбирать источник записываемых данных.
Цифровое аудио
Цифровое аудио (digital audio) √ самый простой и естественный формат хранения и передачи звука в цифровых устройствах. Принцип цифрового аудио следующий: аналого-цифровой преобразователь считывает значения амплитуды аналогового сигнала через определенные интервалы времени. Каждое значение кодируется числом, которое записывается в одном или нескольких байтах (один такой код называется сэмплом). В стереозаписи сэмплы, соответствующие левому и правому каналам, либо записываются на одном треке, чередуясь друг за другом, либо размещаются непрерывно на отдельных треках. Рассмотренная ниже система OSS использует чередование сэмплов. При воспроизведении выполняется обратное преобразование из цифровой в аналоговую форму. Качество записи определяют частота дискретизации и разрядность кодирования амплитуды.
Максимальная частота дискретизации, поддерживаемая большинством звуковых карт, составляет 48 КГц. Карты класса Hi-End поддерживают частоты дискретизации до 96 КГц (DVD audio). Сэмплы кодируются 8, 16 и 24 битами (последнее значение поддерживается не всеми картами). Для записи одной секунды одноканального звука с частотой дискретизации 8 КГц и разрядностью сэмплов 8 бит (качество цифрового телефона) потребуется 8000 байтов. Пропускная способность канала для передачи такого сигнала должна составлять 64 КБит/сек. Для записи одной секунды стереозвука с частотой дискретизации 44,1 КГц и разрядностью сэмплов 16 бит (что соответствует качеству аудио-CD) понадобится 172 КБ а пропускная способность канала должна быть не меньше 1.5 MБит/сек. Из этих расчетов становится очевидным, почему в большинстве форматов хранения цифрового аудио применяются различные методы сжатия данных.
MIDI
Протокол MIDI (Musical Instrument Digital Interface) используется электронными музыкальными инструментами, а также специальными устройствами воспроизведения звука. В MIDI передается не закодированный звуковой сигнал, а набор инструкций, описывающих мелодию, которую должны исполнять инструменты, поэтому запись в формате MIDI гораздо компактнее, чем запись в формате цифрового аудио. Главным недостатком MIDI с точки зрения программирования звука на компьютере является то, что этот протокол может воспроизводить только музыку, причем ее звучание будет зависеть от возможностей конкретной звуковой карты. Практически все звуковые карты оснащены портами для подключения внешних MIDI-устройств. Кроме того, большинство карт обладает встроенными MIDI-синтезаторами, позволяющими воспроизводить MIDI-музыку через аудиосистему самой карты.
Драйверы и интерфейсы
На сегодняшний день в Linux наиболее распространены две аудиоподсистемы: OSS и ALSA.
OSS (Open Sound System), разрабатываемая компанией 4Front Technologies, по замыслу разработчиков должна стать средством построения единого звукового интерфейса для различных UNIX-платформ и совместимых с ними систем. OSS представляет собой набор драйверов звуковых карт и библиотек, реализующих простые и удобные интерфейсы программирования. Система OSS распространяется в двух вариантах: OSS/Free и OSS Commercial. С сайта www.opensound.com можно бесплатно загрузить пробную версию OSS Commercial, обладающую более широкими возможностями по сравнению с OSS/Free и функционирующую в течение длительного периода времени. К достоинствам OSS следует отнести широкий спектр поддерживаемых звуковых карт и полноту проработки драйверов √ OSS позволяет работать со всеми типами встроенных в карты устройств, хотя новые карты не всегда поддерживаются полностью. Еще одно достоинство √ подробная документация.
Система ALSA (Advanced Linux Sound Architecture), как видно из названия, предназначена специально для Linux. Проект ALSA является открытым и начат сравнительно недавно (на момент написания этой статьи стабильная версия драйверов добралась лишь до номера 0.5.12). На сайте проекта www.alsa-project.org можно загрузить последнюю версию системы и документацию, которая еще далеко не полна. ALSA хорошо справляется с программированием микшера и цифрового аудио, однако поддержка MIDI-синтезаторов пока что отсутствует. Кроме того, при работе с некоторыми дистрибутивами Linux, ALSA не поддерживает устройство /dev/sndstat, позволяющее получать информацию о параметрах установленного звукового оборудования. Главное достоинство ALSA √ полная открытость проекта, остальные преимущества носят пока скорее потенциальный характер.
В распоряжении Linux-программиста есть и другие пакеты, например, ориентированная на KDE система aRts. В примерах программ, приведенных в этой статье, используется OSS.
Программирование микшера
Драйверы OSS позволяют обращаться к микшерам посредством файлов /dev/mixer00, /dev/mixer01 и т.п. Обычно к первому из доступных микшеров можно также обратиться по символической ссылке /dev/mixer. Все основные константы OSS для работы с микшером (как, впрочем, и с другими аудиоустройствами) объявлены в файле soundcard.h. Интерфейс микшера позволяет считывать и устанавливать значения уровней записи/воспроизведения для различных каналов, а также указывать канал-источник записи.
Перед началом работы с микшером надо открыть соответствующий файл устройства (например, /dev/mixer). Дальнейшая работа с файлом выполняется при помощи функции ioctl. Чтобы определить, какие каналы поддерживает данный микшер, следует вызвать функцию ioctl, передав в параметре request константу SOUND_MIXER_READ_DEVMASK.
ioctl(mixer_fd, SOUND_MIXER_READ_DEVMASK, &mask);
Здесь mixer_fd √ дескриптор файла микшера. В переменной mask будет возвращена маска каналов. Каждый бит маски соответствует определенному каналу. Если бит установлен, канал поддерживается. Битам маски соответствуют константы, определенные в файле soundcard.h. Их имена начинаются с префикса SOUND_MASK_, за которым следует имя канала. Обозначения основных каналов приводятся в таблице:
Общий уровень воспроизведения для основного выхода звуковой карты