Якщо ви любитель музики або безпосередньо аматор чи професійний музикант, напевно у своєму будинку ви накопичили велику колекцію музичних інструментів. Щоб усі ці суміші були ідеальними, найкраще придбати MIDI-контролер. На жаль, такі типи об’єктів, як правило, досить дорогі, так що людина, яка не має занадто багато ресурсів, має важкий доступ до всього, що вона може запропонувати.
Щоб набагато краще зрозуміти, що таке MIDI-контролер, скажімо, що слово MIDI походить від Цифровий інтерфейс музичного інструменту, тобто своєрідний контролер, який робить електронні музичні пристрої здатними взаємодіяти між собою. Наприклад, якщо у вас вдома є електронна клавіатура, то, швидше за все, вона має інтерфейс MIDI. Перш ніж продовжувати просування, не дивлячись на те, що існують певні технічні деталі, які можуть змусити когось повірити в протилежне, слід чітко зрозуміти, що MIDI - це не аудіо.
Створіть свій власний MIDI-контролер за допомогою цього простого підручника
Як тільки ми зрозуміємо це, вам, безсумнівно, буде набагато легше зрозуміти, що MIDI - це просто простий набір інструкцій, здатний підтримувати до 16 незалежних каналів, що означає, що може бути до 16 різних пристроїв, які взаємодіють незалежно один від одного. Ці пристрої повинні бути підключені за допомогою 5-контактного DIN-кабелю, який в основному являє собою кабель з п'ятьма контактами всередині роз'єму. Як деталь, досить часто використовується USB замість 5-контактного DIN, у випадку використання USB ми повинні створити інтерфейс USB-MIDI.
Без зайвих сумнівів, я залишаю вам посилання, де ви можете знайти підручник крок за кроком з великою кількістю описові зображення де ми можемо виконати всі необхідні дії для створення нашого власного MIDI-контролера.
Як зробити власний MIDI-контролер за допомогою Arduino
Багато людей, яким з різних причин, як особистих, так і професійних, потрібно використовувати a повністю призначений для користувача MIDI-контролер Оскільки, можливо, як приклад, у якийсь момент вашого життя як художника придбання недорогого контролера MIDI може не відповідати вашим очікуванням або потребам, тоді як, коли прийде час, вибір професійної версії може бути надмірним для обох фінансових ресурсів. необхідність, а також велика кількість функцій, які вони можуть запропонувати.
Завдяки цьому сьогодні я хочу показати вам все, що вам потрібно, щоб ви могли виготовити власний MIDI-контролер із зазначенням і всього, що потрібно для його побудови, і запропонувати вам програмне забезпечення, яке вам потрібно буде встановити. Детально, для цього проекту використання плати Arduino має важливе значення - контролер, який є досить потужним для виконання цього завдання.
Що таке MIDI-контролер?
В основному, контролер MIDI відповідає, загалом кажучи, за підключення різних музичних пристроїв між собою. Багато є інструментами, що містять інтерфейс MIDI, хоча це повинно бути дуже зрозумілим, оскільки є багато користувачів, яких часто бентежить. налаштування звуку.
Всередині MIDI є два різних типиЗ одного боку, у нас є такий, що називається Change Control, де він має номер контролера і значення від 0 до 127. Завдяки цьому можуть видаватися повідомлення, де можуть бути змінені різні параметри, такі як гучність або тон. Різні інструменти, які приймають MIDI, повинні мати із собою посібник із поясненням, які канали та повідомлення встановлені за замовчуванням та як їх змінити.
На другому місці ми маємо Program Change, серію повідомлень, які, в свою чергу, набагато простіші, ніж ті, що складають Control Change. Ці типи повідомлень використовуються для зміни попередньо встановлених налаштувань або патча пристрою. Як і в системі управління змінами, поряд із вашим інструментом виробник повинен включати інструкцію із зазначенням того, які пресети змінюються певним повідомленням.
Деталі, необхідні для створення власного саморобного MIDI-контролера
Для того, щоб мати можливість створити власний MIDI-контролер, вам знадобиться серія деталей на додаток, як ми вже згадували, до плати Arduino. Перш ніж продовжувати, просто скажіть, що, можливо, у майбутньому, оскільки ви хочете розширити проект, вам потрібно більше речей, хоча в цей час кількома штуками у вас буде багато.
Нам знадобляться 5-полюсний жіночий DIN-кабель, 2 220 Ом резистори, 2 миттєві вимикачі, 2 резистори 10 кОм, дроти підключення, друкована плата, MIDI-кабель та MIDI-пристрій або USB-інтерфейс. За допомогою цих деталей ви можете розпочати, виконуючи мої дії, створити власний MIDI-контролер.
Перші кроки
Перш ніж почати, я залишаю вам зображення, на якому ви можете бачити висновки вашого MIDI-кабелю, таким чином ми можемо правильно визначити висновки, і особливо, де кожен з них повинен бути підключений. Загалом кажучи, все, що вам потрібно зробити на цьому етапі, - це підключити контакт 5 кабелю до резистора 220 Ом, а звідти - до передавача Arduino 1, контакт 4 - до резистора 220 Ом, а звідти - до розетки Arduino 5 В, поки контакт 2 повинен бути підключений до заземлення вашого контролера.
Після того, як цей крок буде зроблено, у вас немає детальної схеми на фотографії, яка знаходиться трохи нижче цих рядків, пора підключити кнопки. Ідея цього розділу полягає в тому, щоб за допомогою виводу digitalRead (здатного визначати, коли напруга, що досягає його) змінюється, можна використовувати транзистор для натискання кнопки. Для цього нам потрібно лише використовувати кнопку, щоб з лівої сторони підключити її до напруги 5 В, правої сторони до опору 220 Ом, а звідти до землі, тоді як, у свою чергу, також підключити праву сторону до штиря 6 Друга кнопка буде встановлена таким же чином, хоча, як ви можете бачити на схемі, замість штифта 6 ми підключаємо її до 7.
Програмне забезпечення для домашнього midi-контролера
Після того, як ми закінчили з усім апаратним забезпеченням, настав час підключити наш інструмент і протестувати. До цього нам потрібно мати Інтерфейс USB-MIDI та MIDI-кабель для підключення плати, яка передає дані, до нашого комп’ютера. Для цього ми обрали бібліотеку MIDI v4.2, створену хлопцями з Forty Seven Effects, яку ми повинні встановити на нашому Arduino і включити в проект.
У випадку з комп'ютером нам знадобиться програма, яка здатна контролювати всі MIDI-дані, які надходять до нього з Arduino. Для цього ми маємо різні можливості, такі як MIDI Monitor (OS X), MIDI-OX (Windows) або Kmidimon (Linux)
Для невеликого тестування нам просто потрібно підключити Arduino до нашого комп'ютера і виконати наступний код:
#include #include #include #include #include MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // crear objeto de salida MIDI llamado midiOut void setup() { Serial.begin(31250); // configuracion de serial para MIDI } void loop() { midiOut.sendControlChange(56,127,1); // envío de señal MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal delay(1000); // retraso midiOut.sendProgramChange(12,1); // envío de una señal MIDI PC -- 12 = valor, 1 = canal delay(1000); // retraso de 1 segundo }
Якщо все пішло добре, ви можете перейти до перевірки кнопок, якщо цей тест не спрацював для вас, ви повинні переконатися, що всі підключення правильні, схема точно така ж, як і попередня схема, схема підключений до інтерфейсу USB-MIDI за допомогою MIDI-кабелю, кабелі порту MIDI правильно підключені, кабель MIDI підключений до входу інтерфейсу USB-MIDI, плата Arduino правильно підключена до електричної мережі і вона має достатню потужність ...
Перевірка правильності роботи кнопок
Перш ніж продовжувати годувати нашу програму новими функціоналами та кодом, в якому ми можемо загубитися, варто на мить зупинитися і перевірити, щоб кнопки працювали належним чином. Для них ми повинні завантажити наступний код:
const int boton1 = 6; // asignacion del boton a una variable const int boton2 = 7; // asignacion del boton a una variable void setup() { Serial.begin(9600); // configuracion del serial pinMode(boton1,INPUT); // configuracion del boton1 como entrada pinMode(boton2,INPUT); // configuracion del boton2 como entrada } void loop() { if(digitalRead(boton1) == HIGH) { // prueba de estado del boton1 delay(10); // retraso if(digitalRead(boton1) == HIGH) { // prueba de estado de nuevo Serial.println("Boton 1 funciona correctamente!"); // log delay(250); } } if(digitalRead(boton2) == HIGH) { // prueba de boton 2 delay(10); // retraso if(digitalRead(boton2) == HIGH) { // prueba de estado de nuevo Serial.println("Boton 2 funciona correctamente!"); // log delay(250); } } }
Цей код просто потрібно скомпілювати та виконати, щоб, підключивши USB-кабель, програма повідомляла нам, чи була натиснута яка-небудь з кнопок.
Ми створюємо наш саморобний MIDI-контролер
Після того, як ми виконали ці тести, настав час зібрати наш власний MIDI-контролер для цього, вам потрібно буде лише скомпілювати наступний код:
#include #include #include #include #include const int boton1 = 6; // asignamos boton a la variable const int boton2 = 7; // asignamos boton a la variable MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut void setup() { pinMode(boton1,INPUT); // configuracion del boton1 como una entrada pinMode(boton2,INPUT); // configuracion del boton2 como una entrada Serial.begin(31250); // configuracion MIDI de salida } void loop() { if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado delay(10); // retraso if(digitalRead(buttonOne) == HIGH) { // comprobacion de estado de nuevo midiOut.sendControlChange(56,127,1); // envío un MIDI CC -- 56 = nota, 127 = velocidad, 1 = canal delay(250); } } if(digitalRead(buttonTwo) == HIGH) { // comprobacion de estado delay(10); // retraso if(digitalRead(buttonTwo) == HIGH) { // nueva comprobacion de estado midiOut.sendControlChange(42,127,1); // envío un MIDI CC -- 42 = nota, 127 = velocidad, 1 = canal delay(250); } } }
Детально, скажімо, що цього разу ви не можете використовувати команду Serial.println () з виходом MIDI, якщо ви хочете показати якийсь тип повідомлення на комп’ютері, просто змініть:
midiOut.sendControlChange(42,127,1);
по:
midiOut.sendControlChange(value, channel);
де значення та канал повинні мати бажані значення, які ви хочете відобразити.
Приклад роботи:
Arduino пропонує багато можливостей для самостійного здійснення проектів https://www.juguetronica.com/arduino . Одне з найкращих речей - це те, що ви можете починати, не будучи експертом, і продовжувати вчитися, тим самим мотивуючи себе бути самоуком.
Привіт.
Я намагаюся зробити цей фантастичний підручник ... але #includes не є повним ....
Не могли б ви сказати мені, які з них необхідні?
Велике спасибі.
Здравствуйте.
Я хотів би зробити електронний барабанний модуль, замінивши кнопки вхідними роз'ємами, на які надходитиме п'єзоелектричний сигнал.
Чи можна було б це зробити?
Будь ласка, якщо ви можете надати включення цього коду, я зацікавлений у цьому проекті.