Arduino ilə öz MIDI nəzarətçinizi hazırlayın

MIDI

Bir musiqi həvəskarı və ya birbaşa həvəskar və ya peşəkar bir musiqiçisinizsə, şübhəsiz ki, evinizdə böyük bir musiqi alətləri kolleksiyası yığmısınız. Bütün bu qarışığı mükəmməl etmək üçün ən yaxşısı a MIDI nəzarətçi. Təəssüf ki, bu tip obyektlər ümumiyyətlə olduqca bahalıdır, buna görə çox mənbəyi olmayan bir adamın təklif edə biləcəyi hər şeyə girməsi çətindir.

MIDI nəzarətçisinin nə olduğunu daha yaxşı başa düşmək üçün sizə MIDI sözünün gəldiyini söyləyin Musiqi Aləti Rəqəmsal İnterfeys, yəni elektron musiqi cihazları yaradan bir növ nəzarətçi bir-biri ilə ünsiyyət qura bilər. Məsələn, evdə bir elektron klaviatura varsa, MIDI interfeysinə sahib olma ehtimalı çoxdur. İnsanın əksinə inanmasına səbəb ola biləcək müəyyən texniki təfərrüatların olmasına baxmayaraq irəliləməyə davam etmədən əvvəl çox aydın olmalıdır ki MIDI audio deyil.

Bu sadə təlim ilə öz MIDI nəzarətçinizi yaradın

Bu barədə aydın olduqdan sonra, MIDI-nin sadəcə bir sadə olduğunu başa düşməyiniz şübhəsiz ki, daha asan olacaq 16-a qədər müstəqil kanalı dəstəkləyən təlimat dəsti, bu da bir-biri ilə müstəqil əlaqə quran 16-a qədər fərqli cihazın ola biləcəyi deməkdir. Bu cihazlar 5 pinli DIN kabeli vasitəsilə birləşdirilməlidir, bu da əsasən bir bağlayıcı içərisində beş sancaqlı bir kabeldir. Bir detal olaraq, 5 pinli DIN əvəzinə bir USB istifadə etmək olduqca yaygındır, USB istifadə edərkən bir USB-MIDI interfeysi yaratmalıyıq.

Daha çox fikirləşmədən, tapa biləcəyiniz bir keçidi tərk edirəm tutorial bir çox ilə addım-addım təsviri şəkillər öz MIDI nəzarətçimizi yaratmaq üçün bütün lazımi tədbirləri həyata keçirə biləcəyimiz yerdir.

Əlaqədar məqalə:
Raspberry Pi-də Pi istifadəçi adınızı və şifrənizi necə dəyişdirmək olar

Arduino ilə öz MIDI nəzarətçinizi necə etmək olar

midi bağlayıcı

Bir çoxu fərqli səbəblərdən həm fərdi, həm də peşəkar istifadə etmək üçün ehtiyacı olan insanlardır tam xüsusi MIDI nəzarətçi Çünki bəlkə də və bir nümunə olaraq bir sənətçi kimi həyatınızın bir nöqtəsində ucuz bir MIDI nəzarətçi almaq, vaxtı gələndə peşəkar bir versiyanı seçmək həm maliyyə mənbələrində həddindən artıq ola bilər, həm də gözləntilərinizi və ya ehtiyaclarınızı qarşılaya bilməz. ehtiyac, həm də çox sayda xüsusiyyət təklif edə bilərlər.

Bu səbəbdən, bu gün sizə lazım olan hər şeyi göstərmək istəyirəm ki, həm qurulma üçün lazım olan hər şeyi göstərərək həm də qurmanız lazım olan proqramı təqdim edərək öz MIDI nəzarətçinizi edə bilərsiniz. Bir detal olaraq, bu layihə üçün bir Arduino lövhəsinin istifadəsi vacibdir, bu vəzifəni yerinə yetirmək üçün kifayət qədər güclü bir nəzarətçi.

Əlaqədar məqalə:
Robot necə hazırlanır: 3 fərqli seçim

MIDI nəzarətçi nədir?

midi

Əsasən, bir MIDI nəzarətçisi, geniş şəkildə desək, fərqli musiqi cihazlarını bir-birinə bağlamaqdan məsuldur. Bir çoxu MIDI interfeysini özündə cəmləşdirən alətlərdir, baxmayaraq ki, bu çox aydın olmalıdır, çünki tez-tez qarışıq olan bir çox istifadəçi var, MIDI bir səs faylı deyil, bir alətin ala biləcəyi çox sadə bir təlimat dəsti. və ya səs parametrləri.

