Wednesday, September 9, 2009

MIDI keyboard under linux (как подружить usb midi keyboard, fluidsynth и jack)

Вчера наконец-то заставил работать под линуксом миди-клавиатуру (честно говоря, не совсем наконец-то, всего второй раз пробовал)

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

Общая схема подключения оказалась такой:
0. втыкаем клаву
1. запускаем демон jackd с нужными параметрами (см. ниже)
2. стартуем fluidsynth указывая, что надо использовать jack и определённый soundfont (без него ничего не получится)
3. связываем средствами ALSA ввод с миди с выходом fluidsynth
4. связываем jack-ом выход fluidsynth с системным выходом.
5. ?????????
6. PROFIT

скриптец с раскраской, требует допиливания, чтобы заработало

Если говорить в терминах команд, то получаем следующее:
Запускаем джек:
jackd -dalsa -dhw:0,0 -r44100 -p512 -n4 &

Теперь запустим синтезатор, скормив ему звуковой шрифт:
fluidsynth -ajack /home/cra/Unison.SF2

Кстати, откроется шелл, в котором можно регулировать gain командой gain X, где X - число от 1 до 5. Остальные команды, в общем-то, не столь важны.

Далее, смотрим, какие порты у нас открыты по выводу команды
aconnect -o

И подключаем вывод клавиатуры к входу синтезатора: что-то в духе
aconnect 128:0 20:0

Ну а теперь надо подцепить выход синтезатора джэком к системному выводу звука:
jack_connect fluidsynth:left system:playback_1
jack_connect fluidsynth:right system:playback_2

Всё, из колонок должны доноситься звуки.

No comments: