Tạo bộ điều khiển MIDI của riêng bạn với Arduino

MIDI

Nếu bạn là một người yêu âm nhạc hay trực tiếp là một nhạc công nghiệp dư hay chuyên nghiệp, chắc hẳn trong nhà bạn đã tích lũy được một bộ sưu tập nhạc cụ đồ sộ. Để làm cho tất cả những hỗn hợp này trở nên hoàn hảo, tốt nhất là bạn nên có Bộ điều khiển MIDI. Thật không may, những loại đối tượng này thường khá đắt tiền nên một người không có quá nhiều nguồn lực khó có thể tiếp cận với mọi thứ họ có thể cung cấp.

Để hiểu rõ hơn bộ điều khiển MIDI là gì, hãy cho bạn biết rằng từ MIDI đến từ Giao diện kỹ thuật số cho nhạc cụ, tức là một loại bộ điều khiển giúp các thiết bị âm nhạc điện tử có thể giao tiếp với nhau. Ví dụ: nếu bạn có bàn phím điện tử ở nhà, nhiều khả năng nó có giao diện MIDI. Trước khi tiếp tục tiến về phía trước, mặc dù thực tế là có một số chi tiết kỹ thuật nhất định có thể khiến bạn tin rằng khác, bạn phải rất rõ ràng rằng MIDI không phải là âm thanh.

Tạo bộ điều khiển MIDI của riêng bạn với hướng dẫn đơn giản này

Một khi chúng tôi đã rõ về điều này, chắc chắn bạn sẽ dễ dàng hiểu được rằng MIDI chỉ là một tập lệnh có khả năng hỗ trợ lên đến 16 kênh độc lập, có nghĩa là có thể có tới 16 thiết bị khác nhau giao tiếp độc lập với nhau. Các thiết bị này phải được kết nối thông qua cáp DIN 5 chân, về cơ bản là cáp có năm chân bên trong một đầu nối. Chi tiết, việc sử dụng USB thay vì DIN 5 chân là khá phổ biến, trường hợp sử dụng USB chúng ta phải tạo giao diện USB-MIDI.

Không cần thêm lời khuyên nào nữa, tôi để lại cho bạn liên kết nơi bạn có thể tìm thấy hướng dẫn từng bước với rất nhiều hình ảnh mô tả nơi chúng tôi có thể thực hiện tất cả các hành động cần thiết để tạo bộ điều khiển MIDI của riêng mình.

Bài viết liên quan:
Cách thay đổi tên người dùng và mật khẩu Pi trên Raspberry Pi của chúng tôi

Cách tạo bộ điều khiển MIDI của riêng bạn với Arduino

kết nối midi

Nhiều người cần, vì những lý do cá nhân và nghề nghiệp khác nhau, sử dụng bộ điều khiển MIDI hoàn toàn tùy chỉnh Vì có lẽ và như một ví dụ, tại một thời điểm nào đó trong cuộc đời làm nghệ sĩ của bạn, việc mua một bộ điều khiển MIDI rẻ tiền có thể không đáp ứng được kỳ vọng hoặc nhu cầu của bạn trong khi, khi đến thời điểm, việc lựa chọn một phiên bản chuyên nghiệp có thể thừa cả về nguồn tài chính của bạn nhu cầu, cũng như số lượng lớn các tính năng mà họ có thể cung cấp.

Do đó, hôm nay tôi muốn cho bạn thấy mọi thứ bạn cần để bạn có thể tạo bộ điều khiển MIDI của riêng mình, chỉ ra mọi thứ cần thiết cho việc xây dựng nó và cung cấp cho bạn phần mềm mà bạn sẽ cần cài đặt. Như một chi tiết, đối với dự án này, việc sử dụng bảng Arduino là điều cần thiết, một bộ điều khiển đủ mạnh để thực hiện nhiệm vụ này.

Bài viết liên quan:
Cách tạo rô bốt: 3 tùy chọn khác nhau

Bộ điều khiển MIDI là gì?

midi

Về cơ bản, bộ điều khiển MIDI có nhiệm vụ kết nối các thiết bị âm nhạc khác nhau với nhau. Nhiều nhạc cụ có kết hợp giao diện MIDI, mặc dù điều này phải rất rõ ràng vì có nhiều người dùng thường nhầm lẫn, MIDI không phải là một tệp âm thanh, mà là một tập hợp các hướng dẫn rất đơn giản mà một nhạc cụ có thể nhận được để thực hiện điều khiển khác nhau hoặc cài đặt âm thanh.

Bên trong MIDI có hai loại khác nhauMột mặt, chúng ta có một điều khiển được gọi là Điều khiển thay đổi, nơi nó có số bộ điều khiển và giá trị từ 0 đến 127. Nhờ đó, các thông báo có thể được đưa ra trong đó các thông số khác nhau như âm lượng hoặc âm báo có thể được thay đổi. Các nhạc cụ khác nhau chấp nhận MIDI nên mang theo sách hướng dẫn giải thích kênh và thông báo nào được đặt theo mặc định và cách thay đổi chúng.

Ở vị trí thứ hai, chúng tôi có Thay đổi chương trình, một loạt các thông báo đơn giản hơn nhiều so với các thông báo tạo nên Kiểm soát Thay đổi. Những loại thông báo này được sử dụng để thay đổi cài đặt trước hoặc bản vá của thiết bị. Như trong Kiểm soát Thay đổi, cùng với thiết bị của bạn, nhà sản xuất phải bao gồm một sách hướng dẫn cho biết những cài đặt trước nào được thay đổi bởi một thông báo cụ thể.

Các bộ phận cần thiết để xây dựng bộ điều khiển MIDI tự chế của riêng bạn

Sơ đồ kết nối Midi

Để có thể xây dựng bộ điều khiển MIDI của riêng bạn, bạn sẽ cần một loạt các mảnh bổ sung, như chúng tôi đã đề cập, cho một bảng Arduino. Trước khi tiếp tục, chỉ nói với bạn rằng có lẽ, trong tương lai vì bạn muốn mở rộng dự án, bạn cần nhiều thứ hơn, mặc dù lúc này với một vài mảnh bạn sẽ có rất nhiều.

Chúng ta sẽ cần một cáp DIN cái 5 cực, 2 điện trở 220 ohm, 2 công tắc tạm thời, 2 điện trở 10k ohm, dây kết nối, bảng mạch, cáp MIDI và thiết bị MIDI hoặc giao diện USB. Chỉ với những phần này, bạn có thể bắt đầu, theo các bước của tôi, để tạo bộ điều khiển MIDI của riêng bạn.

Bước đầu tiên

Sơ đồ Arduino midi

Trước khi bắt đầu, tôi để lại cho bạn một hình ảnh nơi bạn có thể nhìn thấy các chân của cáp MIDI, bằng cách này, chúng tôi có thể xác định chính xác các chân và đặc biệt là nơi kết nối từng chân. Nói chung, tất cả những gì bạn phải làm tại thời điểm này là kết nối chân 5 của cáp với điện trở 220 ohm và từ đó đến Bộ phát Arduino 1, chân 4 với điện trở 220 ohm và từ đó đến ổ cắm 5V của Arduino trong khi chân 2 phải được kết nối với kết nối Nối đất của bộ điều khiển của bạn.

Sau khi thực hiện xong bước này mà bạn chưa có sơ đồ chi tiết trong ảnh nằm ngay dưới các dòng này thì đã đến lúc kết nối các nút. Ý tưởng trong phần này là đạt được, sử dụng chân digitalRead (có khả năng phát hiện khi điện áp đạt đến nó thay đổi) để có thể sử dụng bóng bán dẫn để đạt được, chỉ với một nút nhấn. Đối với điều này, chúng tôi chỉ phải sử dụng một nút để, bên trái của nó, chúng tôi kết nối nó với 5V, bên phải với điện trở 220 ohm và từ đó tiếp đất trong khi lần lượt, chúng tôi cũng kết nối bên phải với chân 6 Nút thứ hai sẽ được cài đặt theo cách tương tự, mặc dù như bạn có thể thấy trong sơ đồ, thay vì chân 6, chúng tôi kết nối nó với 7.

Phần mềm sử dụng cho bộ điều khiển midi gia đình

