LINUX.ORG.RU

MIDI в Linux: диагностируем отсутствие звука

 , , ,


1

1

Руководство затрагивает проблему с отсутствующим звуком в музыкальных программах типа Power Tab Editor в linux. Подходит для систем с PipeWire или PulseAudio. Ниже описана настройка MIDI и звука для Power Tab Editor.

Часть 1: Установка и проверка FluidSynth

1. Установка необходимых пакетов

Для начала нам понадобятся:

  • fluidsynth — программный MIDI-синтезатор.

  • alsa-utils — содержит команду aconnect для управления MIDI-соединениями.

  • soundfont-fluid — набор звуков (SoundFont) в формате .sf2.

sudo pacman -S fluidsynth alsa-utils soundfont-fluid

или

sudo apt install fluidsynth alsa-utils soundfont-fluid

Зависит от вашего менеджера пакетов.

2. Проверка наличия SoundFont-файла

После установки убедитесь, что SoundFont-файл на месте:

ls -la /usr/share/soundfonts/FluidR3_GM.sf2

Вывод должен выглядеть примерно так:

-rw-r--r-- 1 root root 148398306 июл  6  2024 /usr/share/soundfonts/FluidR3_GM.sf2

3. Ручной запуск FluidSynth (проверка работы)

Запустите FluidSynth с PulseAudio-драйвером:

fluidsynth -a pulseaudio -g 1.0 /usr/share/soundfonts/FluidR3_GM.sf2

Пояснение параметров:

  • a pulseaudio — использовать звуковой драйвер PulseAudio (совместим с PipeWire).

  • g 1.0 — громкость (значение от 0 до 1).

  • /usr/share/soundfonts/FluidR3_GM.sf2 - путь к SoundFont — указывает на файл с инструментами.

Ожидаемый результат:

  • Терминал переходит в интерактивный режим (появляется приглашение >).

  • Появляются предупреждения ALSA (например, unable to open slave). Игнорируйте их — это нормально для систем с PipeWire.

FluidSynth успешно запущен и ждёт MIDI-соединений.

Чтобы проверить, виден ли синтезатор в системе: Откройте второй терминал и выполните:

aconnect -o

Вы должны увидеть строку с FLUID Synth:

client 128: 'FLUID Synth' [type=user,pid=3678]
    0 'Synth input port (3678:0)'

4. Тест MIDI-соединения (опционально)

Если нужно вручную соединить MIDI-устройства:

aconnect -a

Эта команда соединяет все доступные MIDI-выходы со всеми MIDI-входами.

Проверьте работу звука в своей программе, как пример Power Tab Editor (версия из Flathub).

  • Откройте Tools → Settings → MIDI.

  • В выпадающем списке MIDI Output выберите FLUID Synth.

  • Убедитесь, что опция Enable MIDI Output активна.

  • Закройте окно настроек.

Если звук работает, FluidSynth можно пока отключить Ctrl+C в терминале с «>» и переходить к части 2.

Часть 2: Установка и настройка Qsynth

Qsynth — это удобная GUI-обёртка для FluidSynth, которая решает проблемы с переменными окружения и позволяет запускать синтезатор в фоне.

1. Запуск Qsynth и настройка звукового драйвера (вкладка «Звук»)

  • Запустите Qsynth

  • Откройте Setup → вкладка Sound.

Установите следующие параметры: Параметр Значение Audio Driver pulseaudio Audio Device Оставьте по умолчанию Формат выборок 16bits Звуковых каналов 2 Частота дискретизации 44100 Размер буфера 64 или 128 Полифония 256 Число буферов 2

Не обязательно, но почему pulseaudio? Есть теория, что в системах с PipeWire этот драйвер не конфликтует с другими приложениями. Я эту теорию не проверял.

2. Настройка MIDI (вкладка «MIDI»)

  • Перейдите на вкладку MIDI.
  • Параметр Значение
  • MIDI Driver alsa_seq

3. Загрузка SoundFont-файла (вкладка «Файлы SF2»)

  • Перейдите на вкладку «Файлы SF2».

  • Нажмите на кнопку «Открыть» (значок папки).

  • Выберите файл: /usr/share/soundfonts/FluidR3_GM.sf2

  • После загрузки название файла появится в списке.

4. Запуск синтезатора

  • Нажмите кнопку «Вкл» (Power On) в основном окне Qsynth.

  • Индикатор должен загореться зелёным.

  • Qsynth теперь работает в фоне и готов принимать MIDI-сигналы.

Часть 5: Настройка Power Tab Editor

  • Запустите Power Tab Editor (у меня версия из Flathub).

  • Откройте Tools → Settings → MIDI.

  • В выпадающем списке MIDI Output выберите FLUID Synth.

  • Убедитесь, что опция Enable MIDI Output активна.

  • Закройте окно настроек.

Теперь при нажатии Play звук должен воспроизводиться через Qsynth.

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



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

Ты, говоря о Power Tab Editor, имеешь в виду этот проект? Потому, что там в Readme есть ещё отсылка на некий original Power Tab Editor, но у того сейчас даже сайт не открывается.

P.S. Слегка конкретизировал заголовок темы, а то «MIDI в Linux», вообще-то, довольно широкая тема.

P.P.S. Нашёл упоминание про флатхаб, хотел посмотреть, на что он ссылается, но на самом флатхабе сейчас чегой-то 500 ошибка выскакавает. Отложил.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Автор не откликнулся, но флатхаб ожил. Действительно, это тот проект. Подтвердил, ссылку на гитхаб добавил.

Сайт оригинального, кстати, тоже пытается открыться. С большими тормозами, но загрузившегося уже достаточно, чтобы понять, что это была программа на дотнете для Windows. Скорее всего, closed-source, хотя это не точно.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 3)

Давайте попросим оператора по доставке нейрослопа найти и показать нам кнопку «Вкл» (Power On) в основном окне Qsynth, чисто посмеяться перед забаном.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от thesis

Бгг, стал искать эту кнопку и нашел баг в интерфейсе QSynth! Птичка «Вкл» в поле для реверберации, подписана «включение эффекта ХОРА». Надо зарепортить, но пока лень

James_Holden ★★★★★
()
Ответ на: комментарий от James_Holden

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

Кстати, насчет aconnect -a тоже дичь написана. Да и в целом сразу видно, что дичь, но зарепортить успеем, надо же сначала похихикать.

thesis ★★★★★
()
Ответ на: комментарий от hobbit

да, по названию статьи вообще не понятно о чём речь, а внутри вроде и полезно

z0idator
()
Ответ на: комментарий от kott

18 лет назад, какая милота. Первые шаги и все такое.

А в остальных местах - «реверберация» везде.

thesis ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.