Arduino менен MIDI контроллериңизди түзүңүз

MIDI

Эгер сиз музыканы сүйсөңүз же түздөн-түз ышкыбоз же профессионал музыкант болсоңуз, анда үйүңүздө көптөгөн музыкалык аспаптар жыйнагы топтолгон. Булардын бардыгын кемчиликсиз кылуу үчүн, а MIDI контроллери. Тилекке каршы, объектилердин бул түрлөрү адатта бир топ кымбат болгондуктан, ресурстар өтө көп болбогондуктан, алар сунуштай турган нерселердин бардыгына жеткиликтүү болуп калышат.

MIDI контроллери эмне экендигин жакшыраак түшүнүү үчүн, MIDI сөзү келип чыккандыгын айтыңыз Санарип интерфейси, башкача айтканда, электрондук музыкалык шаймандарды бири-бири менен байланышууга мүмкүнчүлүк берген контроллердун бир түрү. Эгер сизде үйдө электрондук баскычтоп болсо, анда ал MIDI интерфейсине ээ болушу мүмкүн. Алга жылууну улантуудан мурун, башка бир нерсеге ишенүүгө түрткү бере турган айрым техникалык деталдар бар экендигине карабастан, ачык-айкын болушу керек MIDI аудио эмес.

Ушул жөнөкөй окуу куралы менен өзүңүздүн MIDI контроллериңизди түзүңүз

Бул жөнүндө так маалымат алгандан кийин, сизге MIDI жөнөкөй нерсе экендигин түшүнүү оңой болот 16 көзкарандысыз каналды колдоого жөндөмдүү көрсөтмө, демек, бири-бири менен өз алдынча байланышкан 16га чейин ар кандай шаймандар болушу мүмкүн. Бул шаймандарды 5 пиндик DIN кабели аркылуу туташтыруу керек, бул негизинен туташтыргычтын ичинде беш казыгы бар кабель. Деталдаштыра турган болсок, 5 пиндик DIN ордуна USBди колдонуу кеңири таралган, эгерде USB колдонулган болсо, анда биз USB-MIDI интерфейсин түзүшүбүз керек.

Көп ойлонбостон, сиз таба турган шилтемени калтырам окуу куралы менен кадам сайын сүрөттөөчү сүрөттөр өзүбүздүн MIDI контроллерибизди түзүү үчүн бардык керектүү иш-аракеттерди жасай алабыз.

Окшош макала:
Raspberry Piдеги Pi колдонуучунун аты менен паролду кантип өзгөртүү керек

Arduino менен MIDI контроллерди кантип жасасаңыз болот

midi туташтыргычы

Көптөгөн адамдар ар кандай себептерден улам жеке жана кесипкөй колдонууга муктаж толугу менен колдонуучунун MIDI контроллери Себеби, балким жана мисал катары, сүрөтчү катары өмүрүңүздүн бир мезгилинде арзан MIDI контроллерин сатып алуу, күтүүлөрүңүзгө же муктаждыктарыңызга жооп бербеши мүмкүн, ал эми убактысы келгенде, кесипкөй версиясын тандап алуу эки финансылык ресурстарда да ашыкча болушу мүмкүн. муктаждыгы, ошондой эле алар сунуш кыла турган көптөгөн функциялары.

Ушундан улам, бүгүн мен сизге керектүү нерселердин бардыгын көрсөтүп бергим келет, ошондо сиз өзүңүздүн MIDI контролеруңузду курушуңуз үчүн керектүү нерселердин бардыгын көрсөтө аласыз жана сизге орнотууга керек болгон программаны сунуштай аласыз. Деталдуу түрдө, бул долбоор үчүн Arduino тактасын колдонуу керек, бул милдетти аткара ала турган күчтүү контроллер.

Окшош макала:
Робот кантип жасалат: 3 түрдүү вариант

MIDI контроллери деген эмне?

MIDI

Негизинен, MIDI контроллери ар кандай музыкалык шаймандарды бири-бирине туташтыруу үчүн жооп берет. Көпчүлүк MIDI интерфейсин камтыган инструменттер, бирок бул абдан түшүнүктүү болушу керек, анткени колдонуучулар көп учурда чаташып кетишет, MIDI бул аудио файл эмес, жөнөкөй көрсөтмөлөр топтому, ар кандай көзөмөлдөө үчүн алса болот үн орнотуулары.

MIDI ичинде эки түрү барБир жагынан, бизде Control Control деген бар, анда контроллер номери жана 0 менен 127 ортосунда мааниси бар. Ушунун аркасында билдирүүлөр чыгарылышы мүмкүн, ал жерде үн же үн сыяктуу ар кандай параметрлер өзгөрүлүшү мүмкүн. MIDIди кабыл алган ар кандай шаймандар демейки шартта кайсы каналдарды жана билдирүүлөрдү орнотконун жана аларды кантип өзгөртүү керектигин түшүндүргөн колдонмо алып келиши керек.

