Виртуальная MIDI Клавиатура-пианино

VMPK — это генератор и получатель событий MIDI

VMPK 0.3.0

VMPK 0.3.0

Введение

Виртуальная MIDI Клавиатура-Пианино — это генератор и приёмник событий MIDI. Программа не производит никакого звука сама по себе, но может быть использована для управления MIDI синтезатором (аппаратным, программным или внешним). Вы можете использовать клавиатуру компьютера, чтобы проигрывать MIDI ноты, и также мышь. Вы можете использовать Виртуальную MIDI Пианино Клавиатуру, чтобы отображать проигранные MIDI ноты из другого инструмента или проигрывателя MIDI файлов. Чтобы сделать это, соедините порт MIDI со входным портом VMPK.

Гимнопедия №1, Э. Сати (1866–1925), исполняется с помощью MuseScore и VMPK на Linux

VMPK была протестирована на Linux, Windows и Mac OSX, но, возможно, вы сможете собрать её и на других системах. Если вы сделаете это, напишите автору письмо.

Virtual Keyboard (vkeybd), написанная Takashi Iway, была вдохновителем для написания этого приложения. Это замечательная программа, хорошо служившая нам в течение многих лет. Спасибо!

VMPK использует современную графическую библиотеку: Qt5, превосходную по своим возможностям и функциональности. Drumstick RT предоставляет возможности ввода/вывода MIDI. Обе библиотеки свободные и платформонезависимые, доступны для Linux, Windows и Mac OSX.

Алфавитно-цифровые привязки клавиш могут быть настроены в самой программе, c использованием графического интерфейса, и настройки хранятся в файлах XML. Сделаны некоторые схемы привязок для испанских, немецких и французских клавиатур, переведённые из тех, что были предоставлены VKeybd.

VMPK может посылать программные изменения и регулировки на MIDI синтезатор. Описания для различных стандартов и устройств могут быть предоставлены, как .INS файлы, в формате, используемом QTractor и TSE3. Он был разработан Cakewalk и также используется в Sonar.

Эта программа находится в очень ранней стадии разработки. Чтобы узнать о нереализованных возможностях, смотрите список TODO. Пожалуйста, пишите автору, если у вас возникают вопросы, если вы встретите ошибку или хотите предложить улучшение. Вы можете использовать трекер на странице проекта на SourceForge.

Copyright (C) 2008-2023, Pedro Lopez-Cabanillas <plcl AT users.sourceforge.net> и другие.

Виртуальная MIDI Клавиатура-Пианино ‒ это свободное программное обеспечение, распространяющееся по лицензии GPL v3.

VMPK в Linux VMPK в Mac OSX VMPK в Windows Большая VMPK Большая VMPK

Галерея снимков экрана

Начало работы

Принципы MIDI

MIDI — это индустриальный стандарт соединения музыкальных инструментов. Он основан на пересылке действий, производимых музыкантом, играющим на музыкальном инструменте, на другой инструмент. Музыкальные инструменты, оснащённые MIDI интерфейсами, обычно имеют два DIN разъёма, обозначенные MIDI IN и MIDI OUT. Иногда встречается третий разъём, обозначенный MIDI THRU. Чтобы соединить два MIDI инструмента, нужно соединить MIDI кабелем разъём MIDI IN инструмента, посылающего события, и MIDI IN принимающего. Вы можете найти больше информации, а также обучения, как это по всему Интернету.

Для компьютеров также существуют аппаратные MIDI интерфейсы с MIDI IN и OUT портами, к которым вы можете подключать MIDI кабели, чтобы соединить комьютер с внешними MIDI инструментами. Если аппаратный интерфейс не нужен, компьютер может использовать программное обеспечение MIDI. Пример тому VMPK, которая предоставляет MIDI IN и OUT порты. Вы можете подключать к портам VMPK виртуальные MIDI кабели, чтобы соединить программу с другими программами или с физическими портами MIDI интерфейса компьютера. Больше деталей об этом будет написано позже. Скорее всего вы захотите соединить MIDI выход VMPK со входом какого-нибудь синтезатора, который переводит MIDI в звук. Другим примером для соединения может быть MIDI монитор, который переводит события MIDI в читаемый текст. Это поможет вам понять, что за информация посылается, используя протокол MIDI. В Linux вы можете попробовать KMidimon, а в Windows — MIDIOX.

VMPK не производит никакого звука сама по себе. Вам потребуется программный синтезатор MIDI, чтобы услышать проигрываемые ноты. Я советую попробовать QSynth, графическую оболочку для Fluidsynth. В Windows также можно использовать «Microsoft GS Wavetable SW Synth», который идёт в комплекте со всеми версиями Windows, или лучшую альтернативу, например CoolSoft Virtual MIDI Synth. Конечно, использование внешнего MIDI синтезатора будет даже лучшим подходом.

Привязки клавиш и описания инструментов

VMPK может помочь вам изменить звуки в вашем MIDI синтезаторе, но только если вы сначала предоставите описание для звуков синтезатора. Описания ‒ это текстовые файлы с расширением .INS, в том же формате, что используют Qtractor (Linux) и Sonar (Windows).

Когда вы запускаете VMPK в первый раз, вам нужно открыть диалоговое окно Параметры и выбрать файл описаний, а затем выбрать название инструмента из тех, что предоставляет файл описаний. Вы можете найти такой файл в директории с данными VMPK (обычно «/usr/share/vmpk» в Linux, и «C:\Program Files\VMPK» в Windows). Он называется «gmgsxg.ins» и содержит описания для стандартов General MIDI, Roland GS и Yamaha XG. У этого файла очень простой формат, и вы можете использовать текстовый редактор, чтобы просмотреть, изменить его и создать новый. Вы можете найти библиотеку описаний инструментов на ftp-сервере cakewalk.

Начиная с выпуска 0.2.5 вы также можете импортировать файлы Sound Font (в форматах .SF2 или DLS), как описания инструментов, используя диалог, доступный через меню Файл→Импортировать SoundFont.

Другая настройка, которую вы возможно захотите совершить ‒ это привязки клавиш. Раскладка по умолчанию охватывает около двух с половиной октав для QWERTY клавиатуры, но в директории с данными находятся ещё несколько описаний привязок, адаптированных для других международных раскладок. Вы даже можете задать собственные схемы привязки, используя диалоговое окно, доступное через меню Правка→Привязки клавиш. Также есть опции для загрузки и сохранения схем привязок, как XML файлов. Последняя загруженная схема привязок будет восстановлена при следующем запуске VMPK. На самом деле, все ваши параметры, выбранный банк MIDI и программа, и значения регуляторов будут сохранены при выходе и восстановлены, когда вы в следующий раз запустите VMPK.

Соединения MIDI и виртуальные MIDI кабели

В Windows, VMPK автоматически соединяется с выходом MIDI по умолчанию, которым обычно является «Microsoft GS Wavetable Synth», идущий в комплекте со всеми версия ми Windows. Этот синтезатор MIDI производит звук очень низкого качества и страдает болльшими задержками. Лучшей (и свободной) альтернативой является CoolSoft Virtual MIDI Synth.

Чтобы соединить два аппаратных MIDI устройства, вам нужны физические MIDI кабели. Чтобы соединить MIDI программы, вам нужны виртуальные MIDI кабели. В Windows вы можете использовать такие MIDI кабели, как MIDI Yoke, Maple, LoopBe1, или loopMIDI.

В процессе установки MIDI Yoke будут установлены драйвер и апплет панели управления, в котором можно изменять доступное количество MIDI портов (вам потребуется перезагрузить компьютер после изменения этой установки). MIDI Yoke работает, посылая каждое событие MIDI, записанное на OUT порт, на соответствующий IN порт. Например, VMPK можно соединить с выходом порта 1, а другая программа, к примеру QSynth, может считывать события с порта 1.

