Cuprins:

Arduino MIDI Rhythm Section Sequencer: 8 pași (cu imagini)
Arduino MIDI Rhythm Section Sequencer: 8 pași (cu imagini)

Video: Arduino MIDI Rhythm Section Sequencer: 8 pași (cu imagini)

Video: Arduino MIDI Rhythm Section Sequencer: 8 pași (cu imagini)
Video: Arduino 64 Step Sequencer cu hardware minim, adaptat de la Drum Sequencer 2024, Noiembrie
Anonim
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer

A avea o mașină de tobe software bună este ușor și ieftin astăzi, dar folosirea unui mouse mă distrează. Acesta este motivul pentru care mi-am dat seama ce inițial se intenționa ca un secvențial de tambur MIDI hardware cu 64 de pași capabil să declanșeze până la 12 elemente de tambur (părți) diferite, dar apoi am evoluat într-o secvență de secțiune ritmică …

… iată-ne!

Pasul 1: Cum funcționează

Acest hardware nu poate genera sunete pe cont propriu, ci doar secvența hardware extern prin MIDI. Acest lucru înseamnă că veți avea nevoie de un generator de sunet al sunetelor dvs. de tambur (un sampler sau un sintetizator de tambur sau un PC cu software-ul dvs. de tambur preferat sau orice preferați) care să poată fi declanșat prin mesaje MIDI note-on.

Este compus în principal dintr-o matrice de butoane 4 x 4 (cu LED-uri), câte una pentru fiecare pas al unei bare. Întreaga secvență de 64 de pași este formată din 16 pași înmulțiți 4 bare. Fiecare pas este 1/16 dintr-o notă.

Există două moduri de operare: modul live și modul de editare.

În modul de editare, puteți edita secvența pas cu pas, definind ce tambur va fi redat în fiecare pas.

Instrumentul dvs. hardware extern („tambur”) este declanșat prin trimiterea unui mesaj MIDI „nota pe” pentru diferite „numere de note MIDI” pe numărul canalului „10”. În mod implicit, aceste numere de note sunt

tambur # 1 (adică lovitură) -> numărul de notă MIDI "60"

tambur # 2 (adică capcană) -> numărul notei MIDI "62"

tambur # 3 (adică clap) -> numărul de notă MIDI "64"

tambur # 4 (adică Hihat) -> numărul notei MIDI "65"

tambur # 5 -> numărul notei MIDI "67"

tambur # 6 -> numărul notei MIDI "69"

tambur # 7 -> numărul notei MIDI "71"

tambur # 8 -> numărul notei MIDI "72"

tambur # 9 -> numărul de notă MIDI "74"

tambur # 10 -> numărul notei MIDI "76"

tambur # 11 -> numărul MIDI notă "77"

tambur # 12 -> numărul notei MIDI "79"

Dacă preferați, puteți schimba aceste valori (și canalul MIDI) în schiță.

În modul live, apăsând butoanele de pas, puteți reda live tobe asociate fiecărui pas, trimițând mesaje MIDI prin serial. Puteți înregistra în direct apăsările butoanelor și / sau mesajele MIDI primite.

Atât în modul live, cât și în modul de editare, puteți dezactiva (sau dezactiva) sunetul unei tobe, „rulați” toba activă în prezent și vă puteți „balansa” secvența.

Secțiunea de ritm?

Majoritatea secvențierelor de tambur sunt pur și simplu declanșatoare de piese de tambur MIDI, cu un număr fix de note MIDI pentru fiecare sunet de tambur. În acest caz, avem un „secvențial de secțiune ritmică” mai mult decât un „secvențier de tambur” pur, deoarece puteți chiar să secvențați sintetizatoare.

Citiți GHIDUL DE ÎNCEPERE RAPIDĂ pentru mai multe detalii și o listă completă de caracteristici.

Pasul 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Acest proiect este realizat în jurul unei plăci Arduino DUE. Am încercat să mențin hardware-ul cât mai simplu posibil, adică evitând utilizarea driverelor cu LED-uri. Arduino DUE nu este probabil cea mai potrivită placă pentru a gestiona o grămadă de LED-uri fără un driver LED datorită limitelor sale de curent de ieșire (de la 5 mA la 15 mA, în funcție de pin), dar este cel mai rapid Arduino și sincronizarea este totul atunci când se tratează cu secvențiale. Deci, rețineți că ACEASTA configurație hardware va împinge probabil Arduino DUE la limitele sale și ar putea să o deterioreze pe termen lung.

