Створіть свій власний MIDI-контролер за допомогою Arduino

MIDI

Якщо ви любитель музики або безпосередньо аматор чи професійний музикант, напевно у своєму будинку ви накопичили велику колекцію музичних інструментів. Щоб усі ці суміші були ідеальними, найкраще придбати MIDI-контролер. На жаль, такі типи об’єктів, як правило, досить дорогі, так що людина, яка не має занадто багато ресурсів, має важкий доступ до всього, що вона може запропонувати.

Щоб набагато краще зрозуміти, що таке MIDI-контролер, скажімо, що слово MIDI походить від Цифровий інтерфейс музичного інструменту, тобто своєрідний контролер, який робить електронні музичні пристрої здатними взаємодіяти між собою. Наприклад, якщо у вас вдома є електронна клавіатура, то, швидше за все, вона має інтерфейс MIDI. Перш ніж продовжувати просування, не дивлячись на те, що існують певні технічні деталі, які можуть змусити когось повірити в протилежне, слід чітко зрозуміти, що MIDI - це не аудіо.

Створіть свій власний MIDI-контролер за допомогою цього простого підручника

Як тільки ми зрозуміємо це, вам, безсумнівно, буде набагато легше зрозуміти, що MIDI - це просто простий набір інструкцій, здатний підтримувати до 16 незалежних каналів, що означає, що може бути до 16 різних пристроїв, які взаємодіють незалежно один від одного. Ці пристрої повинні бути підключені за допомогою 5-контактного DIN-кабелю, який в основному являє собою кабель з п'ятьма контактами всередині роз'єму. Як деталь, досить часто використовується USB замість 5-контактного DIN, у випадку використання USB ми повинні створити інтерфейс USB-MIDI.

Без зайвих сумнівів, я залишаю вам посилання, де ви можете знайти підручник крок за кроком з великою кількістю описові зображення де ми можемо виконати всі необхідні дії для створення нашого власного MIDI-контролера.

Пов'язана стаття:
Як змінити ім’я користувача та пароль Pi на нашому Raspberry Pi

Як зробити власний MIDI-контролер за допомогою Arduino

роз'єм midi

Багато людей, яким з різних причин, як особистих, так і професійних, потрібно використовувати a повністю призначений для користувача MIDI-контролер Оскільки, можливо, як приклад, у якийсь момент вашого життя як художника придбання недорогого контролера MIDI може не відповідати вашим очікуванням або потребам, тоді як, коли прийде час, вибір професійної версії може бути надмірним для обох фінансових ресурсів. необхідність, а також велика кількість функцій, які вони можуть запропонувати.

Завдяки цьому сьогодні я хочу показати вам все, що вам потрібно, щоб ви могли виготовити власний MIDI-контролер із зазначенням і всього, що потрібно для його побудови, і запропонувати вам програмне забезпечення, яке вам потрібно буде встановити. Детально, для цього проекту використання плати Arduino має важливе значення - контролер, який є досить потужним для виконання цього завдання.

Як зробити робота
Пов'язана стаття:
Як зробити робота: 3 різні варіанти

Що таке MIDI-контролер?

опівдні

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

Всередині MIDI є два різних типиЗ одного боку, у нас є такий, що називається Change Control, де він має номер контролера і значення від 0 до 127. Завдяки цьому можуть видаватися повідомлення, де можуть бути змінені різні параметри, такі як гучність або тон. Різні інструменти, які приймають MIDI, повинні мати із собою посібник із поясненням, які канали та повідомлення встановлені за замовчуванням та як їх змінити.

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

Деталі, необхідні для створення власного саморобного MIDI-контролера

Схема роз'єму Midi

Для того, щоб мати можливість створити власний MIDI-контролер, вам знадобиться серія деталей на додаток, як ми вже згадували, до плати Arduino. Перш ніж продовжувати, просто скажіть, що, можливо, у майбутньому, оскільки ви хочете розширити проект, вам потрібно більше речей, хоча в цей час кількома штуками у вас буде багато.

Нам знадобляться 5-полюсний жіночий DIN-кабель, 2 220 Ом резистори, 2 миттєві вимикачі, 2 резистори 10 кОм, дроти підключення, друкована плата, MIDI-кабель та MIDI-пристрій або USB-інтерфейс. За допомогою цих деталей ви можете розпочати, виконуючи мої дії, створити власний MIDI-контролер.

Перші кроки

Схема міді Arduino

Перш ніж почати, я залишаю вам зображення, на якому ви можете бачити висновки вашого 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);

де значення та канал повинні мати бажані значення, які ви хочете відобразити.

Приклад роботи:


4 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Альфред - сказав він

    Arduino пропонує багато можливостей для самостійного здійснення проектів https://www.juguetronica.com/arduino . Одне з найкращих речей - це те, що ви можете починати, не будучи експертом, і продовжувати вчитися, тим самим мотивуючи себе бути самоуком.

  2.   Данел Роман - сказав він

    Привіт.

    Я намагаюся зробити цей фантастичний підручник ... але #includes не є повним ....

    Не могли б ви сказати мені, які з них необхідні?

    Велике спасибі.

  3.   Уелл - сказав він

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

  4.   Едуардо Валенсуела - сказав він

    Будь ласка, якщо ви можете надати включення цього коду, я зацікавлений у цьому проекті.