Запуск QSynth/fluidsynth через Jack: не видно аудио-порта

Начало Форум Звук Запись, коммутация, JACK Запуск QSynth/fluidsynth через Jack: не видно аудио-порта

В этой теме 8 ответов, 2 участника, последнее обновление  nick87720z 8 года/лет, 8 мес. назад.

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)
  • Автор
    Сообщения
  • #1278

    tentaclius
    Участник

    Привет всем.

    Столкнулся с такой проблемой: после запуска 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)

    #2177

    tentaclius
    Участник

    Ах, вот еще… При запуске 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.

    #2178

    nick87720z
    Участник

    По идее в первом случае порты должны быть. Что выдает «jack_lsp» ?

    А во втором случае следовало вручную указать частоту дискретизации:
    [code:32bbiwnr]# fluidsynth synth.sample-rate=48000 ibanez-bass.sf2[/code:32bbiwnr]

    Хотя, стоп: даже если частоты не совпадают, fluidsynth должен выбирать правильную (в логах сказано — adjusting). Может, надо fluidsynth обновить? У вас какая версия?

    Судя по тому, что вы работаете под рутом, либо дистрибутив старый, либо кое-чего не настроили [i:32bbiwnr](в более современных нужные права получаются потем включения пользователя в группу audio, для которой уже установлены нужные права)[/i:32bbiwnr].

    #2179

    tentaclius
    Участник

    [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

    #2180

    tentaclius
    Участник

    в более многословном логе 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]

    #2181

    tentaclius
    Участник

    Отключил опцию Realtime у Jack-а. Запустилось… но подтормаживает…

    #2182

    nick87720z
    Участник

    Кажется, припоминаю. Среди параметров jack есть параметр timeout, который имеет огромное значение в режиме реального времени. Просто клиент не укладывается в какие-то рамки и jack его зомбирует.

    Есть два выхода: либо поставить timeout на допустимый максимум, либо добавить к строке с командой jack опцию «—nozombies» или «-Z» (подробнее смотрим `man jackd`).

    В qjackctl ее следует добавлять в строку, где прописана команда jackd (т.к. сам qjackctl, кажется, ее не поддерживает).

    #2183

    tentaclius
    Участник

    Да, это оно. Спасибо большое. Увеличил задержку при запуске и таймаут. Теперь все работает нормально.

    #2184

    nick87720z
    Участник

    [quote:66nicnng]Увеличил задержку при запуске и таймаут[/quote:66nicnng]
    Если вы в режиме realtime (при условии, что ядро соответствующее), то как раз высокая задержка необязательна. ;)» title=»Wink» />

Просмотр 9 сообщений - с 1 по 9 (из 9 всего)

Для ответа в этой теме необходимо авторизоваться.