Acestea fiind spuse, hardware-ul este în principal un 16 butoane, 16 LED-uri (unul pentru fiecare pas) secvențiator cu 5 butoane suplimentare pentru funcții și 3 potențiometre. Am adăugat și un LED roșu după ce am adăugat o funcție de înregistrare live.

Iată lista materialelor:

- 1x Arduino DUE

- 16 butoane momentane, fără blocare, cu LED-uri integrate (puteți utiliza LED-uri externe, dacă preferați, dar nu uitați să utilizați LED-uri de consum redus !!)

- 1x LED roșu (putere redusă!)

- 5 butoane momentane, fără blocare

- 3x 10K tur unic, liniar, potențiometre

- Mufă mono jack de 3x 6,5 mm montată pe panou

- 1 x carcasă din plastic (am folosit o carcasă de 190x140x70 mm)

- 2x conector mufă DIN femelă cu 5 pini (MIDI)

- 1x placă de perfecțiune cu două fețe de 70x90 mm

- 2x bandă antet cu un singur rând cu știfturi cu 40 de pini (2,54 mm), mai bine dacă este placată cu aur

- 1 optocuplator H11L1

- 1x diodă 1N4148

- Rezistențe de 23x 1000 ohmi

- 3x rezistențe de 220 ohmi

- 2x tranzistoare pnp BC547

… sârmă de lipit, câteva cabluri, stație de lipit, un instrument de găurit … și timp liber:)

Vă rugăm să rețineți că butoanele din imagini au fost înlocuite cu un alt tip de butoane (chiar mai ieftine …) din cauza salturilor revoltătoare …

Timpul necesar pentru finalizarea proiectului: 8 - 10 ore

AVERTISMENT: Purtați întotdeauna ochelari și mănuși de protecție în timpul găuririi! Flăcările de materiale fierbinți pot fi proiectate spre ochi sau pot intra în contact cu pielea și pot provoca arsuri sau chiar mai grave daune pentru dvs. sau pentru persoanele din jur

Pasul 3: Cabluri

Cablaje
Cablaje
Cablaje
Cablaje
Cablaje
Cablaje

Butoanele pas sunt conectate direct la pinii Arduino de la 22 (pasul 1) la 37 (pasul16). Masa butoanelor este în lanț și conectată la masa Arduino DUE. Nu este necesar ca rezistențele de tragere sau de derulare să fie, deoarece rezistențele de tragere integrate Arduino sunt activate software (vezi schița).

Același lucru este valabil și pentru cele 5 butoane suplimentare (pinii Arduino 2, 3, 4, 5 și 6), utilizate pentru alte funcții decât pașii. De asemenea, am plasat un conector femelă de 6,5 mm în paralel cu butonul „start” pentru a putea reda și opri secvențele mele de la distanță.

LED-urile sunt conectate la pământ (lanțul margarete) și pinii Arduino DUE de la 38 (pasul 1) la 53 (pasul 16) în serie cu un rezistor de 1K ohm fiecare pentru a limita scurgerea de curent și pentru a păstra microcontrolerul.

Potențiometrele sunt conectate așa cum se arată în imaginea atașată. Observați că tensiunea de referință este de 3,3V, nu de 5V. Intrările utilizate sunt A0, A1 și A2.

De asemenea, am implementat două ieșiri de declanșare pentru semnale de arpegiu, cum ar fi cele necesare pentru arpegierea sintetizatorului vechi al anilor 80, cum ar fi Korg Polysix și Roland Juno 6/60. Acestea sunt conectate la pinii A3 și A4, dar puteți utiliza pinii digitali dacă preferați să fiți semnale digitale. În cazul în care urmează să secvențiați un sintetizator compatibil cu semnalele V-Trig (declanșator de tensiune), va fi suficient un rezistor de serie de 1k ohm pentru a reduce scurgerea de curent; în cazul unui sintetizator S-Trig (switch trigger), veți avea nevoie de un circuit simplu de comutare pnp (a se vedea schema atașată).

