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

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


alsa-midi

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
Остання ревізія Both sides next revision
alsa-midi [2017/06/25 23:59]
wombat MIDI-інструменти
alsa-midi [2017/06/27 10:46]
wombat Затримка звуку
Рядок 39: Рядок 39:
 Якщо обрати цей параметр у режимі модуля,​ то назва модуля буде "''​snd-usb-audio''"​. Якщо обрати цей параметр у режимі модуля,​ то назва модуля буде "''​snd-usb-audio''"​.
  
 +За наявності підтримки MIDI пристрою в ядрі, під час під'​єднання його до USB-порту в системних логах можна побачити приблизно такі повідомлення:​
  
-===== Налаштування програм =====+<​code>​ 
 +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=
 +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 
 +</​code>​ 
 + 
 +Це означає,​ що обладнання визначено правильно і для нього завантажено модуль "''​snd-usb-audio''"​. Більш-менш нові системи GNU/Linux автоматично завантажують потрібні модулі для відповідного обладнання. ​На старих системах,​ можливо, потрібно завантажити модулі власноруч (наприклад,​ ''​sudo modprobe snd-usb-audio''​). 
 + 
 +Модуль "''​snd-usb-audio''"​ не єдиний,​ що використовується для роботи MIDI-пристроїв. Після під'​єднання інструменту до USB порту можна побачити серед завантажених модулів такі: 
 + 
 +<​code>​ 
 +snd_usb_audio 
 +snd_hwdep 
 +snd_usbmidi_lib 
 +snd_rawmidi 
 +snd_seq_device 
 +</​code>​ 
 + 
 +==== Перевірка з'​єднання ==== 
 + 
 +Якщо усе під'​єднано правильно та необхідні модулі завантажені,​ в системі має бути зареєстровано новий 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-інструменті (або крутимо будь-які ручки на ньому). Якщо сигнали проходять,​ вивід має бути приблизно таким:​ 
 + 
 +<​code>​ 
 +$ 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 
 +</​code>​ 
 + 
 +Тобто бачимо,​ що програма отримує від інструмента сигнали про натискання клавіш. 
 + 
 +===== Під'​єднання ​до програм =====
  
 Для того, щоб грати на MIDI-інструменті через якусь програму (наприклад,​ програмний синтезатор звуків),​ потрібно спочатку з'​єднати програмний ''​вихід''​ інструмента з програмнтим ''​входом''​ відповідної програми. Дізнатися,​ які програмні виходи зареєстровані в системі можна за допомогою команди Для того, щоб грати на MIDI-інструменті через якусь програму (наприклад,​ програмний синтезатор звуків),​ потрібно спочатку з'​єднати програмний ''​вихід''​ інструмента з програмнтим ''​входом''​ відповідної програми. Дізнатися,​ які програмні виходи зареєстровані в системі можна за допомогою команди
  
-  ​aconnect -i+<​code>​ 
 +aconnect -i 
 +client 20: 'USB Keystation 61es' [type=kernel,​card=1] 
 +    0 'USB Keystation 61es MIDI 1' 
 +</​code>​
  
 програмні входи: програмні входи:
  
-  ​aconnect -o+<​code>​ 
 +aconnect -o 
 +client 20: 'USB Keystation 61es' [type=kernel,​card=1] 
 +    0 'USB Keystation 61es MIDI 1' 
 +client 128: 'FLUID Synth (6351)'​ [type=user,​pid=6351] 
 +    0 'Synth input port (6351:​0)'​ 
 +</​code>​
  
