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

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


alsa-midi

Розбіжності

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

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

Both sides previous revision Попередня ревізія
Наступна ревізія
Попередня ревізія
alsa-midi [2017/06/25 23:59]
wombat MIDI-інструменти
alsa-midi [2017/06/27 11:04] (поточний)
wombat [Посилання] Rosegarden, PianoBooster, links
Рядок 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]] -- Синтезатор звуків музичних інструментів на основі "​звукових шрифтів"​ (SoundFont) 
 + 
 +[[https://​amsynth.github.io/​ | amsynth]] -- Синтезатор звуків 
 + 
 +=== Інші програми,​ що працюють з MIDI === 
 + 
 +[[https://​qsynth.sourceforge.io/​ | QSynth]] -- просто графічний інтерфейс до FluidSynth. 
 + 
 +[[https://​lmms.io/​ | LMMS]] -- програма з класу так званих "​DAW"​ -- **D**igital **A**udio **W**orkstation (цифрова аудіостанція) 
 + 
 +[[https://​ardour.org/​ | Ardour]] -- також DAW. 
 + 
 +[[http://​rosegardenmusic.com/​ | Rosegarden]] -- Програма для створення та редагування ​музики 
 + 
 +[[http://​midieditor.sourceforge.net/​ | MidiEditor]] -- Графічна програма для запису,​ редагування та програвання MIDI-файлів 
 + 
 +[[http://​www.muse-sequencer.org/​ | MusE]] -- MIDI/​Аудіо-секвенсор з можливостями запису та редагування 
 + 
 +[[http://​www.swamiproject.org/​ | Swami]] -- редактор звуків музичних інструментів 
 + 
 +[[http://​pianobooster.sourceforge.net/​ | PianoBooster]] -- Програма для акомпонування та навчанні грі на фортепіано 
 + 
 +[[http://​www.denemo.org/​ | Denemo]] -- Нотний редактор 
 + 
 +[[https://​musescore.org/​ | MuseScore]] -- Нотний редактор 
 + 
 + 
 + 
 + 
 + 
  
-Для того, щоб затримка між MIDI-подіями та появою звуку була якомога меншою,​ потрібно зменшити параметр ''​period_size''​ в налаштуваннях ALSA. Це можна зробити у файлі ''​[[alsa#​воспроизведение|.asoundrc]]''​. 
  
alsa-midi.1498424385.txt.bz2 · В останнє змінено: 2017/06/25 23:59 by wombat