Tartalomjegyzék:
- Kellékek
- 1. lépés: A kenyértábla kiépítése
- 2. lépés: A vázlat feltöltése
- 3. lépés: A szőrtelen MIDI és a belső MIDI hurkok megértése
- 4. lépés: Csatlakozás a DAW -hoz
- 5. lépés: Játssz
Videó: Alap Arduino MIDI vezérlő: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Bevezető:
Új vagyok az Arduino -val való együttműködésben, de remélem, hogy bővíthetem tudásomat mások tanításával és visszajelzésekkel. Ez egy nagyon egyszerű MIDI vezérlő 4 gombbal és potenciométerrel. A projekt vázlata így néz ki:
1. Építse ki a kenyértáblát
2. Töltse fel a vázlatot az Arduino -ba
3. Ismerje meg a szőrtelen MIDI -t és a belső MIDI -hurkot (loopbe1)
4. irányítsa a MIDI -t DAW -ra (Ableton)
Kellékek
1 db Arduino Mega 2560
1 x kenyértábla
1 x USB kábel
1 x potenciométer
4 x tapintó gomb
4 x 120 Ohm ellenállás
14 x jumper kábel a kenyérlaphoz
1. lépés: A kenyértábla kiépítése
Csatlakoztassa a kenyértáblát, hogy minden alkatrész megfeleljen a fenti 1. képnek. Minden gombnak ugyanúgy kell kinéznie, mint a 2. képnek. A gombbemenetek 2, 3, 4 és 5 az Arduino -n, és a potenciométer középső csapja az ANALOG A0 bemenethez van csatlakoztatva.
2. lépés: A vázlat feltöltése
Másolja ki és illessze be az alábbi kódot az Arduino IDE -be. Válassza ki a megfelelő táblát az "eszközök" alatt, és töltse fel a vázlatot az Arduino -ba.
byte noteON = 144; // megjegyzés a commandbyte jegyzeten; // tárhely az éppen játszott hanghoz int gombPin1 = 2; int gombPin2 = 3; int gombPin3 = 4; int gombPin4 = 5; int potPin = A0; boolean currentState = LOW; // stroke az aktuális gombállapothoz boolean lastState = LOW; // tároló az utolsó gomb állapotához void setup () {pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); // ezúttal INPUT Serial.begin (9600); // inicializáljuk a soros kapcsolatot} void loop () {int PotVal = analogRead (potPin); bájt sebesség = térkép (PotVal, 0, 1023, 0, 127); currentState = digitalRead (buttonPin1); if (currentState == HIGH && lastState == LOW) {MIDImessage (noteON, 60, velocity); // kapcsolja be a 60. jegyzetet 127 sebességkésleltetéssel (200); // a gomb lekapcsolásának nyers formája} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // a 60. jegyzet kikapcsolása késleltetés (2); // a gombok visszavonásának nyers formája} lastState = currentState; currentState = digitalRead (buttonPin2); if (currentState == HIGH && lastState == LOW) {// ha a gombot éppen megnyomták MIDImessage (noteON, 61, sebesség); // kapcsolja be a 60. jegyzetet 127 sebességkésleltetéssel (200); // nyers gombforma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // kapcsolja ki a 60 -as jegyzetet a késleltetésből (2); // a gombok visszavonásának nyers formája} lastState = currentState; currentState = digitalRead (buttonPin3); if (currentState == HIGH && lastState == LOW) {// ha a gombot éppen megnyomták MIDImessage (noteON, 62, sebesség); // kapcsolja be a 60. jegyzetet 127 sebességkésleltetéssel (200); // nyers gombforma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // kapcsolja ki a 60. jegyzet kikapcsolási késleltetését (2); // a gombok visszavonásának nyers formája} lastState = currentState; currentState = digitalRead (buttonPin4); if (currentState == HIGH && lastState == LOW) {// ha a gombot éppen megnyomták MIDImessage (noteON, 63, sebesség); // kapcsolja be a 60. jegyzetet 127 sebességkésleltetéssel (200); // nyers gombforma debouncing} else if (currentState == LOW && lastState == HIGH) {MIDImessage (noteON, 60, 0); // kapcsolja ki a 60 -as jegyzetet a késleltetésből (2); // a gombok visszavonásának nyers formája} lastState = currentState; } // MIDI üzenet küldése void MIDImessage (bájtparancs, bájtadatok1, bájtadatok2) {Serial.write (parancs); Serial.write (adat1); Soros.írás (adat2); }
Még mindig nagyon kezdő vagyok a kódírásban általában….. akik kicsit több tapasztalattal rendelkeznek, valószínűleg megtisztíthatják ezt…
3. lépés: A szőrtelen MIDI és a belső MIDI hurkok megértése
Az Arduino -nak át kell futnia egy soros hídon, mint például a Hairless MIDI, majd egy belső MIDI -hurkon, például a loopbe1 -en (vagy az IAC buszon Mac -en).
Megjegyzés: nem tölthet fel vázlatot az Arduino -ba, amíg a szőrtelen MIDI soros hídhoz van csatlakoztatva.
Válassza ki az Arduino -t a szőrtelen MIDI soros portban, és a loopbe1 vagy IAC buszt a MIDI kimenetben.
Megjegyzés: győződjön meg arról, hogy a némítás nincs bekapcsolva a loopbe1 használatakor.
4. lépés: Csatlakozás a DAW -hoz
Ha jelzést kap a Hairless MIDI alkalmazáshoz, amikor megnyom egy gombot a kenyértáblán (a fények villogni kezdenek), akkor képesnek kell lennie arra, hogy MIDI adatokat küldjön egy DAW -nak. Abletont használtam, de minden DAW -nak működnie kell. Győződjön meg arról, hogy a belső MIDI -hurok (loopbe1) engedélyezve van a DAW -beállításokban (az Ableton -ban szeretné, hogy a "track" engedélyezve legyen). Ezután válassza ki az egyik MIDI sáv bemenetét a MIDI hurokba (loopbe1), a fenti képen látható módon.
5. lépés: Játssz
A gombok most úgy fognak működni, mint bármely más MIDI vezérlő! A potenciométer megváltoztatja a DAW -hoz küldött jegyzetek sebességét. A fenti (nagyon sötét…) videó egy zongorahangot mutat működés közben!
Ajánlott:
HC-05 (bluetooth) Modul otthoni automatizáláshoz Alap: 3 lépés
HC-05 (bluetooth) modul otthoni automatizáláshoz Alapvető: A legutóbbi projektemben nyomógombbal irányítottam a LED-et, de ebben a projektben a PUSH BUTTON-ot HC-05 modulra cseréltem. Erősen javaslom, hogy mielőtt végigmenne ezeken a projekteken folytatja ezt a projektet. Minden részletet megtalálsz a
Alap elektronika: 20 lépés (képekkel)
Alapvető elektronika: Az alapvető elektronikával való kezdés könnyebb, mint gondolná. Ez az Instructable remélhetőleg demisztifikálja az elektronika alapjait, hogy bárki, akit érdekel az áramkörök építése, a földre kerülhessen. Ez egy gyors áttekintés a
Alap Arduino fényerősségű lámpa!: 5 lépés
Alapvető Arduino fényintenzitású lámpa!: A mai kör egy szórakoztató kis Arduino projekt a karanténhoz! Ez az áramkör két érdekes anyagra összpontosít; a relé SPDT & Fotorezisztor. Ezenkívül a relé célja, hogy egy áramkör kapcsolója legyen elektronikusan. Ezenkívül a fotózás
IoT alap platform RaspberryPi -vel, WIZ850io: Platform eszközillesztő: 5 lépés (képekkel)
IoT alapplatform RaspberryPi -vel, WIZ850io: Platform eszközillesztő: Ismerem a RaspberryPi IoT platformot. A közelmúltban a WIZnet bejelentette a WIZ850io -t. Tehát egy RaspberryPi alkalmazást valósítottam meg Ethernet SW módosítással, mert könnyen tudok kezelni egy forráskódot. A RaspberryPi segítségével tesztelheti a platform eszközillesztőjét
Forrasztás - Alap forrasztási útmutató: 5 lépés
A forrasztás módja - Alap forrasztási útmutató: A forrasztás két fém összekapcsolása a forrasztópáka segítségével, forrasztó segítségével, megbízható elektromos kötés kialakítására. Ez egy alapvető forrasztási útmutató kezdőknek a forrasztópáka kézi forrasztásáról. Remélem, hogy lesz