Buat pengawal MIDI anda sendiri dengan Arduino

MIDI

Sekiranya anda seorang pencinta muzik atau secara langsung seorang pemuzik amatur atau profesional, pasti di rumah anda anda telah mengumpulkan banyak koleksi alat muzik. Untuk menjadikan semua campuran ini sempurna, lebih baik mendapatkannya Pengawal MIDI. Malangnya, jenis objek ini biasanya cukup mahal sehingga seseorang yang tidak mempunyai banyak sumber mempunyai akses yang sukar untuk mendapatkan semua yang mereka tawarkan.

Untuk lebih memahami apa itu pengawal MIDI, beritahu anda bahawa perkataan MIDI berasal Antara Muka Digital Alat Muzik, iaitu sejenis alat kawalan yang membuat alat muzik elektronik dapat berkomunikasi antara satu sama lain. Sekiranya anda mempunyai papan kekunci elektronik di rumah, misalnya, kemungkinan besar ia mempunyai antara muka MIDI. Sebelum terus maju, walaupun terdapat perincian teknikal tertentu yang boleh mendorong seseorang untuk mempercayai sebaliknya, mesti jelas bahawa MIDI bukan audio.

Buat pengawal MIDI anda sendiri dengan tutorial ringkas ini

Setelah kami mengetahui perkara ini, pastinya akan lebih mudah bagi anda untuk memahami bahawa MIDI adalah mudah set arahan yang mampu menyokong sehingga 16 saluran bebas, yang bermaksud boleh ada sehingga 16 peranti yang berbeza yang saling berkomunikasi secara bebas antara satu sama lain. Peranti ini mesti disambungkan melalui kabel DIN 5-pin, yang pada dasarnya adalah kabel dengan lima pin di dalam penyambung. Sebagai perinciannya, biasa menggunakan USB dan bukannya DIN 5-pin, sekiranya menggunakan USB, kita mesti membuat antara muka USB-MIDI.

Tanpa basa-basi lagi, saya meninggalkan anda dengan pautan di mana anda boleh mencari tutorial langkah demi langkah dengan banyak gambar deskriptif di mana kita dapat melakukan semua tindakan yang diperlukan untuk membuat pengawal MIDI kita sendiri.

artikel berkaitan:
Cara menukar nama pengguna dan kata laluan Pi pada Raspberry Pi kami

Cara membuat pengawal MIDI anda sendiri dengan Arduino

penyambung midi

Banyak orang yang memerlukan, untuk alasan yang berbeza baik peribadi dan profesional, untuk menggunakan a pengawal MIDI sepenuhnya disesuaikan Kerana mungkin dan sebagai contoh, pada suatu ketika dalam hidup anda sebagai seniman, membeli alat kawalan MIDI yang murah mungkin tidak memenuhi jangkaan atau keperluan anda sementara, apabila tiba waktunya, memilih versi profesional mungkin berlebihan dalam kedua-dua sumber kewangan. memerlukan, serta sebilangan besar ciri yang dapat mereka tawarkan.

Oleh kerana itu, hari ini saya ingin menunjukkan kepada anda semua yang anda perlukan supaya anda dapat membuat pengawal MIDI anda sendiri yang menunjukkan semua yang diperlukan untuk pembinaannya dan menawarkan kepada anda perisian yang perlu anda pasang. Sebagai perinciannya, untuk projek ini penggunaan papan Arduino sangat mustahak, alat kawalan yang cukup kuat untuk melaksanakan tugas ini.

Cara membuat robot
artikel berkaitan:
Cara membuat robot: 3 pilihan berbeza

Apakah pengawal MIDI?

midi

Pada dasarnya, pengawal MIDI bertanggungjawab, secara umum, untuk menghubungkan alat muzik yang berbeza antara satu sama lain. Banyak instrumen yang menggabungkan antara muka MIDI, walaupun ini mesti sangat jelas kerana terdapat banyak pengguna yang sering keliru, MIDI bukan fail audio, tetapi sekumpulan petunjuk yang sangat mudah yang dapat diterima oleh instrumen. atau tetapan bunyi.

Di dalam MIDI terdapat dua jenisDi satu pihak kita mempunyai yang disebut Change Control di mana ia mempunyai nombor pengawal dan nilai antara 0 dan 127. Berkat ini, mesej dapat dikeluarkan di mana parameter yang berbeza seperti kelantangan atau nada dapat diubah. Instrumen yang berbeza yang menerima MIDI harus membawa manual yang menerangkan saluran dan mesej mana yang ditetapkan secara lalai dan cara mengubahnya.

Di tempat kedua kita memiliki Program Change, rangkaian pesan yang pada gilirannya jauh lebih sederhana daripada yang membentuk Control Change. Jenis mesej ini digunakan untuk mengubah pratetap atau tampalan peranti. Seperti dalam Pengendalian Perubahan, bersama dengan instrumen anda, pengeluar mesti menyertakan manual yang menunjukkan pratetap yang diubah oleh mesej tertentu.

Bahagian Perlu Dibangunkan Pengawal MIDI Buatan Sendiri

Skema penyambung Midi

Untuk dapat membina pengawal MIDI anda sendiri, anda memerlukan serangkaian kepingan sebagai tambahan, seperti yang telah kami sebutkan, ke papan Arduino. Sebelum meneruskan, beritahu anda bahawa mungkin, pada masa akan datang kerana anda ingin mengembangkan projek ini, anda memerlukan lebih banyak perkara, walaupun pada masa ini dengan beberapa keping anda akan mempunyai banyak.