Используя MIDIOX, можно добавить больше маршрутов между портами MIDI Yoke и другими системными MIDI портами. Эта программа также предоставляет много интересных функций, например проигрыватель MIDI файлов. Вы можете слушать песни, проигрываемые MIDI Synth и в то же время видеть проигрываемые ноты (только один канал) в VMPK. Чтобы сделать это, вам нужно в окне «Маршруты» в MIDIOX соединить входной порт 1 с портом Window Synth. Также настройте порт MIDI проигрывателя, чтобы он посылал события на MIDI Yoke 1. И настройте входной порт VMPK, чтобы читать из MIDI Yoke 1. Проигрыватель будет посылать события на выход 1, который будет перенаправлять их на входной порт 1 и порт Synth одновременно.

В Linux виртуальные кабели предоставляются секвенсером ALSA. Порты создаются динамически, когда вы запускаете программу, так что их количество не фиксировано, как в MIDI Yoke. Утилита командной строки «aconnect» позволяет соединять и разъединять виртуальные MIDI кабели между любыми портами, будь то аппаратные интерфейсы или приложения. Есть хорошая графическая утилита, делающая то же самое ‒ QJackCtl. Главное назначение этой программы ‒ управление службой Jack (запуск, остановка и мониторинг состояния). Jack предоставляет виртуальные аудио кабели, чтобы соединять порты аудио карт с аудио программами, подобно тому, как это происходит с виртуальными MIDI кабелями, но для цифровых аудио данных.

qjackctl connections window

Соединения QJackCtl в Linux

Часто задаваемые вопросы

Как отобразить 88 клавиш?

Начиная с версии VMPK 0.6.0 вы можете настроить точное количество клавиш в диалоге настроек.

Нет звука

VMPK не производит никакого звука сама по себе. Вам необходим MIDI синтезатор.

Некоторые клавиши молчат

Когда вы выбираете канал 10 на стандартном MIDI синтезаторе, он играет звуки перкуссии, назначенные на многие клавиши, но не на все. На мелодичных каналах (не на 10 канале) вы можете выбирать патчи с ограниченным рядом нот. Это известно в музыке, как Тесситура.

Названия патчей не совпадают с реальными звуками

Вам нужно предоставить .INS файл, в точности описывающий набор звуков вашего синтезатора или SoundFont. Включённый в программу файл (gmgsxg.ins) содержит только описания для стандартных GM, GS и XG инструментов. Если ваш MIDI синтезатор не совпадает ни с одним из них, вам нужно достать другой .INS файл либо создать его самостоятельно.

Какой синтаксис у файлов Описаний Инструментов (.INS)?

Одно из описаний формата INS можно найти здесь.

Могу ли я перевести мои Описания Инструментов для vkeybd в .INS файл?

Конечно. Используйте сценарий AWK «txt2ins.awk». Вы можете даже использовать утилиту sftovkb из vkeybd, чтобы создать .INS файл из любого SF2 SoundFont, но функция импорта названий инструментов из файлов SF2 и DLS есть и в VMPK.

$ sftovkb SF2NAME.sf2 | sort -n -k1,1 -k2,2 > SF2NAME.txt
$ awk -f txt2ins.awk SF2NAME.txt > SF2NAME.ins

Вы можете найти сценарий AWK «txt2ins.awk» в директории с данными VMPK.

Загрузка

Вы можете найти последнюю версию исходных кодов, пакетов для Windows и Mac OSX на сайте проекта SourceForge.

Download Virtual MIDI Piano Keyboard
Download Virtual MIDI Piano Keyboard

Download on Flathub

Если в распространяете пакеты VMPK для какого-нибудь дистрибутива, пожалуйста, пришлите мне email, и я добавлю ссылку на ваш сайт здесь.

Установка из исходных кодов

Скачайте исходники с https://sourceforge.net/projects/vmpk/files. Распакуйте исходники в вашу домашнюю директорию, и перейдите в распакованную директорию.

$ cd vmpk-x.y.z

Вы можете выбирать между сборочными системами CMake и Qmake, но qmake предусматривается только для тестирования и разработки.

$ cmake .
или
$ ccmake .
или
$ qmake

После этого скомпилируйте программу:

$ make

Если программа успешно скомпилировалась, вы можете установить её:

$ sudo make install

Требования