Circuitele MIDI IN și OUT sunt schematizate în imaginile atașate. Observați că, spre deosebire de majoritatea arduino-urilor, Rx1 și Tx1 sunt utilizate în mod implicit pe plăcile DUE în loc de Rx0 și Tx0. Acest lucru este grozav, deoarece vă puteți încărca schița fără a fi nevoie să deconectați Rx de fiecare dată. Observați, de asemenea, că am folosit un optocuplator H11L1 pentru că nu am putut rula așa cum ar trebui un 6N138 comun în limita Arduino DUE 3.3V.

Pasul 4: Software

Schița a fost scrisă în Arduino IDE și trebuie încărcată pe placa dvs. Arduino DUE. Nu voi intra în detalii despre cum să încărcați schița pe arduino DUE. Dacă aceasta este prima dvs. experiență cu Arduino DUE, citiți acest lucru. Dacă aceasta este prima dvs. experiență cu IDE arduino, vă rugăm să citiți și acest lucru.

Puteți descărca firmware-ul actualizat AICI (link github).

Schița se bazează pe excelenta bibliotecă MIDI FortySevenEffects. Va trebui să instalați biblioteca în IDE-ul dvs. arduino.

Note de ieșire MIDI atribuite fiecărei tobe sunt definite de variabila drumNote [STEPS_NUM] din schiță. Le poți schimba după bunul plac.

Numărul canalului de ieșire MIDI pentru tobe este setat la "10" în mod implicit.

Nu sunt un programator în viața reală și cu siguranță există modalități mai bune de a codifica ceea ce avem nevoie aici. Dacă sunteți un coder cu orice sugestie, sunteți binevenit! Vă rog să-mi trimiteți orice variantă care poate crește eficiența / eficacitatea codului și îl voi include în schița principală (citând contribuitorul evident!).

Pasul 5: Ghid de pornire rapidă

TAMBURI: SECVENȚIE PAS-CU-PAS

De îndată ce porniți secvențierul (sau îl resetați), va fi încărcată o secvență goală. Secvențierul pornește în modul de editare, cu prima bară ținută / blocată și primul tambur (adică lovitură) selectat. Aceasta înseamnă că prin apăsarea oricărui buton de pas, veți atribui imediat „lovitură” acestor pași. Volumul pe care va fi declanșat tamburul este setat de poziția potențiometrului „volum” la atribuirea tamburului la pas. Apăsând din nou un buton de pas atribuit anterior, veți de-aloca tamburul curent pe acel pas.

Dacă apăsați butonul „Start”, veți vedea LED-urile dvs. care rulează de la stânga la dreapta, de sus în jos, jucând „lovitură” de fiecare dată când este trecut un pas de lovitură.

Ținând apăsat butonul „Shift” veți vedea LED-ul primul pas pe primul rând pornit (ceea ce înseamnă că este selectat primul tambur) și LED-ul primului pas pe al patrulea rând (ceea ce înseamnă că sunteți blocat la prima bară). Acum puteți schimba tamburul pe care doriți să-l secvențați apăsând un alt buton de pas, menținând apăsat „Shift”. După selectarea tamburului nou, eliberați „shift”. Toate LED-urile se vor stinge (deoarece nu ați atribuit noua tambur niciunui pas) și puteți începe să atribuiți noua tambur la pași. Repetați pentru toate tobe de care aveți nevoie (până la 12).

Acum, că ați creat un model frumos, țineți apăsat „Shift” și opriți pasul highligted de pe rândul de jos (ar trebui să fie primul pas al celui de-al 4-lea rând dacă ați adoptat același aspect pe care l-am folosit): doar aveți „ a deblocat secvența care va rula acum peste toate cele 4 bare. LED-urile brute de jos vor începe să se „miște”, indicând care bară este redată în prezent (progresia barei). Veți observa că numai atunci când în prima bară se va reda o secvență, toate celelalte 3 bare nu generează sunete. Acest lucru se datorează faptului că ați alocat tobe doar primei bare, celelalte rămânând goale. Puteți să le umpleți manual (selectați o bară nouă apăsând unul dintre ultimele 4 butoane de pas, ținând apăsat „Shift”, selectați una dintre tobe, completați pașii etc. etc.) sau copiați și lipiți secvența de bare pe care ați creat-o la toate barele intrând în modul de editare (blocați din nou la prima bară) și apăsând „înregistrare” (care acum presupune funcția „lipiți”) în timp ce țineți apăsat „Shift”. Mai ușor de făcut decât a spus.