Kami memerlukan kabel DIN wanita 5-tiang, 2 perintang 220 ohm, 2 suis sesaat, perintang 2k ohm, wayar sambungan, papan litar, kabel MIDI dan peranti MIDI atau antara muka USB. Dengan hanya potongan ini, anda boleh memulakan, mengikuti langkah saya, untuk membuat pengawal MIDI anda sendiri.

Langkah pertama

Skema Arduino midi

Sebelum memulakan, saya tinggalkan gambar di mana anda dapat melihat pin kabel MIDI anda, dengan cara ini kami dapat mengenal pasti pin dengan betul dan terutama di mana masing-masing mesti disambungkan. Secara garis besar, yang perlu anda lakukan pada ketika ini adalah menyambungkan pin 5 kabel ke perintang 220 ohm dan dari sana ke Arduino Transmit 1, pin 4 ke perintang 220 ohm dan dari sana ke soket 5V Arduino sambil pin 2 mesti disambungkan ke sambungan Ground dari pengawal anda.

Setelah langkah ini selesai, anda tidak mempunyai gambarajah terperinci dalam foto yang terletak tepat di bawah garis ini, sudah tiba masanya untuk menyambungkan butang. Idea dalam bahagian ini adalah untuk mencapai, menggunakan pin digitalRead (mampu mengesan kapan voltan yang mencapainya berubah) untuk dapat menggunakan transistor untuk dicapai, dengan menekan butang. Untuk ini, kita hanya perlu menggunakan butang sehingga, di sebelah kiri kita menyambungkannya ke 5V, sebelah kanan ke rintangan 220 ohm dan dari sana ke tanah sementara, pada gilirannya, kita juga menghubungkan sebelah kanan ke pin 6 Butang kedua akan dipasang dengan cara yang sama walaupun, seperti yang anda lihat dalam rajah, bukannya pin 6, kami menghubungkannya ke 7.

Perisian yang boleh digunakan untuk pengawal midi rumah

Setelah kami selesai dengan semua perkakasan, sudah tiba masanya untuk menghubungkan instrumen dan ujian kami. Sebelum itu kita perlu mempunyai Antara muka USB-MIDI dan kabel MIDI untuk menghubungkan papan, yang menghantar data, dengan komputer kami. Untuk mencapainya, kami telah memilih perpustakaan MIDI v4.2 yang dibuat oleh orang-orang dari Forty Seven Effects yang mesti kami pasang di Arduino kami dan termasuk dalam projek ini.

Dalam kes komputer, kita akan memerlukan program yang mampu mengawasi semua data MIDI yang sampai dari Arduino. Untuk ini kita mempunyai kemungkinan yang berbeza seperti MIDI Monitor (OS X), MIDI-OX (Windows) atau Kmidimon (Linux)

Untuk melakukan sedikit ujian, kita hanya perlu menyambungkan Arduino ke komputer kita dan melaksanakan kod berikut:

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

Sekiranya semuanya berjalan lancar, anda boleh mengikuti ujian butang, sekiranya ujian ini tidak berjaya, anda mesti memastikan bahawa semua sambungannya betul, litar sama dengan gambarajah sebelumnya, litar disambungkan ke antara muka USB-MIDI dengan kabel MIDI, kabel port MIDI disambungkan dengan betul, kabel MIDI disambungkan ke input antara muka USB-MIDI, papan Arduino disambungkan dengan betul ke rangkaian elektrik dan ia mempunyai daya yang cukup ...

Menguji bahawa butang berfungsi dengan betul

Sebelum meneruskan program kami dengan fungsi dan kod baru yang boleh kita lewatkan, ada baiknya berhenti sebentar dan uji bahawa butang berfungsi dengan baik. Bagi mereka kita harus memuatkan kod berikut:

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

}

Kod ini hanya perlu disusun dan dilaksanakan supaya, dengan kabel USB yang tersambung, program memberitahu kita jika ada butang yang ditekan.

Kami membuat pengawal MIDI buatan sendiri

Setelah kami menjalankan ujian ini, sudah tiba masanya untuk mengumpulkan pengawal MIDI kami sendiri untuk itu, anda hanya perlu menyusun kod berikut:

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

Sebagai perincian, beritahu anda bahawa anda tidak dapat menggunakan perintah Serial.println () dengan output MIDI kali ini, jika anda ingin menunjukkan beberapa jenis mesej di komputer, ubah saja:

midiOut.sendControlChange(42,127,1);

oleh:

midiOut.sendControlChange(value, channel);

di mana nilai dan saluran mesti mempunyai nilai yang diinginkan yang ingin anda paparkan.

Contoh operasi:


4 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Alfred kata

    Arduino menawarkan banyak kemungkinan untuk anda melaksanakan projek sendiri https://www.juguetronica.com/arduino . Salah satu perkara terbaik ialah anda boleh memulakan tanpa menjadi pakar dan terus belajar, sehingga memotivasi diri anda untuk belajar sendiri.

  2.   Danel Roman kata

    Greetings.

    Saya cuba melaksanakan tutorial hebat ini ... tetapi #sertakan tidak lengkap ....

    Bolehkah anda memberitahu saya mana yang perlu?

    Terima kasih banyak.

  3.   uell kata

    Hei.
    Saya ingin membuat modul drum elektronik dengan mengganti butang dengan input bicu ke mana isyarat piezoelektrik akan sampai.
    Adakah mungkin untuk melakukannya?

  4.   Eduardo Valenzuela kata

    Sekiranya anda dapat memberikan kod ini, saya berminat dengan projek ini.