-FIXME+В наведеному прикладі бачимо,​ що в системі зареєстровано один програмний "​вихід"​ -- це вихід MIDI-інструмента "​Keystation 61es", а також два програмні "​входи":​ інструмент "​Keystation 61es" та програма FluidSynth. В цих списках будуть показані усі програмні входи та виходи усіх зареєстрованих інструментів та програм.  
 + 
 +Для того, щоб програма FluidSynth "​слухала"​ MIDI-сигнали на своєму програмному вході, її потрібно запустити аналогічно до того, як це [[alsa-midi#​fluidsynth|робилося раніше]],​ але не вказуючи ''​.midi''​-файл:​ 
 + 
 +  fluidsynth -a alsa SoundFont-file.sf2 
 + 
 +Щойно ми знайшли потрібні нам "​входи"​ та "​виходи",​ ми можемо з'​єднати їх за допомогою команди 
 + 
 +  aconnect 20:0 128:0 
 + 
 +Якщо з'​єднання встановлено,​ ми побачимо його у списку наявних з'​єднань:​ 
 + 
 +<​code>​ 
 +$ aconnect -l 
 +client 20: 'USB Keystation 61es' [type=kernel,​card=1] 
 +    0 'USB Keystation 61es MIDI 1' 
 + Connecting To: 128:0 
 +client 128: 'FLUID Synth (7923)'​ [type=user,​pid=7923] 
 +    0 'Synth input port (7923:​0)'​ 
 + Connected From: 20:0 
 +</​code>​ 
 + 
 +Написи "''​Connecting To''"​ та "''​Connected From''"​ свідчать про те, що з'​єднання встановлено. Тепер MIDI-сигнали,​ що їх генерує MIDI-інструмент "​Keystation 61es", потраплятимуть на вхід програми FluidSynth, і вона генеруватиме звуки. 
 + 
 + 
 +====== Затримка звуку ====== 
 + 
 +Для того, щоб затримка між MIDI-подіями та появою звуку була якомога меншою,​ потрібно зменшити параметр ''​period_size''​ в налаштуваннях ALSA. Це можна зробити у файлі ''​[[alsa#​воспроизведение|.asoundrc]]''​. Наприклад,​ програма FluidSynth під час запуску запитує в системи значення ''​period_size 64''​. Це значення можна використати як орієнтовне. 
 + 
 +Часто трапляється,​ що за дуже малої довжини періоду з'​являються тріск та клацання. Тоді можна збільшити параметр ''​periods'',​ наприклад,​ до значення 1024.
  
  
Рядок 61: Рядок 148:
 http://​wiki.allegro.cc/​index.php?​title=Using_TiMidity%2B%2B_with_ALSA_raw_MIDI http://​wiki.allegro.cc/​index.php?​title=Using_TiMidity%2B%2B_with_ALSA_raw_MIDI
  
-====== ​Налаштування ​ALSA ======+[[http://​www.fluidsynth.org/​ | Офіційний сайт FluidSynth]] 
 + 
 +=== Інші програми,​ що працюють з MIDI === 
 + 
 +[[https://​qsynth.sourceforge.io/​ | QSynth]] -- просто графічний інтерфейс до FluidSynth. 
 + 
 +[[https://​lmms.io/​ | LMMS]] -- програма з класу так званих "​DAW"​ -- **D**igital **A**udio **W**orkstation (цифрова аудіостанція) 
 + 
 +[[https://​ardour.org/​ | Ardour]] -- також DAW. 
 + 
 +[[http://​midieditor.sourceforge.net/​ | MidiEditor]] -- Графічна програма для запису,​ редагування ​та програвання MIDI-файлів 
 + 
 +[[http://​www.muse-sequencer.org/​ | MusE]] -- MIDI/​Аудіо-секвенсор з можливостями запису та редагування 
 + 
 +[[http://​www.swamiproject.org/​ | Swami]] -- редактор звуків музичних інструментів 
 + 
 +[[http://​www.denemo.org/​ | Denemo]] -- Нотний редактор 
 + 
 +[[https://​musescore.org/​ | ]] -- Нотний редактор 
 + 
 + 
 + 
 + 
 + 
  
-Для того, щоб затримка між MIDI-подіями та появою звуку була якомога меншою,​ потрібно зменшити параметр ''​period_size''​ в налаштуваннях ALSA. Це можна зробити у файлі ''​[[alsa#​воспроизведение|.asoundrc]]''​. 
  
alsa-midi.txt · В останнє змінено: 2017/06/27 11:04 by wombat