Үндсэн Arduino MIDI хянагч: 5 алхам
Үндсэн Arduino MIDI хянагч: 5 алхам
Anonim
Үндсэн Arduino MIDI хянагч
Үндсэн Arduino MIDI хянагч

Танилцуулга:

Би Arduino -той хамтарч ажиллаж байгаа боловч бусдад зааж, санал хүсэлтийг хүлээн авч мэдлэгээ өргөжүүлнэ гэж найдаж байна. Энэ бол 4 товчлуур, потенциометр бүхий маш энгийн MIDI хянагч юм. Энэ төслийн тойм дараах байдлаар харагдаж байна.

1. Талхны хавтанг бүтээгээрэй

2. Sketch -ийг Arduino дээр байршуулна уу

3. Үсгүй MIDI ба дотоод MIDI давталтыг ойлгох (loopbe1)

4. MIDI -ийг DAW руу чиглүүлэх (Ableton)

Хангамж

1 x Arduino Mega 2560

1 х талхны самбар

1 x USB кабель

1 х потенциометр

4 х харьцах товчлуур

4 x 120 Ом эсэргүүцэл

Талхны самбарт зориулсан 14 x холбогч кабель

Алхам 1: Талхны самбарыг бий болгох

Талхны самбарыг бий болгох
Талхны самбарыг бий болгох
Талхны самбарыг бий болгох
Талхны самбарыг бий болгох

Талхны самбараа холбоно уу, ингэснээр бүх бүрэлдэхүүн хэсгүүд дээрх зураг 1 -тэй таарч байна. Товчлуур бүр 2 -р зурагтай ижил байх ёстой. Товчлуурын оролт нь Arduino дээр 2, 3, 4, 5 байх ба потенциометрийн дунд зүү нь ANALOG оролт A0 -т холбогдсон байна.

Алхам 2: Ноорогыг байршуулах

Эскизийг байршуулж байна
Эскизийг байршуулж байна

Доорх кодыг хуулж Arduino IDE руу оруулна уу. "Багаж хэрэгсэл" хэсэгт байгаа зөв самбарыг сонгоод ноорогоо Arduino дээр байршуулна уу.

byte noteON = 144; // commandbyte note дээрх тэмдэглэл; // одоогоор тоглож буй санах ойн int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5; int potPin = A0; boolean currentState = LOW; // одоогийн товчлуурын төлөвт зориулсан boolean lastState = LOW; // сүүлийн товчлуурын төлөвийг хүчингүй болгох тохиргоо () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // энэ удаад бид зүүг INPUT Serial.begin (9600) гэж тохируулах болно; // Serial холболтыг эхлүүлэх} void loop () {int PotVal = analogRead (potPin); байтын хурд = газрын зураг (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, хурд); // 127 тэмдэглэлийг 127 хурдны хоцролттой асаах (200); // товчлуурыг задлах бүдүүлэг хэлбэр} if if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // note 60 -ийг унтраах (2); // товчлуурыг задлах бүдүүлэг хэлбэр} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// хэрэв товчлуурыг дөнгөж дарсан бол MIDImessage (noteON, 61, хурд); // 127 тэмдэглэлийг 127 хурдны хоцролттой (200) асаах; // товчлуурын бүдүүлэг хэлбэр debuninging} if if (currentState == LOW &&STost == HIGH) {MIDImessage (noteON, 60, 0); // note 60 off delay (2); // товчлуурыг задлах бүдүүлэг хэлбэр} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// хэрэв товчлуурыг дөнгөж дарсан бол MIDImessage (noteON, 62, хурд); // 127 хурдны хоцролттой (200) 60 -р тэмдэглэлийг асаана уу; // товчлуурын бүдүүлэг хэлбэр debuninging} if if (currentState == LOW &&STost == HIGH) {MIDImessage (noteON, 60, 0); // note 60 off delay (2); // товчлуурыг задлах бүдүүлэг хэлбэр} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// хэрэв товчлуурыг дөнгөж дарсан бол MIDImessage (noteON, 63, хурд); // 127 хурдны хоцролттой (200) 60 тэмдэглэлийг асаана уу; // товчлуурын бүдүүлэг хэлбэр debuninging} if if (currentState == LOW &&STost == HIGH) {MIDImessage (noteON, 60, 0); // note 60 off delay (2); // товчлуурыг задлах бүдүүлэг хэлбэр} lastState = currentState; } // MIDI мессежийг хүчингүй болгох MIDImessage (байтын тушаал, байтын өгөгдөл1, байтын өгөгдөл2) {Serial.write (тушаал); Serial.write (data1); Serial.write (data2); }

Би ерөнхийдөө код бичихэд маш шинэлэг хэвээр байна … … арай илүү туршлагатай хүмүүс үүнийг цэвэрлэж магадгүй юм …

Алхам 3: Үсгүй MIDI ба дотоод MIDI гогцоог ойлгох

Үсгүй MIDI ба дотоод MIDI давталтуудыг ойлгох
Үсгүй MIDI ба дотоод MIDI давталтуудыг ойлгох
Үсгүй MIDI ба дотоод MIDI гогцоог ойлгох
Үсгүй MIDI ба дотоод MIDI гогцоог ойлгох
Үсгүй MIDI ба дотоод MIDI давталтуудыг ойлгох
Үсгүй MIDI ба дотоод MIDI давталтуудыг ойлгох

Arduino нь Hairless MIDI гэх мэт цуваа гүүрээр дамжиж, loopbe1 (эсвэл Mac -д зориулсан IAC автобус) гэх мэт дотоод MIDI давталтаар дамжих шаардлагатай.

Анхаарна уу: та үсийг MIDI цуваа гүүртэй холбосон байхад ноорог зургийг Arduino руу оруулах боломжгүй.

Үсгүй MIDI цуваа порт дээр Arduino -г сонгоод MIDI дээр loopbe1 эсвэл IAC Bus -ийг сонгоно уу.

Анхаарна уу: loopbe1 -ийг ашиглах үед дууг асаахгүй байгаа эсэхийг шалгаарай.

Алхам 4: DAW -тай холбогдох

Таны DAW -тэй холбогдож байна
Таны DAW -тэй холбогдож байна

Хэрэв та талбар дээрх товчлуурыг дарахад Үсгүй MIDI програм руу дохио ирж байгаа бол (гэрэл асах болно) та MIDI өгөгдлийг DAW руу илгээх боломжтой байх ёстой. Би Аблетон ашиглаж байсан боловч ямар ч DAW ажиллах ёстой. Таны дотоод MIDI давталт (loopbe1) таны DAW тохиргоонд идэвхжсэн эсэхийг шалгаарай (Аблетон дээр та "track" -ийг идэвхжүүлэхийг хүсч байна). Дараа нь дээрх зурагт үзүүлсэн шиг MIDI давталтын (loopbe1) өөрийн MIDI трекийн оролтын аль нэгийг сонгоно уу.

Алхам 5: Тогло

Image
Image

Одоо товчлуурууд бусад MIDI хянагчийн нэгэн адил ажиллах болно! Потенциометр нь DAW руу илгээж буй тэмдэглэлийн хурдыг өөрчлөх болно. Дээрх (маш харанхуй …) видео нь төгөлдөр хуурын дууг ажиллуулж байгааг харуулж байна!

Зөвлөмж болгож буй: