Начало › Форум › Звук › Запись, коммутация, JACK › Запуск QSynth/fluidsynth через Jack: не видно аудио-порта
В этой теме 8 ответов, 2 участника, последнее обновление nick87720z 8 года/лет, 8 мес. назад.
-
АвторСообщения
-
30.10.2010 в 12:02 #1278
Привет всем.
Столкнулся с такой проблемой: после запуска Jack и QSynth (вроде все запускается удовлетворительно) QSynth виден для Jack в закладке ALSA как 129:FLUID Synth (3400), но в качестве Audio устройства появляться не желает.
Тоесть, я могу сконнектить его к MIDI-клавиатуре, но он не дает аудио-выхода.
SoundFont загружен, канал выставлен.
Arch Linux; Fluidsynth 1.1.3-1, QSynth 0.35
Настройки qsynth:
[b:28b82srm]MIDI[/b:28b82srm]
Driver: alsa_seq
Channels: 16
[b:28b82srm]Audio[/b:28b82srm]
Driver: jack
Sample format: 16bits
Sample rate: 48000
Buffer size: 64
Jack client name ID: qsynth
Audio Channels: 1
Audio Groups: 1
Polyphony: 256
Auto connect JACK outputs: trueИндикатор на закладке QSynth движка моргает при нажатии клавиши на MIDI-клавиатуре, но индикаторы выходного сигнала на нуле.
Немного логов:
15:06:39.495 Qsynth1: Loading soundfont: «/home/tentaclius/mus/CIA Sounds v2.SF2» (bank offset 0)…
15:06:39.498 Qsynth1: Loading soundfont: «/home/tentaclius/mus/ibanez-bass.sf2» (bank offset 0)…
15:06:39.526 Qsynth1: Creating audio driver (jack)…
15:06:39.540 Qsynth1: Creating MIDI router (alsa_seq)…
15:06:39.560 Qsynth1: Creating MIDI driver (alsa_seq)…
15:06:39.561 Qsynth1: Creating MIDI player…
15:06:39.564 Qsynth1: Synthesizer engine started.
15:06:39.565 Qsynth1: fluid_synth_set_gain(2)
15:06:39.566 Qsynth1: fluid_synth_set_reverb(0.91,0.72,57,0.9)
15:06:39.567 Qsynth1: fluid_synth_set_chorus(45,1,0.3,8,1)30.10.2010 в 12:22 #2177Ах, вот еще… При запуске fluidsynth из консоли:
# fluidsynth ibanez-bass.sf2
fluidsynth: Jack sample rate mismatch, adjusting. (synth.sample-rate=44100, jackd=48000)
cannot read server event (Connection reset by peer)
zombified — calling shutdown handler
fluidsynth: error: Help! Lost the connection to the JACK server
Type ‘help’ for help topics.30.10.2010 в 13:38 #2178По идее в первом случае порты должны быть. Что выдает «jack_lsp» ?
А во втором случае следовало вручную указать частоту дискретизации:
[code:32bbiwnr]# fluidsynth synth.sample-rate=48000 ibanez-bass.sf2[/code:32bbiwnr]Хотя, стоп: даже если частоты не совпадают, fluidsynth должен выбирать правильную (в логах сказано — adjusting). Может, надо fluidsynth обновить? У вас какая версия?
Судя по тому, что вы работаете под рутом, либо дистрибутив старый, либо кое-чего не настроили [i:32bbiwnr](в более современных нужные права получаются потем включения пользователя в группу audio, для которой уже установлены нужные права)[/i:32bbiwnr].
30.10.2010 в 13:44 #2179[quote:1mlqqkcj][b:1mlqqkcj]nick87720z написал:[/b:1mlqqkcj]
По идее в первом случае порты должны быть. Что выдает «jack_lsp» ?А во втором случае следовало вручную указать частоту дискретизации:
[code:1mlqqkcj]# fluidsynth synth.sample-rate=48000 ibanez-bass.sf2[/code:1mlqqkcj][/quote:1mlqqkcj][b:1mlqqkcj]jack_lsp[/b:1mlqqkcj]
system:capture_1
system:capture_2
system:playback_1
system:playback_2
alsa_pcm:Midi-Through/midi_capture_1
alsa_pcm:Midi-Through/midi_playback_1Заметил еще, что с аналогичными сообщениями об ошибках вылетает и lmms, не может подключиться к Jack. Hydrogen, ZynAddSubFX, Rackarrack и другие, однако, работают нормально. Смутно предполагаю, что это может быть результатом не совсем ровных пакетов Arch-а. Хотя все вроде свежее. Сейчас не вполне успешно пытаюсь обновиться до Jack2. Нынешняя версия Jack: 0.118.0
30.10.2010 в 14:02 #2180в более многословном логе Jack-а нашел еще вот это:
[code:17mfgy0t]++ jack_sort_graph
++ jack_rechain_graph():
+++ client is now alsa_pcm active ? 1
client alsa_pcm: internal client, execution_order=0.
+++ client is now qjackctl active ? 1
client qjackctl: start_fd=7, execution_order=0.
client event poll on 16 for qjackctl starts at 19855108956
back from client event poll after 10 usecs
+++ client is now fluidsynth active ? 1
client fluidsynth: in subgraph after qjackctl, execution_order=1.
client event poll on 19 for fluidsynth starts at 19855109008
back from client event poll after 8 usecs
client qjackctl: wait_fd=17, execution_order=2 (last client).
— jack_rechain_graph()
— jack_sort_graph
start poll on 5 fd’s
17:05:16.199 XRUN callback (1).
subgraph starting at qjackctl timed out (subgraph_wait_fd=17, status = 0, state = Running, pollret = 0 revents = 0x0)
at 19855115058 waiting on 17 for 3049 usecs, status = 1 sig = 19855112002 awa = 19855112022 fin = 19855112026 dur=24
checking client alsa_pcm: awake at 0 finished at 0
checking client qjackctl: awake at 19855112022 finished at 19855112026
checking client fluidsynth: awake at 19855112038 finished at 0
client fluidsynth has timed out
waking server thread
**** alsa_pcm: xrun of at least 0.934 msecs
server thread back from poll
trying to lock graph to remove 1 problems
we have problem clients (problems = 1
++ Removing failed clients ...
client alsa_pcm error status 0
client qjackctl error status 0
client fluidsynth error status 1
client failure: client fluidsynth state = Finished errors = 1
removing client "fluidsynth" from the processing chain
client event poll on 16 for qjackctl starts at 19855128144
back from client event poll after 10 usecs[/code:17mfgy0t]30.10.2010 в 14:07 #2181Отключил опцию Realtime у Jack-а. Запустилось… но подтормаживает…
30.10.2010 в 17:54 #2182Кажется, припоминаю. Среди параметров jack есть параметр timeout, который имеет огромное значение в режиме реального времени. Просто клиент не укладывается в какие-то рамки и jack его зомбирует.
Есть два выхода: либо поставить timeout на допустимый максимум, либо добавить к строке с командой jack опцию «—nozombies» или «-Z» (подробнее смотрим `man jackd`).
В qjackctl ее следует добавлять в строку, где прописана команда jackd (т.к. сам qjackctl, кажется, ее не поддерживает).
01.11.2010 в 07:06 #2183Да, это оно. Спасибо большое. Увеличил задержку при запуске и таймаут. Теперь все работает нормально.
02.11.2010 в 10:59 #2184[quote:66nicnng]Увеличил задержку при запуске и таймаут[/quote:66nicnng]
Если вы в режиме realtime (при условии, что ядро соответствующее), то как раз высокая задержка необязательна.» title=»Wink» />
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.