Экинчи орунда, бизде Программаны өзгөртүү, бир катар билдирүүлөр, алар өз кезегинде, Башкарууну өзгөрткөндөргө караганда кыйла жөнөкөй. Бул түрдөгү билдирүүлөр түзмөктүн алдын-ала орнотулган же жамаачылыгын өзгөртүү үчүн колдонулат. Change Control сыяктуу эле, сиздин приборуңуз менен кошо өндүрүүчү кайсы билдирүү менен алдын-ала орнотулгандыгын көрсөткөн колдонмону камтышы керек.

Өзүңүздүн MIDI контролеруңузду куруу үчүн керектүү бөлүктөр

Midi туташтыргычынын схемасы

Өзүңүздүн MIDI контролеруңузду кура алыш үчүн, Arduino тактасына, буга чейин айтып өткөндөй, бир катар бөлүктөр керек болот. Улантуудан мурун, айтыңызчы, балким, келечекте сиз долбоорду кеңейтүүнү кааласаңыз, анда сизге дагы көп нерселер керек болот, бирок азырынча бир нече бөлүктөр менен сиз көп нерсеге ээ болосуз.

Бизге 5 уюлдуу аял DIN кабели, 2 220 ом резистор, 2 моменттүү өчүргүч, 2 10 к ом резистор, байланыш зымдары, электр тогу, MIDI кабели жана MIDI шайманы же USB интерфейси керек болот. Ушул бөлүктөрдүн жардамы менен, сиз MIDI контроллерин жасоону менин кадамдарымдан кийин баштасаңыз болот.

баштоо

Arduino midi схемасы

Башталардан мурун сизге MIDI кабелинин түйрөөчтөрүн көрө турган сүрөт калтырам, ошентип биз төөнөгүчтөрдү туура аныктай алабыз жана айрыкча алардын ар бири туташтырылышы керек. Жалпылап айтканда, бул учурда кабелдин 5-төөнөгүчүн 220 Ом резисторго туташтыруу керек жана ал жерден Arduino Transmit 1ге, 4 Пинди 220 Ом каршылыкка жана андан Ардуинонун 5V розеткасына туташтыруу керек. 2 контроллериңиздин Жер байланышына туташтырылышы керек.

Бул кадам жасалып бүткөндөн кийин, сизде ушул саптардын ылдый жагында жайгашкан сүрөттө толук схема жок, баскычтарды туташтырууга кез келди. Бул бөлүмдөгү идея транзисторду колдонуп, баскычты басуу менен, digitalRead пинди (ага жеткен чыңалуунун өзгөргөнүн аныктоого жөндөмдүү) колдонуу. Ал үчүн биз бир гана баскычты колдонушубуз керек, анын сол жагын 5В, оң жагын 220 Ом каршылыкка жана ал жерден жерге, ал эми 6-пинге оң жагына туташтырабыз. Экинчи баскыч дагы ушундай эле жол менен орнотулмак, бирок диаграммада көрүнүп тургандай, 6-пиндин ордуна биз 7ге туташтырабыз.

Үй midi контроллери үчүн колдонула турган программа

Бардык шаймандар менен бүткөндөн кийин, шайманы туташтырып, сынап көрүүгө кез келди. Ага чейин бизде болушу керек USB-MIDI интерфейси жана MIDI кабели маалыматтарды жөнөтүп жаткан тактаны биздин компьютер менен туташтыруу. Буга жетишүү үчүн биз Arduino программасына орнотуп, долбоорго киргизишибиз керек болгон кырк жети эффектин жигиттери тарабынан түзүлгөн MIDI v4.2 китепканасын тандадык.

Компьютерде бизге Arduinoдон келген бардык MIDI маалыматтарын көзөмөлдөөгө жөндөмдүү программа керек болот. Бул үчүн бизде 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
}

Эгер бардыгы жакшы болуп кетсе, анда баскычты текшерүүгө өтсөңүз болот, эгерде бул сыноо сиз үчүн иштебей калган болсо, анда бардык байланыштар туура экендигин, чынжыр мурунку схема, схема менен бирдей экендигин текшерип чыгыңыз MIDI кабели менен USB-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.   Alfred ал мындай деди:

    Arduino сизге өз алдынча долбоорлорду жүзөгө ашыруунун көптөгөн мүмкүнчүлүктөрүн сунуш кылат https://www.juguetronica.com/arduino . Эң жакшы нерселердин бири - эксперт болбой туруп, билимди уланта берсеңиз болот, ошентип өзүңүздү-өзүң үйрөнүүгө түрткү ал.

  2.   Danel Roman ал мындай деди:

    Салам.

    Мен бул фантастикалык окуу куралын аткарууга аракет кылып жатам ... бирок # камтылгандар толук эмес ....

    Кайсынысы керек экендигин айта аласызбы?

    Чон рахмат.

  3.   Uell ал мындай деди:

    Hello.
    Мен электрондук барабан модулун пьезоэлектрдик сигнал келе турган джек кириштерине алмаштыруу менен жасагым келет.
    Муну жасаса болот беле?

  4.   Эдуардо Валенсуэла ал мындай деди:

    Сураныч, ушул коддун камтылгандарын бере алсаңыз, мен бул долбоорго кызыгам.