TAMBURI: LIVE PLAY MODE

La pornire, secvențierul este în modul de editare. Pentru a ieși din modul de editare trebuie să țineți apăsat „Shift” și să apăsați butonul barei ținut în prezent / blocat (butonul pas de pe rândul 4 este activat). Aceasta va opri LED-ul barei blocate anterior și va debloca secvența. Acum sunteți în modul de redare live.

În modul de redare live, prin apăsarea oricărui buton pas se va declanșa tamburul asociat butonului respectiv.

Dacă doriți să înregistrați în direct secvența, începeți secvența apăsând „redare”, apoi apăsați butonul „înregistrați” (numai în modul redare live). Un LED roșu se va aprinde. Vor fi înregistrate redarea dvs. pe matricea panoului de control al secvențierului de tambur sau orice mesaj MIDI de intrare (adică de la o tastatură MIDI externă).

Alte funcții

Prin apăsarea butonului „roll”, toba activă curentă va fi redată la fiecare pas (într-o rolă). Aceasta funcționează atât în modurile „pas cu pas”, cât și în modul „live-play”.

Prin apăsarea oricărui buton de pas în timp ce țineți apăsat butonul „mut”, tamburul asociat pasului respectiv va fi dezactivat (sau dezactivat). Acest lucru funcționează atât în modurile „pas cu pas”, cât și în modul „live-play”.

Puteți șterge o anumită secvență de tambur apăsând butonul pas relativ, menținând apăsat butonul „REC”.

Puteți șterge întreaga secvență (resetare soft) menținând presat butonul „start” mai mult de 3 secunde.

Vă puteți „balansa” secvența prin rotirea potențiometrului „swing”.

Puteți dezactiva / activa ecoul MIDI apăsând butonul „Mute”, menținând apăsat butonul „Shift”. Atunci când ecoul MIDI este activat (implicit), orice informație este prezentă la mufa MIDI INPUT va fi trimisă la mufa MIDI OUTPUT (se repetă numai nota MIDI activată, notă dezactivată, pitch bend, aftertouch și schimbarea controlului).

Atât intrarea cât și ieșirea MIDI sunt implementate și activate în mod implicit. În cazul în care nu se recepționează nicio intrare de ceas, tempo-ul este setat cu potențiometrul dedicat. În cazul în care este recepționată o intrare MIDI de ceas, tempo-ul este calculat din acesta și potențiometrul de tempo nu va răspunde. Ceasul MIDI este întotdeauna trimis la ieșirea MIDI.

Pasul 6: Secțiunea Ritm

Ideea originală a fost un secvențiator de tambur MIDI „pur” pe 64 de pași pentru a secvența până la 12 părți de tambur independente. După câteva teste, am observat că ar fi fost bine să controlez și o linie de bas și am atribuit caracteristica unui pitch-per-step variabil doar celei mai recente tobe. După aceea, am modificat din nou codul, astfel încât să pot schimba tonul în fiecare tobe și să controlez până la 12 sintetizatoare. O revizuire ulterior am adăugat polifonie (polifonie per-synth limitată la 3 în mod implicit).

În concluzie:

- în timp ce în modul LIVE, dacă înregistrarea LIVE este activată și secvența a început, puteți înregistra, polifonic, mesajele MIDI primite. Informațiile despre pitch și volum vor fi stocate. Informațiile despre înclinație și curent sunt pierdute. Mesajele MIDI Control Change vor fi stocate. Rețineți că aveți un singur slot CC pe canal, pe pas.

- Dacă secvența este oprită, puteți înregistra până la 3 valori de ton (acord) la un anumit pas dintr-o anumită bară ținând apăsat butonul pas de destinație și apăsând (în același timp sau unul câte unul) tastele dorite pe tastatură conectată la portul MIDI IN.

Observa asta:

- nota declanșată la un pas este „ucisă” chiar la pasul următor. Pentru a crește lungimea notei, acționați pe parametrul VCA „eliberare” al sintetizatorului.

- spre deosebire de tobe, notele nu pot fi redate într-o rola apăsând butonul „rola”.

