Користувальницькькі налаштування

Налаштування сайту


alsa-midi

Це стара версія документу!


MIDI

Програвання MIDI-файлів

FluidSynth

fluidsynth -a alsa SoundFont-file.sf2 MIDI-file.midi

TiMidity++

timidity MIDI-file.midi

MIDI-інструменти

Під'єднання до комп'ютера

MIDI-порт

FIXME

USB-порт

Потрібно увімкнути підтримку USB MIDI пристроїв у ядрі Linux:

Symbol: SND_USB_AUDIO [=m]
Type  : tristate
Prompt: USB Audio/MIDI driver
  Location:
     -> Device Drivers
       -> Sound card support (SOUND [=m])
         -> Advanced Linux Sound Architecture (SND [=m])
           -> USB sound devices (SND_USB [=y])

Якщо обрати цей параметр у режимі модуля, то назва модуля буде “snd-usb-audio”.

За наявності підтримки MIDI пристрою в ядрі, під час під'єднання його до USB-порту в системних логах можна побачити приблизно такі повідомлення:

Jun 27 09:06:49 Hostname kernel: usb 2-3: new full-speed USB device number 3 using ohci-pci
Jun 27 09:06:49 Hostname kernel: usb 2-3: New USB device found, idVendor=0a4d, idProduct=0091
Jun 27 09:06:49 Hostname kernel: usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Jun 27 09:06:49 Hostname kernel: usb 2-3: Product: USB Keystation 61es
Jun 27 09:06:49 Hostname kernel: usb 2-3: Manufacturer: Evolution Electronics Ltd.
Jun 27 09:06:49 Hostname kernel: usbcore: registered new interface driver snd-usb-audio

Це означає, що обладнання визначено правильно і для нього завантажено модуль “snd-usb-audio”. Більш-менш нові системи GNU/Linux автоматично завантажують потрібні модулі для відповідного обладнання. На старих системах, можливо, потрібно завантажити модулі власноруч (наприклад, sudo modprobe snd-usb-audio).

Модуль “snd-usb-audio” не єдиний, що використовується для роботи MIDI-пристроїв. Після під'єднання інструменту до USB порту можна побачити серед завантажених модулів такі:

snd_usb_audio
snd_hwdep
snd_usbmidi_lib
snd_rawmidi
snd_seq_device

Перевірка з'єднання

Якщо усе під'єднано правильно та необхідні модулі завантажені, в системі має бути зареєстровано новий MIDI-порт. Список їх можна отримати командою

$ aseqdump -l
Port    Client name                      Port name
20:0    USB Keystation 61es              USB Keystation 61es MIDI 1

В наведеному прикладі ми бачимо MIDI-клавіатуру “Keystation 61es” з номером порта 20:0. Тепер можна перевірити, чи цей пристрій здатен передавати MIDI-сигнали програмам. Для цього знову запускаємо програму aseqdump, вказавши їй потрібний порт нашого пристрою та натискаємо будь-які клавіші на MIDI-інструменті (або крутимо будь-які ручки на ньому). Якщо сигнали проходять, вивід має бути приблизно таким:

$ aseqdump -p 20:0
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 20:0   Note on                 0, note 48, velocity 47
 20:0   Note off                0, note 48
 20:0   Note on                 0, note 50, velocity 63
 20:0   Note off                0, note 50
 20:0   Note on                 0, note 52, velocity 76
 20:0   Note off                0, note 52
 20:0   Note on                 0, note 53, velocity 51
 20:0   Note off                0, note 53

Тобто бачимо, що програма отримує від інструмента сигнали про натискання клавіш.

Налаштування програм

Для того, щоб грати на MIDI-інструменті через якусь програму (наприклад, програмний синтезатор звуків), потрібно спочатку з'єднати програмний вихід інструмента з програмнтим входом відповідної програми. Дізнатися, які програмні виходи зареєстровані в системі можна за допомогою команди

aconnect -i

програмні входи:

aconnect -o

FIXME

Посилання

Налаштування ALSA

Для того, щоб затримка між MIDI-подіями та появою звуку була якомога меншою, потрібно зменшити параметр period_size в налаштуваннях ALSA. Це можна зробити у файлі .asoundrc.

alsa-midi.1498544953.txt.bz2 · В останнє змінено: 2017/06/27 09:29 by wombat