Linux для работы с аудио

Редакторы аудио

MuseScore

MuseScore — профессиональный нотный редактор.

NoiseTorch

NoiseTorch — утилита для подавления шумов при записи с микрофона. Позволяет подавлять внешние шумы в автоматическом режиме, например, шум нажатия клавиш на клавиатуре.

Ardour

Ardour — профессиональная программа для записи и обработки звука.

Qtractor

Qtractor — многотрековый аудио синтезатор, секвенсор. Позволяет записывать и воспроизводить аудио в реальном времени.

MusicBrainz Picard

MusicBrainz Picard — программа, которая позволяет автоматически распознавать аудио-записи и в полу-автоматическом режиме добавлять теги к аудио-файлам.

m4Baker

m4Baker — приложение для создание m4b-аудиокниг.

TiMidity++

TiMidity++ — программный MIDI-синтезатор. Поддерживает синтезирование MIDI файлов и файлов инструментов, а также воспроизведение отдельных MIDI файлов.

Hydrogen

Hydrogen — драм-машина — программа для создания музыкальных фрагментов (семплов).

Kid3 — бесплатная программа для массового (пакетного и ручного) редактирования тегов у аудио-файлов в автоматическом режиме. Kid3 поддерживает множество аудио-форматов (MP3, Ogg, FLAC, WMA, WAV и другие).

MP3 Diags

MP3 Diags — бесплатная программа для анализа и последующего устранения самых разных проблем, связанных с воспроизведением MP3 файлов. Мастерская для мелкого и серьезного ремонта таких файлов.

Format Junkie

Format Junkie — мултьтимедиа-ковертер — программа для конвертации аудио, видео файлов, файлов изображений и iso-образов из одного формата в другой.

LMMS (Linux MultiMedia Studio) — программа для создания музыки на компьютере.

Источник

Professional audio (Русский)

Современные Linux системы способны удовлетворить любые ваши (полу-)профессиональные аудио потребности. При использовании хорошего аппаратного обеспечения и надлежащей конфигурации можно добиться временной задержки от 5 мс до 1 мс.

Contents

Начало работы

Некоторые основные профессиональные аудио приложения уже доступны из официального репозитория или репозитория сообщества Arch Linux. Для всего остального вы можете либо добавить бинарный репозиторий (смотрите ниже) либо, если вы предпочитаете компиляцию, поискать приложение в AUR. Никто не останавливает вас от непосредственной сборки новых выпусков, но, с тем же успехом, вы могли бы пользоваться LFS.

Начните с установки JACK.

Следующие пакеты являются хорошим базисом для построения полнофункциональной профессиональной аудио системы:

Другие пакеты, которые могут вам понадобиться, доступны через AUR:

Настройка системы

