
Во время работы надППАдля предоставления двоичных файлов дляСоник Пи, пользователи бинарников PPA продолжают спотыкаться о jackd. Как облегчить им задачу?
Sonic Pi — это образовательный музыкальный инструмент, который объединяет электронный синтезатор с языком программирования. Он нацелен на начинающих пользователей и школьников, чтобыобучайте программированию с помощью музыки. Основной целью установки программного обеспечения является Raspbian, где оно предустановлено. Икодсодержит некоторые встроенные хаки, то есть, прагматичные решения для того, чтобы настроить и запустить Raspberry Pi. Но эти хаки специфичны для RPi и не работают на других дистрибутивах.
Вот ситуация:
- Sonic-Pi — графическая IDE
- с сервером на основе Ruby, работающим в фоновом режиме, который управляет музыкой
- для воспроизведения музыки используется scsynth (часть Supercollider) в качестве бэкэнда синтезатора
- scsynth в настоящее время требует использования jackd для воспроизведения звука на Linux
- сервер Sonic Pi на основе Ruby запускает jackd (если он еще не запущен), а затем scsynth
А вот здесь начинаются проблемы, если вы используете Ubuntu (и, полагаю, Debian тоже):
- Конфигурация jackd по умолчанию в Ubuntu, похоже, работает не у всех, поэтому в некоторых системах он просто не запускается, и пользователю приходится использовать qjackctl или копаться в журналах и изменять файлы конфигурации.
- когда jackd запускается,он блокирует PulseAudio, поэтому любая программа, использующая аудио, которая уже запущена, перестанет работать
- jackd предпочитает планирование в реальном времени, но Ubuntu не настроена заранее для этого и требуетизменения для пользователясделать это
Итак, в общем и целом,это беспорядок. Это не тот опыт, который хочет получить новичок после установки Sonic Pi.
Существуют руководства по настройке работы jackd с Ubuntu, но работа с ними требует слишком многого от начинающего пользователя или учителя в классе, который просто хочет освоить это программное обеспечение.
Итак, я ищу способ, которыйубедимся, что после установки Sonic Pi из .deb,все с jackd работает сразу из коробки, без проблем, не требует ручной настройки.
Список пожеланий таков:
- конфигурация для jackd, которая «просто работает» из коробки
- для всех непривилегированных учетных записей пользователей
- который не блокирует PulseAudio/ALSA в той же системе
- на Ubuntu по умолчанию (и, если возможно, на Debian и Raspbian по умолчанию)
- и стандартные клавиши аудиомикшера и регулировки громкости дистрибутива продолжают работать
Существует ли это вообще?
Есть ли .deb-файл для этого (или можно ли его создать), который пользователи могут просто установить, чтобы настроить его таким образом?
решение1
Я прочитал комментарии Takkat и, возможно, это вам подойдет:
- Отздесь, установить "импульсный аудио-модуль-джек" затем отредактируйте /etc/pulse/default.pa (
sudo gedit /etc/pulse/default.pa
) : Добавьте следующие строки под строкой#load-module module-alsa-sink
load-module module-jack-sink
load-module module-jack-source
Затем создайте или измените .jackrc в вашем домашнем файле, содержащий:
/usr/bin/jackd --no-realtime -dalsa -dhw -r44100 -p1024 -n2
Перезапустите запущенный PulseAudio killall pulseaudio
(также остановите jackd, если он запущен killall jackd
): PulseAudio автоматически перезапустится, а также запустится jackd, если оба устройства подключены правильно, поэтомуJackd и Pulseaudio можно использовать одновременно.
(это работает на моем ПК с Ubuntu 14.04).
- Realtime нужен только если вам нужна низкая задержка для многодорожечной записи. Приведенная выше конфигурация jackd даст задержку в 21 мс, что хорошо для большинства аудиопрограмм (задержку можно увеличить, установив 2048 вместо 1024 в .jackrc, см. jackd --help)
Поэтому вам не нужно предоставлять пользователям доступ в режиме реального времени.,
(Вы можете игнорировать предупреждения, если таковые имеются («Невозможно использовать планирование в реальном времени»)) .
Параметр-dhw
должен работать на большинстве ПК, но его можно не указывать, чтобы использовать аудиоустройство по умолчанию, или изменить на ,-d hw:1,0
чтобы использовать второе аудиоустройство. - Может быть, есть еще один шаг, если вам нужно вручную подключить jackd к аудиовходу/выходу с помощью "Qjackctl connect manager" (большинство программ подключаются к jackd автоматически, в этом случае нет необходимости делать это): установите "jack tools" и используйте команды "jack_connect" для создания сценариев этих подключений (вы также можете использоватьaj-снимок для сохранения и восстановления разъемных соединений)