Проблема (может быть в ALSA Config.) При запуске jack.Client () на jackclient-python - PullRequest
0 голосов
/ 13 февраля 2019

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

Я решил использовать JACK Audio Connection Kit (JACK) Client для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]

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

1 Ответ

0 голосов
/ 16 августа 2019

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

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

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

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

"- d hw: 2,0 -Xseq "является опцией бэкэнда для" -d alsa "

" - d hw: 2,0 "означает использование устройства ALSA pcm и все возможные комбинации, 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

Источники:

ЧеловекСтраница для 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

...