Проблема (возможно, в конфигурации ALSA) с запуском jack.Client() на jackclient-python

Я пытаюсь прочитать ввод MIDI с MIDI-клавиатуры в 64-разрядной версии Ubuntu 18.04.

Я решил использовать клиент JACK Audio Connection Kit (JACK) для Python. После установки я хочу запустить простую программу для печати всех полученных MIDI-событий.

Но после запуска

client = jack.Client('MIDI-Monitor')

я получил

ALSA: Cannot open PCM device alsa_pcm for playback. 
      Falling back to capture-only mode
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel

Сначала я проверил, работает ли MIDI-клавиатура. Я использовал Kmidimon и видел события при нажатии клавиш. Итак, MIDI-клавиатура работает.

Затем я поискал в Интернете и попробовал следующее: используйте эту команду и запустите ее в фоновом режиме jackd -R -d alsa -d hw:0,3 (и все возможные комбинации, 0 означает номер карты, 3 означает номер устройства, см. также ответ на команду aplay -l)

Источник: https://askubuntu.com/questions/320946/jackd-does-not-work-aplay-l-shows-two-instances-of-the-same-card-ubuntu-13-04.

Но программа python не реагировала на события, когда я нажимал кнопки на MIDI-клавиатуре.

Вот часть ответа на команду aplay -l

card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
card 0: HDMI [HDA Intel HDMI], device 9: HDMI 3 [HDMI 3]
card 1: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
card 1: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]

Не могли бы вы помочь мне указать, где проблема?


person David17    schedule 13.02.2019    source источник
comment
Вы подключали клавиатуру к монитору?   -  person CL.    schedule 13.02.2019
comment
Нет. Я подключил MIDI-клавиатуру к порту USB на основной плате компьютера.   -  person David17    schedule 14.02.2019
comment
Я говорил о софте. Попробуйте QjackCtl.   -  person CL.    schedule 14.02.2019


Ответы (1)


Суть в том, что нам нужно дать правильную команду для запуска jack server с правильным драйвером, идентификатором устройства и, возможно, MIDI-портами.

Используйте следующую команду для запуска сервера jack в фоновом режиме:

sudo jackd -d alsa -d hw:2,0 -X seq

«-d alsa» означает, что будет использоваться драйвер ALSA.

"-d hw:2,0 -X seq" является внутренним параметром для "-d alsa"

"-d hw:2,0" означает используемое PCM-устройство ALSA и все возможные комбинации, 2 означает номер карты, 0 означает номер устройства, информацию можно найти в ответе на команду aplay -l (который находится внизу этот ответ)

«-X seq» означает указать набор портов JACK MIDI, которые соответствуют каждому клиенту «секвенсора» ALSA (который включает в себя каждый аппаратный порт MIDI на машине).

Возможный рабочий ответ от команды будет выглядеть так:

   jackdmp 1.9.12
   Copyright 2001-2005 Paul Davis and others.
   Copyright 2004-2016 Grame.
   Copyright 2016-2017 Filipe Coelho.
   ... (some lines omitted)
   JACK server starting in realtime mode with priority 10
   self-connect-mode is "Don't restrict self connect requests"
   audio_reservation_init
   Acquire audio card Audio2
   creating alsa driver ... hw:2,0|hw:2,0|1024|2|48000|0|0|nomon|swmeter|-|32bit
   configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
   ALSA: final selected sample format for capture: 32bit integer little-endian
   ALSA: use 2 periods for capture
   ALSA: final selected sample format for playback: 32bit integer little-endian
   ALSA: use 2 periods for playback
   port created: Midi-Through:midi/playback_1
   port created: Midi-Through:midi/capture_1
   port created: CME-M-Key:midi/playback_1
   port created: CME-M-Key:midi/capture_1
   port created: KMidimon:midi/playback_1
   port created: KMidimon:midi/capture_1

Вот часть вывода команды aplay -l, которая показывает информацию о карте 2.

   card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

Источники:

Man-страница для jackd: https://www.mankier.com/1/jackd

Аналогичное решение в Интернете: https://askubuntu.com/questions/320946/jackd-does-not-work-aplay-l-shows-two-instances-of-the-same-card-ubuntu-13-04< /а>

person David17    schedule 16.08.2019