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

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


alsa-midi

Розбіжності

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

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

Наступна ревізія
Попередня ревізія
alsa-midi [2013/03/19 01:20] – створено wombatalsa-midi [2017/06/27 08:04] (поточний) – [Посилання] Rosegarden, PianoBooster, links wombat
Рядок 1: Рядок 1:
 +====== MIDI ======
 +
 +====== Програвання MIDI-файлів ======
 +
 +===== FluidSynth =====
 +
 +  fluidsynth -a alsa SoundFont-file.sf2 MIDI-file.midi
 +
 +
 +===== TiMidity++ =====
 +
 +  timidity MIDI-file.midi
 +
 +
 +
 +====== MIDI-інструменти ======
 +
 +===== Під'єднання до комп'ютера =====
 +
 +==== MIDI-порт ====
 +
 +FIXME
 +
 +==== USB-порт ====
 +
 +Потрібно увімкнути підтримку USB MIDI пристроїв у ядрі Linux:
 +
 +<code>
 +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])
 +</code>
 +
 +Якщо обрати цей параметр у режимі модуля, то назва модуля буде "''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=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
 +</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:  Note on                 0, note 48, velocity 47
 + 20:  Note off                0, note 48
 + 20:  Note on                 0, note 50, velocity 63
 + 20:  Note off                0, note 50
 + 20:  Note on                 0, note 52, velocity 76
 + 20:  Note off                0, note 52
 + 20:  Note on                 0, note 53, velocity 51
 + 20:  Note off                0, note 53
 +</code>
 +
 +Тобто бачимо, що програма отримує від інструмента сигнали про натискання клавіш.
 +
 +===== Під'єднання до програм =====
 +
 +Для того, щоб грати на MIDI-інструменті через якусь програму (наприклад, програмний синтезатор звуків), потрібно спочатку з'єднати програмний ''вихід'' інструмента з програмнтим ''входом'' відповідної програми. Дізнатися, які програмні виходи зареєстровані в системі можна за допомогою команди
 +
 +<code>
 +$ aconnect -i
 +client 20: 'USB Keystation 61es' [type=kernel,card=1]
 +    0 'USB Keystation 61es MIDI 1'
 +</code>
 +
 +програмні входи:
 +
 +<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>
 +
 +В наведеному прикладі бачимо, що в системі зареєстровано один програмний "вихід" -- це вихід 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.
 +
 +
 +====== Посилання ======
 +
 http://alsa.opensrc.org/PlayingMIDIFiles#Using_a_wavetable_synth_on_your_soundcard http://alsa.opensrc.org/PlayingMIDIFiles#Using_a_wavetable_synth_on_your_soundcard
  
Рядок 4: Рядок 147:
  
 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
 +
 +[[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]] -- Нотний редактор
 +
 +
 +
 +
 +
 +
  
  
alsa-midi.1363656020.txt.bz2 · Востаннє змінено: (зовнішнє редагування)