MIDI içərisində iki fərqli növ varBir tərəfdən nəzarətçi nömrəsinə və 0 ilə 127 arasında bir dəyərə sahib olduğu Change Control adlı birimiz var. Bunun sayəsində səs və ya ton kimi fərqli parametrlərin dəyişdirilə biləcəyi mesajlar verilə bilər. MIDI-ni qəbul edən müxtəlif alətlər özləri ilə hansı kanalların və mesajların standart olaraq təyin olunduğunu və onları necə dəyişdirəcəyini izah edən bir dərslik gətirməlidir.

İkinci yerdə Proqram Dəyişikliyi var, bir sıra mesajlar, Dəyişdirmə Nəzarətini təşkil edənlərdən daha sadədir. Bu tip mesajlar bir cihazın əvvəlcədən qurulmuş və ya yamasını dəyişdirmək üçün istifadə olunur. Dəyişdirmə Nəzarətində olduğu kimi, cihazınızla birlikdə istehsalçı, müəyyən bir mesajla hansı əvvəlcədən dəyişdirildiyini göstərən bir təlimat daxil etməlidir.

Evdə hazırladığınız MIDI nəzarətçisini qurmaq üçün lazım olan hissələr

Midi bağlayıcı şeması

Öz MIDI nəzarətçinizi qura bilmək üçün daha əvvəl də qeyd etdiyimiz kimi bir Arduino lövhəsinə əlavə olaraq bir sıra parçalara ehtiyacınız olacaq. Davam etməzdən əvvəl sizə yalnız gələcəkdə layihəni genişləndirmək istədiyiniz üçün daha çox şeyə ehtiyacınız olduğunu söyləyin, baxmayaraq ki, bu anda bir neçə parça ilə bol olacaqsınız.

5 qütblü bir qadın DIN kabeli, 2 220 ohm rezistor, 2 ani açar, 2 10k ohm müqavimət, əlaqə telləri, bir elektron kart, MIDI kabeli və bir MIDI cihazı və ya USB interfeysi lazımdır. Məhz bu parçalarla öz addımlarımı izləyərək öz MIDI nəzarətçinizi etmək üçün başlaya bilərsiniz.

İlk addımlar

Arduino midi şeması

Başlamadan əvvəl sizə MIDI kabelinizin sancaqlarını görə biləcəyiniz bir şəkil buraxdım, bu şəkildə sancaqları və xüsusən də hər birinin bağlanmalı olduğu yerləri düzgün müəyyənləşdirə bilərik. Geniş şəkildə desək, bu nöqtədə kabelin pin 5-i 220 ohm müqavimətə və oradan Arduino Transmit 1-ə, pin 4-dən 220 ohm müqavimətə və oradan Arduino-nun 5V yuvasına pinlə bağlamaq lazımdır. 2 nəzarətçinizin Yer bağlantısına qoşulmalıdır.

Bu addım edildikdən sonra fotoşəkildə bu sətirlərin dərhal altında yerləşən ətraflı bir diaqram yoxdur, düymələri birləşdirməyin zamanı gəldi. Bu hissədəki fikir, bir düyməni basaraq, əldə etmək üçün bir tranzistor istifadə edə bilmək üçün digitalRead pinini (ona çatan gərginliyin dəyişdiyini təyin edə bilən) istifadə etməkdir. Bunun üçün yalnız bir düyməni istifadə etməliyik ki, sol tərəfi 5V-ə, sağ tərəfi 220 ohm müqavimətə və oradan yerə, eyni zamanda sağ tərəfi 6 pinlə birləşdirək. 6. İkinci düymə də eyni şəkildə qurulacaq, baxmayaraq ki diaqramda gördüyünüz kimi pin 7 əvəzinə onu XNUMX-yə bağlayırıq.

Ev midi nəzarətçisi üçün istifadə üçün proqram

Bütün hardware ilə işimizi bitirdikdən sonra alətimizi birləşdirməyin və sınamağın vaxtı gəldi. Bundan əvvəl bir USB-MIDI interfeysi və bir MIDI kabeli məlumat göndərən lövhəni kompüterimizlə birləşdirmək. Buna nail olmaq üçün, Arduino-da quraşdırmalı və layihəyə daxil edilməli olduğumuz Qırx Yeri Effektdən olan uşaqlar tərəfindən yaradılan MIDI v4.2 kitabxanasını seçdik.