Khi chúng tôi đã hoàn thành tất cả các phần cứng, đã đến lúc kết nối thiết bị của chúng tôi và kiểm tra. Trước đó, chúng ta cần phải có một Giao diện USB-MIDI và cáp MIDI để kết nối bo mạch đang gửi dữ liệu với máy tính của chúng tôi. Để đạt được điều này, chúng tôi đã chọn thư viện MIDI v4.2 được tạo bởi những người từ Forty Seven Effects mà chúng tôi phải cài đặt trên Arduino của mình và đưa vào dự án.

Trong trường hợp của máy tính, chúng tôi sẽ cần một chương trình có khả năng giám sát tất cả dữ liệu MIDI đến nó từ Arduino. Đối với điều này, chúng tôi có các khả năng khác nhau như MIDI Monitor (OS X), MIDI-OX (Windows) hoặc Kmidimon (Linux)

Để thực hiện một bài kiểm tra nhỏ, chúng ta chỉ cần kết nối Arduino với máy tính của mình và thực thi đoạn mã sau:

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

Nếu mọi thứ đã diễn ra tốt đẹp thì bạn có thể tiến hành kiểm tra nút bấm, trường hợp kiểm tra này bạn vẫn chưa thực hiện được bạn phải đảm bảo rằng tất cả các kết nối đều chính xác, mạch điện giống hệt như sơ đồ trước đó, mạch điện. được kết nối với giao diện USB-MIDI bằng cáp MIDI, cáp cổng MIDI được kết nối chính xác, cáp MIDI được kết nối với đầu vào của giao diện USB-MIDI, bảng Arduino được kết nối chính xác với mạng điện và nó có đủ điện ...

Kiểm tra xem các nút có hoạt động chính xác không

Trước khi tiếp tục cung cấp cho chương trình của chúng tôi các chức năng và mã mới mà chúng tôi có thể bị mất, bạn nên dừng lại một chút và kiểm tra xem các nút có hoạt động bình thường không. Đối với chúng, chúng ta phải tải mã sau:

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

}

Mã này chỉ cần được biên dịch và thực thi để khi kết nối cáp USB, chương trình sẽ cho chúng ta biết nếu có bất kỳ nút nào đã được nhấn.

Chúng tôi tạo bộ điều khiển MIDI tự chế của chúng tôi

Khi chúng tôi đã chạy các thử nghiệm này, đã đến lúc lắp ráp bộ điều khiển MIDI của riêng chúng tôi cho điều đó, bạn sẽ chỉ phải biên dịch mã sau:

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

Chi tiết cho bạn biết rằng bạn không thể sử dụng lệnh Serial.println () với đầu ra MIDI lần này, nếu bạn muốn hiển thị một số loại thông báo trên máy tính, chỉ cần thay đổi:

midiOut.sendControlChange(42,127,1);

bởi:

midiOut.sendControlChange(value, channel);

trong đó giá trị và kênh phải có các giá trị mong muốn mà bạn muốn hiển thị.

Ví dụ hoạt động:


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

4 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Alfred dijo

    Arduino cung cấp cho bạn nhiều khả năng để thực hiện các dự án của riêng bạn https://www.juguetronica.com/arduino . Một trong những điều tốt nhất là bạn có thể bắt đầu mà không cần trở thành một chuyên gia và tiếp tục học hỏi, do đó thúc đẩy bản thân tự học.

  2.   Danel Roman dijo

    Chúc mừng.

    Tôi đang cố gắng thực hiện hướng dẫn tuyệt vời này… nhưng #includes vẫn chưa hoàn thành….

    Bạn có thể cho tôi biết những cái nào là cần thiết?

    Cám ơn rất nhiều.

  3.   Uell dijo

    Hey.
    Tôi muốn tạo một mô-đun trống điện tử bằng cách thay thế các nút bằng đầu vào giắc cắm mà tín hiệu áp điện sẽ đến.
    Liệu nó có thể làm được không?

  4.   Eduardo Valenzuela dijo

    Xin vui lòng nếu bạn có thể cung cấp cho bao gồm mã này, tôi quan tâm đến dự án này.