Могут оказаться полезными следующие часто используемые настройки системы:

  • Добавление себя в группуaudio.
  • Добавление параметра ядра threadirqs .
  • Установка ядра linux-rtAUR .
  • Настройка регулятора cpufreq на performance (производительность).
  • Добавление параметра noatime в fstab (смотрите Improving performance#Mount options).

Настройка в реальном времени в основном автоматизирована. Нет больше необходимости вносить правки в файлы вроде /etc/security/limits.conf для получения доступа реального времени. Тем не менее, если вам необходимо изменить настройки, смотрите /etc/security/limits.d/99-audio.conf и /usr/lib/udev/rules.d/40-hpet-permissions.rules (эти файлы поставляются с пакетами jack AUR или jack2 ). Дополнительно, вы можете захотеть увеличить максимально запрашиваемую частоту прерывания RTC (по умолчанию 64 Hz), запустив следующее при загрузке системы:

По умолчанию, частота обращения к swap определяется параметром «swappiness» и имеет значение 60. При уменьшении этого числа до 10, система будет ждать гораздо дольше перед тем, как попытается начать запись на диск. Далее, параметр inotify следит за изменениями, вносимыми в файлы, и сообщает о них приложениям при соответствующих запросах. Когда ведётся работа с большим объёмом аудио данных, требуется множество контролёров, поэтому необходимо увеличить их число. Две этих настройки можно произвести в файле /etc/sysctl.d/99-sysctl.conf .

Вы также можете захотеть увеличить таймер задержки PCI для звуковой карты формата PCI и повысить значение таймера задержки всех остальных PCI устройств (по умолчанию 64).

Значение SOUND_CARD_PCI_ID может быть получено таким образом:

Контрольный перечень

Представленные ниже пункты по большей части приведены для того, чтобы вы могли удостовериться, что у вас работающая мультимедиа система:

  • Тщательно ли я настроил звук? Смотрите ALSA или OSS.
  • Включен ли я в группу audio? Смотрите ALSA или OSS.
  • Захвачено ли устройство с помощью PulseAudio, OSS или чего-то иного?
  • Работают ли PAM-security (подключаемые модули аутентификации) и режим реального времени?

Смотрите: Realtime for Users#PAM-enabled login (Обратите особое внимание, особенно если вы не запускали KDM, GDM или Slim.)

  • Перезагрузился ли я после всех проделанных изменений?

Главная задача здесь заключена в поиске лучшего соотношения размера буффера (buffer size) и частот (periods), которое может обеспечить ваше программное обеспечение. Разумнее всего начинать со значения Frames/Period = 256. Попробуйте использовать Periods/Buffer = 3 для встроенных и USB устройств. Наиболее распространённые значения: 256/3, 256/2, 128/3.

Кроме того, частота семплирования должна совпадать с частотой семплирования аппаратного обеспечения. Для проверки возможности поддержки вашим устройством частоты семплирования и битрейта:

Читайте также:  Together ��� mac os

Измените card0 и codec#0 на ваши значения. Следует обратить внимание на rates или VRA в Extended ID. Современные устройства чаще всего обладают частотой семплирования 48000 Hz. Чуть менее распространены значения 44100 Hz и 96000 Hz.

Почти всегда при записи или сведении с использованием внешних устройств требуется работа в режиме реального времени (realtime). Также, вам, возможно, захочется установить максимальный приоритет (как минимум в 10 раз меньше чем ограничения системы, определённые в файле /etc/security/limits.d/99-audio.conf ; наивысший для самого устройства).

Запустите jack с опциями, которые вы получили ранее:

qjackctl , cadence и patchage могут быть использованы как графическая оболочка для контроля за статусом JACK и упрощением его настройки.

FireWire

JACK(2) построен против FFADO, вам только нужно установить его с пакетом libffado .

Для проверки возможности запустить FireWire вам следует:

  • Убедиться, что загружены необходимые модули ядра:
  • Сможет ли ваш чипсет инициировать устройство?
  • Сможет ли ваш чипсет позволить устройству работать на полную мощность?

Мы не можем сказать это наверняка, особенно для устройств, построенных на базе Ricoh (проблема кроссплатформенности). В большинстве случаев устройство работает хорошо, но иногда можно столкнуться с забавными причудами. Если это случилось с вами, то вам можно только посочувствовать.

Jack Flash

Если после настройки jack вы обнаружили, что Flash больше не воспроизводит звук.

Чтобы дать возможность flash работать с jack, вам нужно установить пакет libflashsupport-jack AUR .

Вы также можете использовать более гибкий способ для настройки возможности программам Alsa (включая Flash) проигрывать звук при запущенном jack:

Во-первых, вы должны установить плагин jack для Alsa, установив пакет alsa-plugins . Активируйте его отредактировав (или создав) /etc/asound.conf (настройка для всей системы), чтобы в нём были следующие строки:

Перезагрузка или иные действия не требуются. Просто отредактируйте конфигурационные файлы alsa, запустите jack.

Quickscan JACK script

Вероятно, большинство людей захотят работать с JACK в режиме реального времени; однако, для этого требуется крутить слишком много ручек и настроек.

Отличный способ проверить системную конфигурацию после настройки JACK’а — это запустить скрипт Quickscan.

Вывод данного скрипта покажет вам узкие места(бутылочное горло) в системе и/или железе, и укажет места, где можно найти более подробную информацию по этому поводу.

Desktop Effects vs JACK

In addition to the factors listed under the System Configuration section above as well as the settings checked by realTimeConfigQuickScan.pl, it is also worth noting that desktop environments can cause xruns and hence JACK audio glitches, especially memory/process intensive ones and those desktops that utilize composited desktop effects. It is recommended you disable desktop effects when using JACK. You are likely to get the least xruns and best performance by running a lightweight desktop or just a window manager instead.

Общий пример

Режим реального времени ядра

С недавнего времени основное ядро Linux предоставляет хорошие возможности для использования его в режиме реального времени. Основное ядро (с параметром CONFIG_PREEMPT=y , используемое в Арч по умолчанию) в худшем случае может работать с задержкой до 10мс (время между моментом аппаратного прерывания и моментом, соответствующим получению прерывания выполняющимся потоком), хотя, конечно же, некоторые драйверы устройств могут внести задержки намного бо́льшие, чем системные. В зависимости от вашего аппаратного обеспечения и драйверов (и требований), вы, возможно, захотите ядро с возможностями жёсткого режима реального времени.

Патч RT_PREEPMT от Инго Молнара (Ingo Molnar) и Томаса Глейкснера (Thomas Gleixner) является интересным вариантом для жёстких задержек и приложений режима реального времени, достигаемых в профессиональном аудио промышленного масштаба. Большинство аудио специфичных дистрибутивов Linux поставляются с применением данного патча. Режим вытесняющей многозадачности реального времени ядра также позволяет настроить приоритеты прерываний (IRQ) обработки потоков и помогает обеспечить плавный звук почти независимо от нагрузки.

Если вы собираетесь компилировать собственное ядро, помните, что удаление модулей/опций не следует приравнивать к «лёгкости и простоте» ядра. Образ ядра, конечно же, уменьшится, но в современных системах это не такая проблема, какая она была в 1995-м.

В любом случае, вы должны обеспечить следующие параметры:

  • Timer Frequency установить в значение 1000Hz (CONFIG_HZ_1000=y; если вы не задаёте MIDI, вы можете это игнорировать)
  • APM в значение DISABLED (CONFIG_APM=n; Могут быть трудности с некоторым оборудованием — по умолчанию в x86_64)

Если вы хотите действительно лёгкую систему, мы предлагаем вам пойти своим путём и развернуть систему один раз с статической аппаратной поддержкой. Однако, вам понадобится выбрать архитектуру процессора. Выбор «Core 2 Duo» с подбором соответствующего аппаратного обеспечения может послужить хорошим подспорьем для оптимизации; но тем меньше будет выигрыш, чем ниже архитектура.

Основные проблемы с режимом реального времени ядра:

  • Гиперпоточность (hyperthreading) (если имеются подозрения, отключите в BIOS)

Также имеются готовые скомпилированные с патчами ядра, доступные в ABS и AUR.

Из репозитория AUR вам доступны следующие варианты:

Два первых — это стандартные ядра с патчем CONFIG_PREEMPT_RT, в то время как -ice включают некоторые патчи, которые работают не на всех конфигурациях.

Читайте также:  Постоянно выскакивает меню пуск windows 10

Для уменьшения дрожания MIDI при использовании внешнего MIDI оснащения jack2, должна быть использована опция Xalsarawmidi. При этом вам также потребуется использовать a2jmidid.

Вы можете проверить насколько сильно дрожание с помощью alsa-midi-latency-test. PCI и PCIe карты зачастую показывают лучшие результаты по сравнению с устройствами USB MIDI.

При работе с MIDI настоятельно рекомендуется установить a2j ( a2jmidid ) — связующее звено между alsa midi и jack midi. Это позволит вам соединить приложения, которые связаны только с alsa midi, с приложениями, которые связаны только с jack midi. Laditray также может запускать/останавливать a2j.

Переменные окружения

Если вы что-то устанавливаете в нестандартный каталог, зачастую необходимо настроить переменные путей окружения, чтобы приложения знали где искать (для плагинов и других библиотек). Обычно это относится к VST, так как пользователи могут иметь Wine или внешние пути Windows.

Как правило, плагины Linux (LADSPA, LV2, DSSI, LXVST) располагаются по стандартным путям, поэтому не требуется их экспортировать. Но если это не так, убедитесь, что добавили эти стандартные пути, так как Arch ничего не будет делать для dssi или ladspa, и приложений вроде dssi-vst, и не будет смотреть где-то ещё, если найдет предустановленные пути.

Советы и хитрости

  • Отключите WiFi и закройте все приложения, нетребующиеся для записи, такие как браузер. Многие отмечали, что отключение WiFi сказывается на производительности JACK.
  • Известно, что некоторое USB аудио аппаратное обеспечение не работает с портами USB 3, попробуйте вместо этого использовать порты USB 2/1.
  • Могут случаться ошибки IRQ, что создаёт проблемы. Пример, видео аппаратное обеспечение, резервирующее шину, приводящее к ненужным прерываниям в системном пути ввода-вывода. Смотрите обсуждение в FFADO IRQ Priorities How-To. Если вы используете ядро реального времени или свежее ядро, вы можете использовать rtirq для настройки приоритетов обработки потоков IRQ.
  • Не используйте службу irqbalance, или будьте с ней очень осторожны [1] [устаревшая ссылка 2020-08-04] .
  • Если вам необходимо использовать несколько аудио устройств с JACK2, можно воспользоваться вспомогательными программами alsa_in и alsa_out для скрытия лишних устройств и показывать их как вывод в JACK patchbay.
  • Некоторые службы/процессы могут неожиданно вызывать xruns. Если вам это не нужно, отключите их. Без вопросов.
  • Если xruns было запущено много раз, особенно с nvidia , отключите дросселирование GPU. Сделать это можно с помощью апплета управления картой и для nvidia это «prefer maximum performance» (спасибо за письмо в LAU от Frank Kober).
  • Если вы хотите узнать больше о ALSA: https://www.volkerschatz.com/noise/alsa.html

Аппаратное обеспечение

Подавляющее большинство звуковых карт и аудио устройств не потребуют дополнительных настроек или пакетов для работы. Просто укажите используемое гнездо звуковой карты и перезагрузите систему.

Но это справедливо не для всех устройств, в частности для тех что перечислены ниже.

M-Audio Delta 1010

Серия звуковых карт M-Audio Delta основана на аудио чипсете VIA Ice1712. Карты, основанные на этом чипе, требуют установки пакета alsa-tools, так как в нём содержится приложение envy24control. Envy24control — это микшер/контроллер аппаратного уровня. Вы можете использовать alsa-mixer, но, поверьте, вы сохраните кучу нервов, если не будете пробовать этого. Обратите внимание, в этом разделе отсутствует информация о настройке или использовании MIDI.

Это приложение может показаться очень запутанным; смотрите envy24control для объяснения по работе с ним. Тем не менее, ниже приведёна очень простая работающая конфигурация для мультитрекинга с Ardour.

  1. На вкладках «Monitor Inputs» и «Monitor PCMs» установите значение 20 для всех контролируемых входов и PCM’s.
  2. На вкладке «Patchbay / Router» для всех значений выберите выход PCM.
  3. На вкладке «Hardware Settings» убедитесь, что настройки Master Clock совпадают с настройками Qjackctl. Если это не так, то ваш xruns не контролируется!

M-Audio Fast Track Pro

The M-Audio Fast Track Pro — это аудио интерфейс USB 4×4, работающий с характеристиками 24 бит/96 кГц. Из-за ограничений USB 1, это устройство требует дополнительной настройки для получения доступа ко всем его функциям. Устройство может работать в одном из двух режимов:

  • Конфигурация 1, или «Режим совместимости классов» («Class compliant mode») — с усечённой функциональностью, только 16 бит, 48 кГц, аналоговый вход (2 канала) и цифровой/аналоговый выход (4 канала).
  • Конфигурация 2 — с доступом ко всем функциям интерфейса.

В настоящий момент, с обычным ядром оно запускается в конфигурации 2, но если вы хотите дополнительно проверить, так ли это, вы можете обратиться к логам ядра в поисках записей вида:

С интерфейсом потребуется проделать несколько дополнительных операций для переключения режима. Это производится с помощью опции device_setup в процессе загрузке модуля. Рекомендуемый способ настройки интерфейса осуществляется с использованием файла в modprobe.d :

где vid и pid — идентификаторы поставщика и продукта для M-Audio Fast Track Pro, index — это требуемый номер устройства и device_setup — требуемая настройка устройства. Возможные значения для device_setup :

device modes

device_setup value bit depth frequency analog output digital output analog input digital input IO mode
0x0 16 bit 48kHz + + + + 4×4
0x9 24 bit 48kHz + + + 2×4
0x13 24 bit 48kHz + + + 2×4
0x5 24 bit 96kHz * * * * 2×0 or 0x2
Читайте также:  Turn windows features on and off перевод

Режим 24 бита/96 кГц является особенным: он предоставляет все входы/выходы, но вы можете открыть только 4 интерфейса одновременно. Если вы, например, откроете выходной интерфейс и следом попытаетесь открыть второй такой же или входной интерфейс, то увидите запись об ошибке в логах ядра:

что является нормальным, потому что это устройство USB 1 и не может обеспечить достаточную пропускную способность такого качества для более чем одного (2-канального) источника/получателя одновременно.

В зависимости от значения index будет установлено два устройства: hwYYY:0 и hwYYY:1 , которые будут содержать доступные входы и выходы. Первое устройство, скорее всего, будет содержать в себе аналоговый выход и цифровой вход, в то время как второй — аналоговый вход и цифровой выход. Чтобы узнать, где и как устройства соединены, — если они настроены правильно, — вы можете проверить /proc/asound/cardYYY/stream <0,1>. Ниже приведён список наиболее важных конечных точек (endpoints), которые помогут правильно определить соединения карты (легко перепутать аналоговые и цифровые входные или выходные соединения, прежде чем привыкаешь к устройству):

This .asoundrc file enables 24-bit IO on the fast-track pro (and I’m sure it could be modified to work with other 3-byte usb devices) within the context of jack’s 32-bit interface while routing default alsa traffic to jack outputs on the audio interface. Alsa will be in S24_3BE mode but jack can plug S32_LE data in and out of the interface and other alsa programs will be able to plug almost anything into jack.

PreSonus Firepod

  1. Запуск: либо из командной строки, либо Qjackctl; драйвер называется firewire.
  2. Характеристики: карта содержит 8/8 XLR предусилителей плюс стереопара, итого получается 10 каналов.
  3. Сопряжение: карты могут соединяться вместе без каких-либо проблем.
  4. Настройка оборудования: ничего особенного; меняйте настройки в Qjackctl по своему усмотрению.

Уровни громкости аппаратные, а маршрутизация может быть выполнена в Qjackctl, даже если между собой сопряжено множество карт, — это не проблема. Ffadomixer пока ещё не работает с данной картой; надеемся, в будущем мы сможем контролировать больше аспектов карты через программный интерфейс как этот.

PreSonus AudioBox USB

  1. Startup: ALSA именует устройство как «USB».
  2. Specs: Два моно входа TRS+XLR, два моно выхода TRS, MIDI вход и выход, плюс отдельный стерео канал для наушников. Присутствуют регуляторы для управления обоими входами, основным выходом, и для наушников, всего четыре.
  3. Hardware: Работает очень хорошо, и аудио и MIDI. Не управляется программным микшером.

Tascam US-122

Данные настройки неприменимы для US-122L

Подключите устройство. После этого устройство должно начать работать. Программного управления микшером нет.

RME Babyface

Хорошо работает при малых задержках (

5мс) с alsa-utils , jack2 и linux-rt AUR . Запуск ALSA только со стандартным ядром может привести к появлению треска при меньших задержках.

Для распознавания устройства и его работы, версия прошивки должна быть >= 200, который обладает режимом класса совместимости (Class Compliant Mode). Для перехода в режим совместимости классов (Class Compliant Mode) зажмите кнопки «Select» и «Recall» при подсоединении Babyface к компьютеру через USB. После этого оно должно быть распознано.

Для проверки распознавания устройства смотрите:

Для получения большей информации о режиме совместимости классов (Class Compliant Mode), посетите сайт RME. На нём имеется PDF, который рассказывает обо всех функциях.

Для Babyface не требуется особых настроек Jack. Но если вы захотите воспользоваться встроенным входом/выходом MIDI, вам нужно установить «MIDI Driver» в положение «seq» и, при необходимости, отключить «Enable Alsa Sequencer Support» для использования его в комбинации с другими устройствами MIDI (например, USB Midi клавиатура).

Несвободные приложения

Steinberg’овые SDK

Естественно, мы не можем распространять заголовки ни VST, ни ASIO в форме бинарных пакетов. Тем не менее, всякий раз, когда вы собираете программу, которая будет работать с плагинами VST в виде Windows-библиотек .dll, проверьте следующие пакеты (которые не требуют использования какого-либо SDK):

С учётом вышесказанного, если вы собираете программу, которая будет работать с нативными .so VST плагинами, то в этом случае выхода нет. Для таких случаев Арч позволяет нам поддерживать единую локальную базу данных приложений. Мы можем «установить» общесистемную SDK — достаточно лишь скачать и поместить файл в директорию установленного пакета.

Проект Arch Linux Pro Audio

Да, у нас есть и такое. Задумайтесь над «Planet CCRMA» или «Pro Audio Overlay», меньше научной коннотации: ArchAudio [устаревшая ссылка 2021-05-17] .

Что значит, что сие является репозиторием дополнений, т.е. вы должны поработать над разумной установкой и настройкой Archlinux.

Это относительно новое течение, хотя инициатива была проявлена ещё примерно в 2006/2007г.

По всем вопросам, связанными с Arch- и ArchAudio- проблемами можно обратиться в наш IRC: #archlinux-proaudio

Источник

Оцените статью