Kompüter məsələsində, Arduinodan ona gələn bütün MIDI məlumatlarına nəzarət edə biləcək bir proqrama ehtiyacımız olacaq. Bunun üçün MIDI Monitor (OS X), MIDI-OX (Windows) və ya Kmidimon (Linux) kimi müxtəlif imkanlarımız var

Kiçik bir test etmək üçün Arduinonu kompüterimizə bağlamalı və aşağıdakı kodu yerinə yetirməliyik:

#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
}

Hər şey yaxşı keçibsə, düymə testinə gedə bilərsiniz, əgər bu test sizin üçün işləməyibsə, bütün əlaqələrin düzgün olduğundan əmin olmalısınız, dövrə əvvəlki diaqramla tamamilə eyni bir MIDI kabeli ilə USB-MIDI interfeysinə qoşulur, MIDI port kabelləri düzgün bir şəkildə bağlanmış, MIDI kabeli USB-MIDI interfeysinin girişinə qoşulmuşdur, Arduino kartı elektrik şəbəkəsinə düzgün bir şəkildə bağlanmış və kifayət qədər gücə malikdir ...

Düymələrin düzgün işlədiyini yoxlamaq

Proqramımızı itirə biləcəyimiz yeni funksiyalar və kodlarla qidalandırmağa davam etmədən əvvəl bir anlıq dayanmağa dəyər və düymələrin düzgün işlədiyini yoxlayın. Onlar üçün aşağıdakı kodu yükləməliyik:

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);
}
}

}

Bu kod sadəcə tərtib olunmalı və icra edilməlidir ki, USB kabeli bağlı olduqda, proqram bizə düymələrdən birinin basıldığını bildirsin.

Evdə hazırladığımız MIDI nəzarətçisini yaradırıq

Bu testləri yerinə yetirdikdən sonra bunun üçün öz MIDI nəzarətçimizi yığmağın vaxtı gəldi, yalnız aşağıdakı kodu tərtib etməlisiniz:

#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);
}
}
}

Bir detal olaraq, Serial.println () əmrini bu dəfə MIDI çıxışı ilə istifadə edə bilməyəcəyinizi söyləyin, əgər kompüterdə bir növ mesaj göstərmək istəyirsinizsə, dəyişdirin:

midiOut.sendControlChange(42,127,1);

tərəfindən:

midiOut.sendControlChange(value, channel);

burada dəyər və kanalın göstərmək istədiyiniz dəyərlərə sahib olması lazımdır.

Əməliyyat nümunəsi:


Məqalənin məzmunu bizim prinsiplərimizə uyğundur redaktor etikası. Xəta bildirmək üçün klikləyin burada.

4 şərh, özünüzü buraxın

Şərhinizi buraxın

E-poçt ünvanından dərc olunmayacaq. Lazım alanlar qeyd olunur *

*

*

  1. Verilərdən məsul: Miguel Ángel Gatón
  2. Verilənlərin məqsədi: Nəzarət SPAM, şərh rəhbərliyi.
  3. Qanuniləşdirmə: Sizin razılığınız
  4. Məlumatların ötürülməsi: Qanuni öhdəlik xaricində məlumatlar üçüncü şəxslərə çatdırılmayacaqdır.
  5. Veri saxlama: Occentus Networks (AB) tərəfindən yerləşdirilən verilənlər bazası
  6. Hüquqlar: İstədiyiniz zaman məlumatlarınızı məhdudlaşdıra, bərpa edə və silə bilərsiniz.

  1.   Alfred deyib

    Arduino sizə təkbaşına layihələr həyata keçirmək üçün bir çox imkanlar təqdim edir https://www.juguetronica.com/arduino . Ən yaxşı şeylərdən biri, mütəxəssis olmadan başlamağınıza və öyrənməyə davam etməyinizə, özünüzü özünüzü öyrətməyə təşviq etməyinizdir.

  2.   Danel Roman deyib

    Greetings.

    Bu fantastik təlimatı etməyə çalışıram ... amma # daxilolmalar tam deyil ....

    Mənə hansının lazım olduğunu deyə bilərsənmi?

    Çox sağ olun.

  3.   uell deyib

    Salam.
    Düymələri bir piezoelektrik siqnalın gələcəyi jak girişləri ilə əvəz edərək elektron bir nağara modulu etmək istərdim.
    Bunu etmək mümkün olacaqmı?

  4.   Eduardo Valenzuela deyib

    Xahiş edirəm bu kodun içərisini verə bilərsiniz, bu layihə ilə maraqlanıram.