- Când înregistrați LIVE, datele canalului MIDI primite sunt stocate în pasul relativ "tambur" (canal MIDI # 1 -> "tambur" # 1 și așa mai departe).

Puteți șterge o anumită secvență de sintetizare apăsând butonul pas relativ "tambur", menținând apăsat butonul "REC". Apăsând-o din nou se va șterge și secvența tamburului. Dacă a fost înregistrată o secvență CC, aceasta va fi prima ștearsă, apoi urmând ordinea CC -> Synth -> Drum

Pasul 7: Declanșează arpegiul

Sintetizatoarele pre-MIDI de la începutul anilor '80 sunt adesea echipate cu câteodată numită „intrare de declanșare a arpegiului”. Prin trimiterea unui semnal de declanșare de 2,5 până la 5,0 V (V-trig sau „declanșator de tensiune”) sau prin împământarea intrării declanșatorului de arpegiu (S-Trig sau „declanșator de comutare”) puteți spune sintetizatorului să avanseze un pas pe o secvență de arpegiu. Acest lucru ar putea fi dificil de gestionat cu un secvențiator fără o declanșare dedicată (uneori sunetele „rimshot” dintr-o ieșire dedicată unde / sunt utilizate ca un expedient pentru sintetizatoarele V-trig), dar cu o placă de microcontroler puteți gestiona cu ușurință un astfel de semnal și control arpegiul dvs. de sintetizator așa cum a fost menit de fabrică.

Acest secvențial de secțiune ritmică include posibilitatea de a declanșa independent arpegiatorul a două sintetizatoare diferite.

Utilizarea este foarte ușoară: selectați tamburul 11 sau 12 (apăsați pasul 11 sau 12 în timp ce apăsați „Shift”) și activați pașii pe care doriți ca arpegiatorul să se deplaseze dintr-un singur pas. În acest fel puteți „programa” foarte strâns 1/16 dintr-o notă cu lungimea arpegiilor obișnuite activând toți pașii, sau 1/8 activând fiecare alt pas. În plus, puteți programa arpegii mai complexe activând pași urmând o cale neregulată.

În funcție de tipul de semnal de declanșare acceptat de sintetizatorul pe care doriți să îl controlați, veți avea nevoie de o modificare hardware simplă: în cazul V-trig (de exemplu, sintetizatori Roland) plasați un rezistor de 1 Kohm în serie cu ieșire de declanșare arduino. În cazul unui S-trig (adică sintetizatoare Korg), utilizați schematicul atașat la pasul "cablare" pentru un declanșator de comutare sigur.

Pasul 8: Dacă lucrurile nu funcționează …

Chiar și un proiect relativ simplu ca acesta nu va funcționa 100% la prima pornire. Aici, de exemplu, corespondența dintre butoane și LED-uri este crucială, iar o cablare necorespunzătoare va face ca secvențierul să fie inutil.

Pentru a testa toate componentele diferite care alcătuiesc secvențierul de pași, am scris o schiță simplă de testare (a se vedea atașamentul).

Puteți descărca cel mai recent firmware de testare AICI (link GitHub).

Schița de testare funcționează după cum urmează:

- apăsați un buton pas: LED-ul corespunzător ar trebui să se aprindă și o notă MIDI pe canalul 10 va fi trimisă la ieșirea MIDI.

- apăsați un buton funcțional: unul dintre primele 5 LED-uri se va aprinde.

- rotiți un potențiometru: LED-urile se vor aprinde corespunzător (primul vas -> primul rând LED-uri, al doilea vas -> al doilea rând LED-uri, al treilea vas -> al treilea rând LED-uri).

- dacă se primește o notă MIDI, primul LED va clipi.

Rețineți că ecoul MIDI este activat în mod implicit. Aceasta înseamnă că, dacă aveți o buclă MIDI între un sintetizator și MRSS, acest lucru ar putea cauza probleme (am experimentat o notă dublă previzibilă care declanșează de cele mai multe ori, dar și note foarte joase declanșate și o tastatură încorporată, în general, care nu răspunde, cu sintetizatoare cu MIDI acționând ca MIDI Throu … depinde de synth). Dacă acesta este cazul, dezactivați ecoul MIDI apăsând butonul „Mute”, menținând apăsat butonul „Shift”.

Recomandat: