Buat pengontrol MIDI Anda sendiri dengan Arduino

MIDI

Jika Anda seorang pencinta musik atau langsung menjadi musisi amatir atau profesional, pasti di rumah Anda sudah banyak koleksi alat musik yang terkumpul. Untuk membuat semua campuran ini sempurna, yang terbaik adalah mendapatkan a Pengontrol MIDI. Sayangnya, jenis objek ini biasanya cukup mahal, sehingga sulit bagi seseorang yang tidak memiliki terlalu banyak sumber daya untuk mengakses semua yang dapat mereka tawarkan.

Untuk lebih memahami apa itu pengontrol MIDI, beri tahu Anda bahwa kata MIDI berasal Alat Musik Antarmuka DigitalArtinya, semacam pengontrol yang membuat perangkat musik elektronik dapat berkomunikasi satu sama lain. Jika Anda memiliki keyboard elektronik di rumah, misalnya, kemungkinan besar keyboard tersebut memiliki antarmuka MIDI. Sebelum melanjutkan, terlepas dari kenyataan bahwa ada detail teknis tertentu yang dapat membuat Anda percaya sebaliknya, Anda harus sangat jelas bahwa MIDI bukan audio.

Buat pengontrol MIDI Anda sendiri dengan tutorial sederhana ini

Setelah kami memahami hal ini dengan jelas, pasti akan lebih mudah bagi Anda untuk memahami bahwa MIDI itu sederhana set instruksi yang mampu mendukung hingga 16 saluran independen, yang berarti bahwa terdapat hingga 16 perangkat berbeda yang saling berkomunikasi satu sama lain. Perangkat ini harus dihubungkan melalui kabel DIN 5-pin, yang pada dasarnya adalah kabel dengan lima pin di dalam sebuah konektor. Sebagai detail, sangat umum menggunakan USB daripada DIN 5-pin, jika menggunakan USB kita harus membuat antarmuka USB-MIDI.

Tanpa basa-basi lagi, saya meninggalkan Anda dengan tautan di mana Anda dapat menemukan tutorial selangkah demi selangkah dengan banyak gambar deskriptif di mana kita dapat melakukan semua tindakan yang diperlukan untuk membuat pengontrol MIDI kita sendiri.

Artikel terkait:
Cara mengubah nama pengguna dan kata sandi Pi di Raspberry Pi kami

Cara membuat pengontrol MIDI Anda sendiri dengan Arduino

konektor midi

Banyak orang yang membutuhkan, karena alasan yang berbeda baik pribadi maupun profesional, untuk menggunakan file pengontrol MIDI kustom sepenuhnya Karena mungkin dan sebagai contoh, di beberapa titik dalam hidup Anda sebagai seniman, membeli pengontrol MIDI yang murah mungkin tidak memenuhi harapan atau kebutuhan Anda, sementara ketika saatnya tiba, memilih versi profesional mungkin berlebihan di kedua sumber daya keuangan Anda. kebutuhan, serta sejumlah besar fitur yang dapat mereka tawarkan.

Karena itu, hari ini saya ingin menunjukkan kepada Anda semua yang Anda butuhkan sehingga Anda dapat membuat pengontrol MIDI Anda sendiri yang menunjukkan semua yang Anda butuhkan untuk konstruksinya dan menawarkan perangkat lunak yang perlu Anda instal. Secara rinci, untuk proyek ini penggunaan papan Arduino sangat penting, pengontrol yang cukup kuat untuk melaksanakan tugas ini.

Cara membuat robot
Artikel terkait:
Cara membuat robot: 3 opsi berbeda

Apa itu pengontrol MIDI?

midi

Pada dasarnya, pengontrol MIDI bertanggung jawab, secara umum, untuk menghubungkan perangkat musik yang berbeda satu sama lain. Banyak instrumen yang menggabungkan antarmuka MIDI, meskipun ini harus sangat jelas karena banyak pengguna yang sering bingung, MIDI bukanlah file audio, tetapi sekumpulan instruksi yang sangat sederhana yang dapat diterima instrumen.untuk membuat kontrol yang berbeda atau pengaturan suara.

Di dalam MIDI ada dua jenis yang berbedaDi satu sisi kami memiliki yang disebut Kontrol Perubahan di mana ia memiliki nomor pengontrol dan nilai antara 0 dan 127. Berkat ini, pesan dapat dikeluarkan di mana parameter yang berbeda seperti volume atau nada dapat diubah. Instrumen berbeda yang menerima MIDI harus membawa manual yang menjelaskan saluran dan pesan mana yang diatur secara default dan bagaimana mengubahnya.

Di tempat kedua kami memiliki Program Change, serangkaian pesan yang pada gilirannya jauh lebih sederhana daripada yang membentuk Kontrol Perubahan. Jenis pesan ini digunakan untuk mengubah preset atau patch perangkat. Seperti di Change Control, bersama dengan instrumen Anda, pabrikan harus menyertakan manual yang menunjukkan preset mana yang diubah oleh pesan tertentu.

Suku Cadang yang Diperlukan untuk Membangun Kontroler MIDI Buatan Sendiri

Skema konektor midi

Untuk dapat membangun pengontrol MIDI Anda sendiri, Anda memerlukan serangkaian bagian sebagai tambahan, seperti yang telah kami sebutkan, papan Arduino. Sebelum melanjutkan, katakan saja kepada Anda bahwa mungkin, di masa depan karena Anda ingin mengembangkan proyek, Anda memerlukan lebih banyak hal, meskipun saat ini dengan beberapa bagian Anda akan memiliki banyak hal.

Kami membutuhkan kabel DIN wanita 5 kutub, 2 resistor 220 ohm, 2 sakelar sesaat, 2 resistor 10k ohm, kabel koneksi, papan sirkuit, kabel MIDI dan perangkat MIDI atau antarmuka USB. Hanya dengan potongan-potongan ini Anda dapat mulai, mengikuti langkah-langkah saya, untuk membuat pengontrol MIDI Anda sendiri.

Langkah pertama

Skema midi Arduino

Sebelum memulai, saya meninggalkan Anda gambar di mana Anda dapat melihat pin kabel MIDI Anda, dengan cara ini kami dapat mengidentifikasi pin dengan benar dan terutama di mana harus menghubungkan masing-masing pin. Secara garis besar, yang harus Anda lakukan pada titik ini adalah menghubungkan pin 5 kabel ke resistor 220 ohm dan dari sana ke Arduino Transmit 1, pin 4 ke resistor 220 ohm dan dari sana ke soket 5V Arduino sementara pin 2 harus dihubungkan ke koneksi Ground pengontrol Anda.

Setelah langkah ini selesai, Anda tidak memiliki diagram mendetail di foto yang terletak tepat di bawah garis-garis ini, sekarang saatnya untuk menghubungkan tombol. Ide di bagian ini adalah untuk mencapai, menggunakan pin digitalRead (mampu mendeteksi ketika tegangan yang mencapainya berubah) untuk dapat menggunakan transistor untuk mencapai, dengan menekan sebuah tombol. Untuk ini kita hanya perlu menggunakan tombol sehingga, sisi kiri kita menghubungkannya ke 5V, sisi kanan ke resistansi 220 ohm dan dari sana ke ground sementara, pada gilirannya, kita juga menghubungkan sisi kanan ke pin 6 Tombol kedua akan dipasang dengan cara yang sama meskipun, seperti yang Anda lihat di diagram, alih-alih pin 6 kami menghubungkannya ke 7.

Perangkat lunak yang digunakan untuk pengontrol midi rumah

Setelah kami selesai dengan semua perangkat keras, sekarang saatnya untuk menghubungkan instrumen kami dan menguji. Sebelum itu kita perlu memiliki file Antarmuka USB-MIDI dan kabel MIDI untuk menghubungkan papan, yang mengirim data, dengan komputer kita. Untuk mencapai ini, kami telah memilih pustaka MIDI v4.2 yang dibuat oleh orang-orang dari Forty Seven Effects yang harus kami instal di Arduino kami dan disertakan dalam proyek.

Dalam kasus komputer, kita memerlukan program yang mampu mengawasi semua data MIDI yang masuk dari Arduino. Untuk ini kami memiliki kemungkinan berbeda seperti MIDI Monitor (OS X), MIDI-OX (Windows) atau Kmidimon (Linux)

Untuk melakukan sedikit tes kita hanya perlu menghubungkan Arduino ke komputer kita dan menjalankan kode 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
}

Jika semuanya berjalan dengan baik, Anda dapat pergi ke tes tombol, jika tes ini tidak berhasil untuk Anda, Anda harus memastikan bahwa semua koneksi sudah benar, rangkaiannya persis sama dengan diagram sebelumnya, rangkaian terhubung ke antarmuka USB-MIDI dengan kabel MIDI, kabel port MIDI terhubung dengan benar, kabel MIDI terhubung ke input antarmuka USB-MIDI, papan Arduino terhubung dengan benar ke jaringan listrik dan memiliki daya yang cukup ...

Menguji bahwa tombol berfungsi dengan benar

Sebelum melanjutkan memberi makan program kita dengan fungsi dan kode baru yang bisa membuat kita tersesat, ada baiknya berhenti sejenak dan uji apakah tombol tersebut berfungsi dengan baik. Untuk mereka kita harus memuat kode 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);
}
}

}

Kode ini hanya perlu dikompilasi dan dijalankan sehingga, dengan kabel USB terhubung, program memberi tahu kita jika ada tombol yang ditekan.

Kami membuat pengontrol MIDI buatan sendiri

Setelah kami menjalankan tes ini, sekarang saatnya untuk merakit pengontrol MIDI kami sendiri untuk itu, Anda hanya perlu mengompilasi kode 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 detail, beri tahu Anda bahwa Anda tidak dapat menggunakan perintah Serial.println () dengan output MIDI saat ini, jika Anda ingin menampilkan beberapa jenis pesan di komputer, ubah saja:

midiOut.sendControlChange(42,127,1);

oleh:

midiOut.sendControlChange(value, channel);

dimana nilai dan saluran harus memiliki nilai yang diinginkan yang ingin Anda tampilkan.

Contoh operasi:


4 komentar, tinggalkan punyamu

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   alfred dijo

    Arduino menawarkan banyak kemungkinan untuk mengerjakan proyek Anda sendiri https://www.juguetronica.com/arduino . Salah satu hal terbaiknya adalah Anda dapat memulai tanpa menjadi ahli dan terus belajar, sehingga memotivasi diri Anda untuk menjadi otodidak.

  2.   Danel Roman dijo

    Salam.

    Saya mencoba melakukan tutorial yang luar biasa ini… tetapi #includes belum lengkap….

    Bisakah Anda memberi tahu saya mana yang diperlukan?

    Terima kasih banyak.

  3.   Uel dijo

    Hola.
    Saya ingin membuat modul drum elektronik dengan mengganti tombol dengan input jack yang akan menerima sinyal piezoelektrik.
    Apakah mungkin melakukannya?

  4.   Eduardo Valenzuela dijo

    Tolong jika Anda dapat memberikan kode ini, saya tertarik dengan proyek ini.