Чтобы собрать и использовать VMPK, вам понадобится Qt версии 5.1 или новее. (установите пакет -devel для вашей системы или загрузите open source версию с сайта qt.io

На всех платформах требуется Drumstick RT. Эта библиотека использует секвенсор ALSA в Linux, WinMM в Windows и CoreMIDI в Mac OSX, то есть системы MIDI, родные для каждой из поддерживаемых платформ.

Система сборки основана на CMake.

Вам также потребуется компилятор GCC C++. MinGW — это его Windows порт.

Опционально, вы можете собрать установочную программу Windows, используя NSIS.

Замечания для пользователей Windows

Чтобы скомпилировать исходники в Windows, вам потребуется скачать архив в формате .bz2 или .gz и распаковать его, используя любую программу, которая поддерживает этот формат, например 7-Zip.

Чтобы сконфигурировать исходники, вам потребуется qmake (из Qt5) или CMake. Вам необходимо установить переменную среды PATH, чтобы она включала директории с исполняемыми файлами Qt5, MinGW и CMake. Программа CMakeSetup.exe — это графическая версия CMake для Windows.

Некоторые советы по использованию программы в Windows можно узнать в разделе соединения MIDI.

Замечания для пользователей Mac OSX

Вы можете найти прекомпилированный пакет приложения, включающий библиотеки Qt5, на странице загрузок проекта. Если вы предпочитаете устанавливать из исходников, вы можете использовать CMake или Qmake, чтобы собрать пакет приложения, скомпонованный с установленными системными библиотеками. Вы можете использовать как Qt5 от qt.io, так и пакет, распространяемый Homebrew.

Система сборки сконфигурирована, чтобы производить универсальный исполняемый файл (x86+ppc) в пакете приложений. Вам потребуются инструменты разработчика Apple, а так же Qt5.

Чтобы скомпилировать VMPK, используя файлы сборки Makefile, сгенерированные qmake:

$ qmake vmpk.pro -spec macx-g++
$ make
опционально:
$ macdeployqt build/vmpk.app

Чтобы скомпилировать, используя файлы сборки Makefile, сгенерированные CMake:

$ cmake -G "Unix Makefiles" .
$ make

Чтобы создать файлы проекта Xcode:

$ qmake vmpk.pro -spec macx-xcode
или
$ cmake -G Xcode .

Если вам нужно что-нибудь, чтобы производить шум, возможно вы захотите взглянуть на SimpleSynth, FluidSynth (доступен с Fink). Для маршрутизации MIDI, также есть MIDI Patchbay.

Замечания для упаковщиков и продвинутых пользователей

Вы можете попросить компилятор выполнять некоторую оптимизацию во время сборки программы. Есть два пути сделать это: во-первых, используя предопределённый тип сборки.

$ cmake . -DCMAKE_BUILD_TYPE=Release

Тип CMake «Release» использует флаги компилятора: «-O3 -DNDEBUG». Другие предопределённые типы сборки, это «Debug», «RelWithDebInfo», и «MinSizeRel». Второй путь, это выбрать флаги компилятора самостоятельно.

$ export CXXFLAGS="-O2 -march=native -mtune=native -DNDEBUG"
$ cmake .

Вам следует подобрать лучшие CXXFLAGS для вашей собственной системы.

Если вы хотите установить программу в иное место, чем заданное по умолчанию (/usr/local), используйте следующую опцию CMake:

$ cmake . -DCMAKE_INSTALL_PREFIX=/usr

Благодарности

В дополнение к вышеупомянутым инструментам, VMPK использует работы из следующих open source проектов.

Огромное вам спасибо!

VMPK logo. Drawing by Theresa Knott

Доступные языки


Содержание



You can support Virtual MIDI Piano Keyboard by adding it to your stack at Ohloh


Ссылки проекта


Softpedia
Software Informer Editor's pick award

Связанные приложения (кроссплатформенные)


Связанные приложения для Linux


Связанные приложения для Windows


Связанные приложения для Mac OSX


Загрузите виртуальную MIDI клавиатуру-пианино с SourceForge.net. Быстрые, безопасные и свободные загрузки Open Source программ

Хостинг предоставлен SourceForge.net


лицензия GPL v3