Контакти

Як з клавіатури зробити міді клавіатури. Як зробити дешевий MIDI контролер на базі Arduino своїми руками. Невеликий лікнеп з міді-конролерів

Думаю, що ті, хто намагався працювати зі звуком на комп'ютері, напевно, чули про такі пристрої, як midi-контролери. Та й багато людей, далеких від створення музики мали можливість бачити артистів на виступах з різноманітними «крутилками» і «натималками» за нечувану ціну. Як же мати таку корисну штуку, не витративши ні копійки? Гідний варіант – це саморобна MIDI-клавіатура.

Невеликий лікнеп з міді-конролерів

Midi-контролер (від англійської абревіатури “MIDI” – позначення інтерфейсу, що використовується у програмах) – пристрій, що дозволяє розширити можливості комп'ютера щодо midi-комунікації.

Що дозволяють робити дані пристрої?

MIDI-контролери дозволяють взаємодіяти як із програмою створення та запису музики (секвенсором, трекером тощо), так і комутувати софт із зовнішніми апаратними модулями. Під останнім розуміються різного виду, пульти, механічні мікшери, тачпади.

Головна проблема даного класу «примочок», для музиканта-початківця полягає в їх високій ціні: середня вартість повноцінного нового клавішного MIDI-інструменту складає 7 тисяч. Сума, звичайно, смішна, якщо ви десь працюєте та непогано заробляєте. (Адже у Росії зарплата душу населення становить 28 тисяч, вважаючи робочим населенням немовлят і пенсіонерів).

Але якщо ви, наприклад, студент, то для вас такий цінник буде «кусаючим». Через цей аспект використання саморобної MIDI-клавіатури стає оптимальним вирішенням проблеми.

Що робити, щоб у вас з'явилася саморобна міді-клавіатура?

Почнемо з того, що на вашому комп'ютері має бути встановлений секвенсор. (Всі нюанси будуть розглянуті на прикладі секвенсора Fl Studio та програми-емулятора Vanilin MIDI Keyboard – однієї з найпопулярніших у своєму класі).

  1. Вам потрібно завантажити та встановити Vanilin MIDI Keyboard. Знайти програму можна на офіційному сайті.
  2. Припустимо, що ви вже встановили цю (або подібну) програму, тепер поверніться на робочий стіл - там має з'явитися ярлик. За допомогою цього ярлика запускаєте емулятор і заходьте до налаштувань.
  3. Якщо на комп'ютері стоїть стандартна звукова карта, вбудована в чіпсет, після кліку на пункт меню «Device» ви повинні побачити два підпункти: «Пристрій перепризначення MIDI» і «Програмний синтезатор звуковий». Клацніть на "Пристрій перепризначення MIDI".
  4. Згорніть програму. У правому нижньому кутку панелі завдань (десь поруч годинника) повинен з'явитися вже знайомий вам значок програми.
  5. Запустіть секвенсор. Виберіть меню опцій («Options») і клацніть на підпункт налаштувань MIDI («MIDI settings»)
  6. У рядку виходів MIDI (Output) виберіть «Пристрій перепризначення MIDI»

Після того, як переробите всі ці нехитрі дії, створіть інструмент і спробуйте натиснути на будь-яку клавіатуру. Якщо ви зробили все правильно і не встановили порожній (або м'ютований) інструмент, ви повинні почути звук.

Тепер у вас в руках справжній клавішний інструмент! Тепер ви зможете не тільки бачити та слухати звук, але й відчувати дотик до клавіш вашого власного фортепіано.

У дитинстві у мене було піаніно, таке справжнє, радянське, кілограм на 300. Мені подобалося на ньому бринькати, а після закінчення музичної школи навіть дещо грати. Піаніно – це класно, автентично, але зовсім не практично. А щоб зовсім прямий для душі, потрібна ще й барабанна установка, п'яток примочок до електрогітари, кларнет, ситар та семплові лупи…

Звичайно, зараз уже не потрібно з квартири робити гараж-студію на заначку у шість зарплат, достатньо встановити на ПК безкоштовний музичний редактор. Але незручно це все.

Клавіатура ПК зовсім не схожа на кнопковий інструмент, тут все не так. Понад те, навчання дитини це зовсім годиться. Здається вибору не залишається, як набувати синтезатора. Але, як і раніше, роздирають мене сумніви.

Адже синтезатор що собою являє? Великий пристрій, з музичною клавіатурою, який десь має займати пристойне місце. У яке вбудована акустика, адже я вже маю ресивер з колонками. У яке вбудований поганий ПК, адже я маю хороший ПК.

Виходить, що за 40 тисяч я купую те, що я вже маю в найкращій якості, за винятком лише клавіатури. Це просто якийсь максимум нераціональних витрат.

У пошуках окремої клавіатури я натрапив на такий клас пристроїв, як USB MIDI Keyboard.
Мені завжди здавалося, що MIDI це з галузі професійної музичної діяльності.
Але зараз усі музику роблять на ПК, у будь-якому зручному місці, а отже музикантам потрібні мобільні музичні клавіатури, які легко поміщаються в рюкзак.

У голові одразу склався план. Підключаємо MIDI-клавіатуру до домашнього медіацентру на базі Raspberry Pi 3, де крутиться програмний синтезатор, дозволяючи в будь-який час будь-якому, хто бажає виконати свій черговий шедевр. На таких MIDI-клавіатурах зазвичай є набір регуляторів та додаткових кнопок, які програмуються на різні ефекти або додаткові музичні інструменти. Виглядає та звучить це дуже круто!

Є пристрої більші і менші, є дорожчі і трохи дешевші. Я вибрав варіант приблизно за 5 тир. У нього дві октави, нормального розміру клавіші, кнопки для ударників, ручки налаштування, тобто все, про що може мріяти музикант-електронник-початківець.

Я не фахівець у створенні музики на ПК, тому було складно шукати шляхи реалізації свого задуму. Інформацію доводилося збирати по крихтах. Пазл поступово став складатися і вдалося зібрати працююче рішення, яким з вами і ділюся. Як не дивно, але в стандартному дистрибутиві Raspbian/Debian знайшлося все, що потрібно, навіть не довелося підключати зовнішні репозиторії.

Як секвенсер (додаток, що відтворює MIDI-файли) використовується fluidsynth.
MIDI-клавіатура одразу виявляється через ALSA і доступна для підключення до секвенсеру.
Для відтворення звуків різних інструментів використовуються відкриті бази семплів у форматі SoundFont2. Для початку встановимо це все.

Sudo -s apt-get update apt-get -y install alsa-utils fluid-soundfont-gm fluidsynth
Підключаємо MIDI-клавіатуру до Raspberry та запускаємо секвенсер у режимі сервера:

Fluidsynth -i -s -a alsa -g 3 /usr/share/sounds/sf2/FluidR3_GM.sf2
Виконуємо команду:

Aconnect -o
В результаті ми побачимо список доступних MIDI-клієнтів:

Client 14: "Midi Through" 0 "Midi Through Port-0" client 20: "VMini" 0 "VMini MIDI 1" 1 "VMini MIDI 2" client 128: "FLUID Synth (1628)" 0 "Synth input port (1628 :0)"
Тут нам важливо запам'ятати номери клієнтів клавіатури та секвенсера, щоб потім з'єднати їх командою:

Aconnect 20:0 128:0
Тепер у нас все готове до гри на Yamaha Piano (це дефолтний інструмент). Почитайте мануал по fluidsynth, там є багато цікавих команд, наприклад, щоб змінити інструмент на ударники або духові, задати величину реверберації чи хорусу.

Зробимо наш програмний синтезатор зручним. Щоб не з'єднувати вручну клавіатуру з секвенсером щоразу, напишемо простенький демон, який це робитиме при старті автоматично.

Cat > /etc/init.d/fluidsynth<< EOF #!/bin/bash ### BEGIN INIT INFO # Provides: fluidsynth # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Fluidsynth deamon to play via MIDI-keyboard ### END INIT INFO startDaemon() { sleep 30s && fluidsynth -i -s -a alsa -g 3 --load-config=/home/osmc/midi-router >/var/log/fluidsynth & sleep 60s && aconnect 20:0 128:0 & ) stopDaemon() ( pkill -9 fluidsynth &> /dev/null ) restartDaemon() ( stopDaemon startDaemon ) case "$1"a start ; stop) stopDaemon;; restart) restartDaemon;; status);; *) startDaemon esac exit 0 EOF
Реєструємо демон для автозапуску:

Chmod 755 /etc/init.d/fluidsynth update-rc.d fluidsynth defaults
Зверніть увагу, тепер при старті секвенсер передається конфігураційний файл (/home/osmc/midi-router), що містить команди, що перетворюють нашу клавіатуру на справжній синтезатор.

Тут річ у чому. Кожна клавіша та крутилка на клавіатурі посилає певні події зі своїм номером. Я так зрозумів тут особливих стандартів немає, тому кожен виробник творить що хоче. Наприклад, я хочу, щоб квадратні клавіші звучали ударними, інші клавіші звучали піаніно, ручки керували гучністю, реверберацією та хорусом.

Так ось, мені необхідно замепі коди подій від клавіатури на різні інструменти, а коди від ручок на коди, які розуміє секвенсер. У fluidsynth це робиться за допомогою router. Саме ці команди містяться в конфігураційному файлі.

Ось приклад мого файлу конфігурації, з коментарями того, що він робить.

Cat > /home/osmc/midi-router<< EOF # загружаем стандартные инструменты и ударники, найденные где-то на просторах Сети load /usr/share/sounds/sf2/FluidR3_GM.sf2 load /home/osmc/241-Drums.SF2 # связываем инструмент каждый со своим каналом select 1 2 128 0 select 2 1 0 0 # по умолчанию звук идет на канал 0 # перенаправляем события с квадратных клавиш на канал с ударными router_begin note router_chan 0 0 0 1 router_par1 36 48 1 0 router_end # события с остальных клавиш перенаправляем на канал с пианино router_begin note router_chan 0 0 0 2 router_par1 0 35 1 0 router_end router_begin note router_chan 0 0 0 2 router_par1 49 255 1 0 router_end # события с ручек мэпим на события, которые понимает секвенсер, # полный их список есть в документации на сайте fluidsynth router_begin cc router_chan 0 0 0 2 router_par1 14 14 0 98 router_end router_begin cc router_chan 0 0 0 2 router_par1 15 15 0 11 router_end router_begin cc router_chan 0 0 0 2 router_par1 16 16 0 91 router_end router_begin cc router_chan 0 0 0 2 router_par1 17 17 0 93 router_end # выключаем громкость на канале 0, # иначе при нажатии на клавишу # разные инструменты будут звучать одновременнно cc 0 7 0 EOF
Щоб дізнатися які коди генерує саме ваш пристрій, необхідно скористатися цією утилітою:

Aseqdump -p 20:0
Вона слухає та виводить на консоль події з MIDI-клавіатури. Натисніть кнопку або покрутіть ручку і ви побачите тип, канал та код події. Ви можете запрограмувати свою клавіатуру таким чином, як захочете, а не так, як це придумали інженери, які розробили конкретний синтезатор. За що велике спасибі розробникам fluidsynth, alsa, SoundFont2, Raspberry та V-Mini.

До речі, ця тема з DIY-синтезаторами знайшла відображення у кількох винаходах, рекомендую до вивчення.

Це проста схема MIDI клавіатури, призначеної для використання зі стандартною звуковою картою ПК з MIDI / Game портом. Клавіатура живиться безпосередньо від ігрового порту, немає потреби блоку живлення.

Схема Midi клавіатури MKC64 v1.54



Набір деталей


Мікросхеми: Контролер PIC16F84 або PIC16C84. Дешифратор 74LS138 або аналог К555ІД7.
Кварцовий резонатор: ZQ1 = 4 МГц.
Конденсатори: С1 = 47мФ; С2, С3 = 27пФ; C4 = 0.1мФ
Резистори: R1, R2, R4 = від 1 до 10 Ком; R3 = 270Ом для захисту виходу MIDI; R5 = 2k2
Діоди: D1-D64 = КД522 (Будь-який тип стандартних діодів)
Роз'єми: DB15

Прошивка


Якщо використовувати прошивку MKC1.4 без перемички jmp1, то почати клавіші з ноти ДО (C) з перемичкою з ноти ФА (F)
Якщо використовувати прошивку MKC1.54, то jmp1 виводиться програмна кнопка S1, яка дозволяє керувати деякими функціями
Для керування необхідно натиснути кнопку S1 і утримуючи її, натисніть одну з 16 лівих клавіш на клавіатурі.

Таблиця клавіш керування функціями:
1 Змінити MIDI канал -1 (1..16)
2 Змінити MIDI канал +1 (1..16)
3 Зниження октави -1 (1..11)
4 Підвищення октави +1 (1..11)
5 Запуск ноти -1
6 Запуск ноти +1
7 Зниження швидкості -1 (1..127)
8 Підвищення швидкості +1 (1..127)
9 All Notes On message Увімкнути
10 All Notes Off message Вимкнути
11 NoteOn (швидкість = 0)
12 NoteOff
13 MIDI Програма -1
14 MIDI Програма +1
15 MIDI банк -1
16 MIDI Банк +1

В основному стаття розрахована на гітарастів і іже з ними, оскільки мало кому необхідний ножний контролер, включив додаткову клаву, забиндив клавіші і вперед. Хоча може ось для діджеїв таке керування цілком доречне. Але найкраще воно підходить для Guitar Rig та TH1. Загалом сьогодні ми збиратимемо щось схоже на:

І так, для початку потрібно зібрати необхідні запчастини. Ось їх невеликий список:

Корпус. Перше і найголовніше, що потрібно, складно знайти підходяще. Я купив для цього діла чохол для кию.
- USB клавіатура, бажано не дуже давня, бо можливо розпаювання не підійде.
- Клавіші (ті, що я підібрав): PBS-16B (ФУТИ), SPA-101B4 (ДОПИ), PBS-15B push ON (ВКЛ). Усі без фіксації. Придбати можна в Чіп та Діпі.
- Провід. Багато одножильних. Я думаю для цього найкраще підійде кручена пара. 2х метрів за очі. Тільки розмотувати незручно.
- Ну і паяльник думаю майже у кожного знайдеться, хто вирішив збирати цей девайс.
- Інструменти для отворів в корпусі. Хто чим спроможний, можна хоч саморізом, а потім правити ножем, але знову ж таки думаю у всіх знайдеться дриль.

Ну що ж, почнемо. Перше, що необхідно зробити це намітити і просвердлити отвори в корпусі:

Тепер приступимо до шкідливішої частини виготовлення нашого футсвіча. Паяємо дроти відповідно до схеми, не забуваємо на вході з клави вішати розпізнавальні листки з номерами входів:

Повинно вийде щось на кшталт цього:

Зараз розпочнеться дуже ювелірний процес із паяння до контролера від УСБ клавіатури. Зауважу, якщо вам пощастило купити/знайти/відібрати клавіатуру з таким контролером, як на схемі, що прикріплена вище, то без паяльної станції не обійтися. Прикріпити до корпусу плату можна майже будь-якими підручними засобами, рідкі цвяхи, шурупи, суперклей, силікон, та й взагалі якщо штовхати сильно не будіть, то і так тримається, але залежить від корпусу, кручена пара щільно притискає плату.

Робимо косметичні покращення, хто захоче, припаює діод на корпус від NUB LOCK"а... Зробить отвір під провід і перетягне USB кабель. Ну а там, на що вже фантазії вистачить. Кінцевий результат:

Фаза 2. Налаштування програмного забезпечення. Сподіваюся це для кожного, хто виготовив цей девайс, не стане проблемою. Для Guitar Rig робиться все простіше нікуди, включаємо NUM Lock, включаємо клуню, відкриваємо OPTIONS - CONTROLLER, натискаємо MENU, шукаємо необхідну дію, кикаємо на клавішу Learn і вибираємо відповідну кнопку на нашому контролері. Потім натискаємо на Add Controller і проводимо ті самі операції. І так поки не наберемо все, що необхідно або не закінчаться клавіші. Так само можна призначити клавішу на майже будь-яку дію в третій клуні, натискаємо правою кнопкою миші на об'єкт і клацаємо знову на Learn.

А ось тепер якщо є інтерес налаштувати все це дітище на Midi команди, то доведеться ще трохи розважитися.
Значить нам необхідно програмне забезпечення, яке биндит клавіші на міді команди. І така програма є, правда аналогів не зустрічав, благо лікувати від жадібності не потрібно. Називається Virtual Midi Controller, налаштовується дія по кнопці у вкладці C IN, установка - Setup - Далі - Далі. Ось посилання .


Разом з нею ставиться і віртуальний MIDI кабель, так що зайвих рухів тіла робити не доведеться. Для дуже лінивих викладаю попереднє встановлення банку для футсвіча: банк - їм слід замінити файл в корені папки з програмою, за замовчуванням C: Program Files Virtual Midi Controller, попередньо вийшовши з VMC. Для зручності в SETUP поставити галку Run In Background і в основному вікні VMC тицьнути на літеру К, після чого приймати команди прога буде і в згорнутому режимі. Тепер для виходу із проги потрібно ліквідувати її у треї. І ось починаючи з цієї хвилини ви зможете керувати і Nuendo та Sonar з футсвіча. Та й звичайно TH1 теж через міді вистачає нашу клаву.

Будуть питання, звертайтесь...

Наступний задумані проекти:
- Екранування гітари.
- Комбік своїми руками.

Успіхів Вам у муздіяльності...

Так як і я, і моя дружина були в дитинстві навчені натискати на клавіші, то вдома явно не вистачало якогось пристрою з чорними і білими клавішами для передачі досвіду натискання на підростаючому поколінню. На жаль у маленькій "однушці" не те що "Стенвею" - простому "Червоному жовтню" не було місця. Вихід було знайдено – MIDI клавіатура! Тим більше, що спроби зробити самому щось подібне робилися ще на зорі мого "радіогублення". Знову ж через брак місця було вирішено обмежитися для початку чотирма октавами. Та й фінанси не дозволяли прикупити якийсь "Роланд".

Трохи пошукавши в інтернеті я натрапив на оголошення про продаж за 50 вічнозелених девайса під назвою Fatar 49. Пошукавши все в тій же павутині, знайшов опис цього дива.

MIDI клавіатура Fatar StudioLogic CMK 49

  • 4-октавна, повнорозмірна, динамічна (чутлива до швидкості натискання), незважена; 49 клавіш
  • Роз'єм MIDI вихід, до нього підключається штекер з написом "IN"
  • Живлення Адаптер живлення може не входить до комплекту постачання.
  • Потрібний адаптер живлення – 9В, 0.5А. Внутрішній контакт "+", зовнішній "-".
  • Розміри зовнішні 75.2 х 15 х 8 см
  • Вага 2 кг

Сімейна рада ухвалила - БЕРЕМ!!! Колишній власник продемонструвавши, що вона працює, навіть приклав до неї адаптер живлення. MIDI шнурок у мене вже був (запас давно як відчув). І ось привіз додому і підключивши її до комп'ютера, я нарешті зміг згадати дитинство. І... зрозуміти, що за 15 років все забуто майже повністю.

У просторах мережі було видобуто дуже цікаву програму "Play Piano" компанії Midisoft. Вона може практично будь-кого навчити грати. Вона стежить за правильністю гри і вказує на ваші помилки як хороший викладач. Жаль щойно за цей час так і не вдалося знайти чогось схожого, але новіше (програмка 96-го року).

Було це все у минулому столітті. Як кажуть у романах – минули роки... Народилися та підросли діти. Клавіатура на столі і тоді була не дуже зручна - дуже високо виходило в порівнянні зі звичайним піаніно.

Підставка на стілець допомагала, але... Цього року було ухвалено рішення почати мучити старшого. Потрібно ж на комусь відігратися за наше навчання. Для нього взагалі доводилося городити піраміду на стільці. Та й клавіатура постійно від нього намагалася виїхати. Намагання ставити клавіатуру на дитячий столик допомогли не сильно. Тепер він був надто низьким.

Та й маля тепер постійно лізло натискати на клавіші, але особливо їй подобалася кнопка вимикання, підсвічена лампочкою. І тоді довелося зайнятися проблемою всерйоз.

По-перше стало зрозуміло, що робити клавіатуру на висоту стандартного піаніно немає сенсу, оскільки робилося це вже під конкретних людей. По-друге, зробивши тільки підставку під клавіатуру, я швидко зрозумів, що доведеться подовжувати MIDI-кабель. І тоді дозріло рішення зробити повністю автономний музичний інструмент. Покопавшись у запасниках комп'ютерного заліза, з нього витягли цілком робочі (хоча морально давно застарілі) компоненти: материнська плата, процесор, відеокарта і жорсткий диск. Знайдено також старий блок харчування. Бракувало малого – пам'яті. Хороша людина із сервісної служби подарувала мені перед новим роком модуль. Тепер було все, що потрібно.

Робота

Конфігурація вийшла найпримітивніша для нинішніх часів:

  • CPU: Pentium MMX 166 MHz розігнаний до 200
  • RAM: SDRAM PC100 128 Mb
  • HDD: Coner 340 Mb
  • VIDEO: TRIDENT
  • AUDIO: Onboard Yamaha OPL3
Але для обробки MIDI слабке місце тут лише звукова мапа. Для корпусу довелося придбати 4 меблеві щити 800х200х20.

Витративши половину вихідного дня отримав такий агрегат:

Свердлимо отвори для кнопки включення та індикаторів "Power" та "HDD".

Вставляємо клавіатуру.

Відпилюємо шасі корпусу за розміром материнської плати. Прикручуємо її встановивши процесор пам'ять та відеокартку.

Всі порожні гнізда шасі закриваємо гарними блискучими заглушками.

Прикручуємо кошик HDD з диском до корпусу.

Підключаємо блок живлення та всі інші шлейфи та дроти

Операційну систему було встановлено заздалегідь. На такий обсяг вдалося поставити лише Win98. Підключаємо монітор, клавіатуру та мишу. Переконуємось, що все працює.

Тепер переходимо до акустики. Раніше все йшло через комп'ютер, який був підключений до хорошого підсилювача, який, у свою чергу, був підключений до пристойних колонок. В об'єм нового пристрою все це не впихнеш. Та й немає сенсу. Для такої звукової картки вистачить чогось простіше. Знову пірнаємо в запасники і дістаємо ось таку (якщо можна так сказати) акустичну систему:

Розбираємо її і бачимо всередині:

Так, але на безриб'ї і рак риба. Треба буде з'їздити на дачу, там десь лежать непогані динаміки і спаяний мною років 12 тому усилок на К174УН7 - все ж таки потужності у нього більше буде.

Підключаємо цей "Звук".

Ну ось... що вийшло.

Динаміки на дачі не були знайдені (очевидно вже десь використав та забув), але світ не без добрих людей і сусід віддав мені два автомобільні середньочастотники.

У процесі перетискання туди-сюди клавіатури одна з клавіш стала звучати лише за сильного натискання. Довелося все розібрати і напоїти рідну C2H5OH. Кожну клавішу, кожну гумку протер, висушив і поставив назад. Заодно клацнув фотиком внутрішній пристрій.

Підсилювач на К174УН7 був виявлений, але чи кондери на ньому за цей час наказали довго жити, чи він занадто чутливий. Загалом, моторошно фонить. Довелося поки що залишити старий підсилювач.

Спочатку хотів зробити задню стінку з фанери, але потім вирішив все ж таки зробити дерев'яну.

Був прилаштований пюпітр. Як декоративні грати на динаміки були придбані дві круглі решітки для вентиляції. Вся конструкція була розібрана, зашпакльована, відшліфована та покрита неводною морилкою.

Нарешті все завершено!

P.S.Не минуло й місяця після закінчення збирання як стараннями юних музикантів у клавіатуру потрапило газування. Довелося знову розбирати і відпоювати бідолашну спиртиком.



Сподобалася стаття? Поділіться їй