Зрабіце свой уласны 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-інтэрфейс, хаця гэта павінна быць вельмі зразумела, бо шмат карыстальнікаў часта бянтэжыць, MIDI - гэта не гукавы файл, а вельмі просты набор інструкцый, які можа атрымаць прыбор. альбо налады гуку.

Унутры MIDI існуе два розныя тыпыЗ аднаго боку, у нас ёсць кантроль змены, які мае нумар кантролера і значэнне ад 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 Transmit 1, кантакт 4 да рэзістара 220 Ом, а адтуль - да разеткі 5V Arduino. 2 павінны быць падлучаны да наземнага злучэння вашага кантролера.

Пасля таго, як гэты крок будзе зроблены, у вас няма падрабязнай дыяграмы на фотаздымку, які знаходзіцца адразу пад гэтымі радкамі, пара падключыць кнопкі. Ідэя гэтага раздзела заключаецца ў тым, каб выкарыстаць штыфт digitalRead (здольны выяўляць, калі напружанне, якое дасягае яго) змяняецца, каб з дапамогай націску кнопкі можна было выкарыстоўваць транзістар. Для гэтага нам трэба толькі выкарыстоўваць кнопку, каб з левага боку мы падключылі яго да 5 В, правы - да супраціву 220 Ом, а адтуль - да зямлі, у той час як мы таксама падключылі правы бок да кантакту 6 Другая кнопка будзе ўсталявана такім жа чынам, хаця, як вы бачыце на схеме, замест кантакту 6 мы падключаем яе да 7.

Праграмнае забеспячэнне для хатняга міді-кантролера

Пасля таго, як мы скончылі з усім абсталяваннем, прыйшоў час падключыць прыбор і праверыць. Перад гэтым нам трэба мець Інтэрфейс 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.   Эдуарда Валенсуэла сказаў

    Калі ласка, калі вы можаце даць уключэнні гэтага кода, я зацікаўлены ў гэтым праекце.