|
|||||||
Консольные программы для просмотра и управления MIDI в Linux
Время создания: 21.09.2024 17:35
Автор: Xintrea
Текстовые метки: linux, midi, консоль, команда, программа, просмотр, событие
Раздел: Компьютер - Linux - Звук и аудио - MIDI
Запись: xintrea/mytetra_syncro/master/base/1726929331wc7709sz76/text.html на raw.github.com
|
|||||||
|
|||||||
Просмотр MIDI-сообщений через aseqdump В Linux просматривать MIDI-события в консоли можно с помощью команды aseqdump, которая входит в пакет alsa-tools. При старте программа ожидает MIDI-события, завершить ее можно по Ctrl+C: Waiting for data at port 128:0. Press Ctrl+C to end. Source Event Ch Data Чтобы узнать, какие порты можно дампить, используется команда aseqdump -l. Перетрансляция MIDI-событий через amidimap Для перетрансляции MIDI-событий можно использовать программу amidimap. Эта программа на основе файла с правилами перетранслирует MIDI-события. Используется для преобразования MIDI-потока, например для перемаппирования номеров инструментов в событиях выбора инструмента в канале. Другими словами, если, к примеру, есть инструмент с картой звуков, отличных от General MIDI, можно создать собственную карту инструментов. При выборе GeneralMIDI инструмента, данная утилита перемаппирует этот выбор на выбор того инструмента, который похоже звучит (согласно карте ремаппинга) на подключенном оборудовании. Утилиту amidimap можно взять с сайта автора: http://cowlark.com/amidimap/index.html Ее придется собирать самостоятельно, ибо не во всех дистрибутивах она есть (в Debian ее нет). Утилита написана на языке Си. Для сборки бинарника достаточно дать команду make. Чтение и запись MIDI-событий через amidi Для библиотеки ALSA в пакете alsa-utils (не путать с alsa-tools) имеется утилита, которая умеет работать с MIDI-сообщениями в сыром виде. Через опцию -p задается MIDI-порт, с которым надо работать. Опция -d позволяет увидеть дамп событий, приходящих на заданный порт. Вот пример команды: amidi -p hw:1,2 -d Опция -l позволяет увидеть список возможных MIDI-портов. Опцией -S можно отправить MIDI-событие, записанное в HEX-виде: amidi -S 'F0 43 10 4C 00 00 7E 00 F7' Опции -s и -r позволяют отправить MIDI-события из файла (send) или записать события в файл (recive) соответственно. Управление MIDI-событиями через специальный шелл midish Утилита midish (сайт - https://midish.org/, в Debian Linux есть в стандартном репозитарии) является специфическим программным обеспечением, представляя собой специализированный шелл, в котором можно выполнять специализированные MIDI-команды. Вот что пишется про него на официальном сайте: Midish - это MIDI-секвенсор (фильтр) с открытым исходным кодом для Unix-подобных операционных систем OpenBSD и Linux. Реализован как простой интерпретатор командной строки (наподобие shell), является легким, быстрым и надежным для работы в режиме реального времени. Важные функции:
dnew 0 "28: 0" wo # закрепить порт за устройством с номером 0 dnew 1 "32: 0" ro # закрепить порт MIDI-клавиатуры за устройством с номером 1 Пример создания фильтра с имененм "piano": [0000:00]> fnew piano # создать фильтр "пианино" [0000:00]> fmap {any {1 0}} {any {0 5}} # dev=1,ch=0 -> dev=0,ch= 5 Какой командой заканчивается создание фильтра, в документации не сказано. Похоже, что определение фильтра заканчивается там, где появляется команда, отличная от fmap. Проигрывание MIDI-команд из файла: [0000:00]> load "sample.sng" # load the file [0000:00]> p # start playback [0004:02]> s # stop playback Полная документация на все команды midish есть на официальном сатйе: https://midish.org/manual.html. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|