Привет, Хабр! На связи Кирилл из МТС Диджитал. На днях я решил прогуляться по воскресной барахолке и наткнулся на продавца, который выложил на прилавок практически новый MIDI-контроллер Akai MPK Mini mk3. Я и раньше слышал про этот девайс, но мне все как-то не доводилось его купить. Естественно, забрал. Вернулся домой, подключил к Mac Mini M2 и на несколько часов выпал из реальности, создавая трек в стиле Sovietwave.

И тут мне в голову пришла мысль: а можно ли использовать такой контроллер для других операций? Например, вводить через него текст или забиндить часто используемые сочетания клавиш. На мой запрос Гугл выдал целую пачку интересных ссылок, одна из которых обещала превратить мою MIDI-клавиатуру в печатную машинку. В посте расскажу о результатах этого эксперимента.

Трансформация в печатную машинку

Akai MPK Mini mk3 в шикарном, инверсном черно-белом цвете
Akai MPK Mini mk3 в шикарном, инверсном черно-белом цвете

Первая мысль была такая: 25 клавиш и 8 драм-пэдов — это, наверное, маловато. С другой стороны, обходятся же стенографистки аппаратами всего с десятью клавишами. Быстрое гугление показало, что некоторые стенографические машины используют… та-дам… рояльную клавиатуру:

Стенографическая машина Антонио Микела Зукко (источник изображения)
Стенографическая машина Антонио Микела Зукко (источник изображения)

Текст на таких машинах набирается не отдельными символами, а аккордами, и это позволяет быстро записывать устную речь. Правда, для этого нужен специально обученный человек: он выбирает конкретные аккорды, используя набор правил сокращения слов. Конечно, сейчас у большинства стенографических машин другой тип клавиатуры — например, такой:

Раскладка англоязычной стенографической машинки. Источник изображения
Раскладка англоязычной стенографической машинки. Источник изображения

Рояльная клавиатура тоже вполне подойдет, так что дело за малым — найти соответствующий софт. Долго искать не пришлось: по первой же ссылке я наткнулся на сайт проекта PianoText, разработанного в Институте информатики Макса Планка.

Для запуска нужно скачать и установить актуальную версию Java Runtime Environment. Потом дважды щелкнуть на файл KeystrokeSimulator_WEB.jar. А если вы используете Linux, перейти в директорию PianoText и ввести команду:

$ java -jar KeystrokeSimulator_WEB.jar

На старте определяются все подключенные MIDI-устройства, и приложение предлагает выбрать нужное:

Дальше в трее появится иконка приложения, а вы сможете попробовать вести текст с MIDI-клавиатуры. Увы, подсказок тут нет, так что придется воспользоваться специальной PDF с подсказками символов. 

Сразу понятно, что стандартная раскладка рассчитана на большие MIDI-клавиатуры, минимум с шестью октавами и подключенной педалью сустейна, которая будет играть роль пробела. Хорошо, что в приложении предусмотрен XML-файл для настройки: он позволяет создать конфигурацию, которую вы хотите. Ниже небольшой фрагмент конфига:

<mapping> <!-- nice chords left: D-FIS, GIS-C, A-C-E -->

    <letter name='SPACE' >
        <note name='SPACE' octave='-1'  />      
    </letter>

    <letter name='a' >
        <note name='d' octave='3'  />
        <note name='g' octave='4'  />
        <note name='ais' octave='5'  />
    </letter>
    <letter name='b' >
        <note name='e' octave='4'  />
    </letter>

Традиционное хабраприветствие с дефолтным маппингом будет выглядеть примерно так:

Кроме единичных символов, в маппинге есть часто используемые сочетания букв и даже целые слова, такие как where, have, use. С одной стороны, штука полезная, но требующая огромной доработки напильником. А еще нужно все время держать подсказку перед глазами. Но если вы чувствуете силу вступить на путь джедая, на сайте автора доступно отдельное приложение для тренировки. А мы пока посмотрим, какие есть альтернативы.

Что там с MidiKey2Key

PianoText со своей идеей превратить набор текста в аналог музыкальной пьесы заслуживает внимания. Но для реальных задач он будет полезен только тем, кто владеет нотной грамотой и знает, как быстро строить аккорды. Так что давайте посмотрим на более простое и удобное приложение — MidiKey2Key. Оно полностью бесплатное, и тут тоже можно превратить нажатие клавиши или прокручивание энкодера MIDI-контроллера в нажатие клавиш (или их сочетаний) обычной клавиатуры.

Самый важный элемент этого приложения — лог-файл, который фиксирует нажатие каждой клавиши или энкодера. Именно он поможет создать собственную схему привязки любого MIDI-контроллера к эмуляции нажатий клавиш обычной клавиатуры:

Тут уже чувствуется, что приложение сделано с упором на программистов, а не музыкантов. Двойным щелчком выбираем зафиксированное в логе нажатие и создаем привязку:

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

Зачем это все

Окей, теперь у нас есть софт, который позволяет достаточно быстро назначить MIDI-контроллеру эмуляцию нажатия любых клавиш или даже запуск приложений. Но какая от этого реальная польза? Например, эти возможности сразу оценят стримеры, ведущие прямых эфиров. При помощи MIDI-контроллера можно управлять приложением OBS и повесить на нажатие клавиш или драм-пэдов самые полезные функции. Если у вас несколько камер, можно организовать быстрое переключение между ними.

Если ваш контроллер, как и мой, оборудован цифровыми энкодерами, при их помощи можно регулировать громкость звука, изменять параметры съемки или вообще заменить виртуальные кнопки и крутилки реальными. Кстати, именно поэтому этот софт полюбился тем, кто обожает симуляторы поездов. Имея на руках даже бюджетный MIDI-контроллер, можно превратить его в пульт управления целым поездом.

То же самое справедливо и для множества других симуляторов — например, самолетов. Обычно во время подготовки самолета ко взлету пилоты задействуют множество элементов управления, которые в симуляторе приходится нажимать мышью. Тут же вы можете заменить часть виртуальных элементов на физические кнопки и крутилки MIDI-контроллера.

Для примера я попробовал задействовать MIDI-клавиатуру для управления транспортом в PUBG, и это отлично сработало! На драм-пэды я привязал положение игрока внутри транспортного средства. По умолчанию для выбора места используются сочетания клавиш Ctrl + 1/2/3/4/5/6, где водительское сиденье всегда номер 1, а остальные места зависят от типа транспорта. Первые же тесты показали, что это работает, если само управление перемещением тоже завязано на клавиши MIDI-контроллера. Иначе движение левой руки занимает непозволительно много времени.

Профессиональные игроки на этом месте наверняка начнут говорить, что это все фигня и проще переназначить стандартные сочетания клавиш на другие. Как мне кажется, это дело привычки. Использование MIDI-контроллера вполне имеет право на жизнь. 

Заглянув на YouTubе, можно найти еще более забавные варианты применения MIDI-клавиатуры. Например, если вам не хватает хардкора в играх жанра Soulslike, вот так можно получить ни с чем не сравнимые ощущения:

Вместо заключения

Признаюсь, я не ожидал, что MIDI-клавиатура окажется настолько универсальным гаджетом. Понятное дело, что тот же ввод текста на ней — удел людей, которые готовы потратить приличное количество времени на освоение техники стенографирования слов. Но вот привязка часто используемых сочетаний клавиш оказалась реально киллер-фичей. Для людей, которые редактируют тексты, даже банальный биндинг Ctrl +X / Ctrl+C / Ctrl + V может сильно ускорить работу.

Ну а если потратить время на разработку собственной схемы — например, часто используемых сочетаний клавиш текстового редактора — в какой-то момент может прийти мысль: «Как я раньше без этого жил?» К тому же MIDI-контроллеры достаточно разнообразны, их можно купить дешевле, чем те же программируемые POS-клавиатуры. Тот же Korg Nano Pad 2 на вторичном рынке можно взять за 1 500 рублей и превратить его в удобную программируемую клавиатуру.

Рассказывайте, а для чего вы пробовали использовать MIDI-клавиатуру? Жду вас в комментариях.

Комментарии (7)


  1. haharibo
    27.08.2024 08:52
    +1

    По сути MIDI это такой же сигнал для машины, как и получаемые с обычной клавиатуры. Даже в DAW при отсутствии MIDI-клавиатуры плагины получают сигнал от стандартной компьютерной клавы. Фишка MIDI-клавиатур по сути специфичная раскладка, доп.параметры типа велосити и имитация всяких механик.

    Вообще было бы интересно с нее вызывать какие-нибудь bash-скрипты или быстрый запуск программ. С До третьей октавы запускать воркфлоу по деплою - айти как по нотам))

    Правда есть минус, даже уменьшенные клавиатуры занимают место на рабочем столе как ноутбук.


  1. multiprogramm
    27.08.2024 08:52

    Я когда-то заморачивался с доп.клавишами, пытался вторую клаву подключить, но при этом перебиндить у неё клавиши для команд, но в итоге понял, что я даже мультимедийные клавиши на первичной клавиатуре не использую — так и забил. Но вполне себе могу представить сценарии, когда такое может быть очень удобно. Вообще, физические кнопки — это круто. Вроде бы ещё раньше для этого использовали кассовые клавиатуры (и там нужно было немного поразбираться с настройкой), а потом появились специальные стрим-деки, уже заточенные под это всё из коробки.

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


    1. Daddy_Cool
      27.08.2024 08:52
      +2

      Например, нотной грамоте — сыграть как написано.

      Выучить ноты - какой ноте в нотном тексте соответствует какая клавиша - это просто, ну... несколько часов.
      Длительности - концептуально тоже просто, ну надо считать доли.

      Или, например, тебе играют мини-мелодию, а ты на слух должен повторить,

      Это упражнения на развитие слуха - несколько другое..

      Умение играть - это в первую очередь координация рук/пальцев в плане перемещения по клавиатуре с соблюдением определенного ритма.

      https://muzzone.kz/top-5-prilozheniy-dlya-obucheniya-igre-na-fortepiano.html
      Вот здесь подборка программ для обучения.


    1. haharibo
      27.08.2024 08:52

      Можно установить полноценную DAW и подключить плагины такие как Native Instruments Kontakt, а к Kontakt уже загрузить библиотеки на свой вкус: от пианино разных моделей до рок-гитар. Но это скорее путь по сложнее.


      1. manfredima
        27.08.2024 08:52

        Это можно делать и без DAW, в режиме Standalone


        1. haharibo
          27.08.2024 08:52

          Да, точно. Забыл про такой режим.


  1. NaBarje
    27.08.2024 08:52
    +2

    В советском кино про шпионов, враг радировал шифровки с пианино.