Sisukord:

Arduino MIDI rütmi sektsiooni järjestus: 8 sammu (piltidega)
Arduino MIDI rütmi sektsiooni järjestus: 8 sammu (piltidega)

Video: Arduino MIDI rütmi sektsiooni järjestus: 8 sammu (piltidega)

Video: Arduino MIDI rütmi sektsiooni järjestus: 8 sammu (piltidega)
Video: Управление 16 серводвигателями с использованием модуля PCA9685 и Arduino V2 2024, Juuli
Anonim
Arduino MIDI rütmi sektsiooni järjestus
Arduino MIDI rütmi sektsiooni järjestus
Arduino MIDI rütmi sektsiooni järjestus
Arduino MIDI rütmi sektsiooni järjestus
Arduino MIDI rütmi sektsiooni järjestus
Arduino MIDI rütmi sektsiooni järjestus

Hea tarkvara trummimasina omamine on täna lihtne ja odav, kuid hiire kasutamine tapab minu jaoks lõbu. Seetõttu mõistsin, mis oli algselt mõeldud 64 -astmelise riistvaralise MIDI trummijärjestusena, mis on võimeline käivitama kuni 12 erinevat trummelielementi (osa), kuid arenes seejärel välja rütmilõike järjestuses …

… siit me läheme!

1. toiming: kuidas see toimib

See riistvara ei saa ise helisid genereerida, vaid järjestab ainult välist riistvara MIDI kaudu. See tähendab, et teil on vaja trummihelide heligeneraatorit (proovivõtja või trumlisüntesaator või arvuti, millel on teie lemmik trummitarkvara või mis iganes soovite), mida saaksid käivitada MIDI märkusõnumid.

See koosneb peamiselt 4 x 4 nupuga maatriksist (koos LEDidega), üks riba iga sammu jaoks. Kogu 64 sammu jada koosneb 16 astmest, mis on korrutatud 4 ribaga. Iga samm on 1/16 noodist.

Töörežiime on kaks: reaalajas režiim ja redigeerimisrežiim.

Redigeerimisrežiimis saate oma järjestust tegelikult samm-sammult redigeerida, määrates kindlaks, milline trummel mängib igal sammul.

Teie väline riistvarainstrument ("trummel") käivitatakse, saates MIDI "märkuse" sõnumi erinevate "MIDI märkmete numbrite" kohta kanalil "10". Vaikimisi on need märkmete numbrid

trumm nr 1 (st löök) -> MIDI noot number "60"

trumm nr 2 (st lõks) -> MIDI noot number "62"

trumm nr 3 (st plaks) -> MIDI -märkus number "64"

trumm nr 4 (st Hihat) -> MIDI noot number "65"

trumm nr 5 -> MIDI noot number "67"

trumm nr 6 -> MIDI noot number "69"

trumm #7 -> MIDI noot number "71"

trumm #8 -> MIDI noot number "72"

trumm #9 -> MIDI noodinumber "74"

trumm nr 10 -> MIDI noot number "76"

trumm #11 -> MIDI noodi number "77"

trumm #12 -> MIDI noot number "79"

Soovi korral saate neid väärtusi (ja MIDI kanalit) visandis muuta.

Reaalajas režiimis, vajutades sammunuppe, saate mängida iga sammuga seotud trumme, saates MIDI -sõnumeid jada kaudu. Saate reaalajas salvestada oma nupuvajutusi ja/või sissetulevaid MIDI -sõnumeid.

Nii reaalajas kui ka redigeerimisrežiimis saate trumli vaigistada (või vaigistuse tühistada), "mängida" hetkel aktiivset trummi ja "õõtsutada" oma järjestust.

Rütmi sektsioon?

Enamik trummijärjestajaid on puhtalt MIDI trummiosade käivitajad, millel on iga trumliheli jaoks kindel MIDI -noodinumber. Sel juhul on meil "rütmilõigu järjestus" rohkem kui puhas "trummijärjestus", sest saate isegi süntesaatoreid järjestada.

Lisateabe saamiseks ja funktsioonide täieliku loendi saamiseks lugege KIIRALGUSJUHIST.

Samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

See projekt realiseeritakse Arduino DUE plaadi ümber. Püüdsin hoida riistvara võimalikult lihtsana, s.t vältides LED -draiverite kasutamist. Arduino DUE ei ole tõenäoliselt kõige sobivam plaat hunniku LED -ide haldamiseks ilma LED -draiverita, kuna sellel on väljundvoolu piirid (5 mA kuni 15 mA, sõltuvalt tihvtist), kuid see on kiireim Arduino ja ajastus on kõik tehingute tegemisel sekventeerijatega. Niisiis, pidage meeles, et SEE riistvarakonfiguratsioon surub teie Arduino DUE tõenäoliselt piiridesse ja võib seda pikas perspektiivis kahjustada.

Nagu öeldud, on riistvara peamiselt 16 nuppu, 16 LED -i (üks iga sammu jaoks) järjestus, millel on 5 lisanuppu funktsioonide jaoks ja 3 potentsiomeetrit. Pärast reaalajas salvestusfunktsiooni lisamist lisasin ka punase LED -i.

Siin on materjalide arve:

- 1x Arduino DUE

- 16x hetkelised, mitte lukustuvad nupud koos integreeritud LED -idega (soovi korral võite kasutada väliseid LED -e, kuid ärge unustage kasutada väikese võimsusega LED -e !!)

- 1x punane LED (väike võimsus!)

- 5x hetkelised, mitte lukustuvad nupud

- 3x 10K ühe pöördega lineaarsed potentsiomeetrid

- 3x 6,5 mm paneelile mono pistikupesa

- 1x plastkarp (kasutasin 190x140x70 mm korpust)

- 2x 5-kontaktiline DIN naissoost paneelipesa pistik (MIDI)

- 1x kahepoolne 70x90 mm läbimõõduga plaat

- 2x 40 -pin isane ühe rea tihvtiga päisriba (2,54 mm), parem kui see on kullatud

- 1x H11L1 optron

- 1x 1N4148 diood

- 23x 1000 oomi takistid

- 3x 220 oomi takistid

- 2x BC547 pnp transistorid

… Jootetraat, mõned kaablid, jootmisjaam, puuritööriist ja vaba aeg:)

Pange tähele, et piltidel olevad nupud on ennekuulmatu põrkamise tõttu asendatud teist tüüpi (isegi odavamate) nuppudega …

Projekti lõpuleviimiseks kuluv aeg: 8-10 tundi

HOIATUS: kandke puurimisel ALATI kaitseprille ja kindaid! Kuumad materjalist laigud võivad projitseerida teie silmadele või nahale ja põhjustada põletusi või veelgi tõsisemaid kahjustusi teile või teie ümber olevatele inimestele

3. samm: juhtmed

Juhtmed
Juhtmed
Juhtmed
Juhtmed
Juhtmed
Juhtmed

Sammunupud on otse ühendatud Arduino tihvtidega vahemikus 22 (samm 1) kuni 37 (samm 16). Nuppude maa on aheldatud ja ühendatud Arduino DUE maandusega. Tõmbamis- või väljatõmbetakistusi pole vaja, kuna Arduino integreeritud tõmbetakistid on tarkvara abil lubatud (vt visandit).

Sama kehtib ka täiendavate 5 nupu kohta (Arduino tihvtid 2, 3, 4, 5 ja 6), mida kasutatakse muude funktsioonide jaoks kui sammud. Samuti panin paralleelselt nupuga "start" 6,5 mm pistikupesa, et saaksin oma jadasid eemalt mängida ja peatada.

LED -id on ühendatud maandusega (daisy kett) ja Arduino DUE kontaktidega 38 (samm #1) kuni 53 (samm #16) järjestikku 1K oomi takistiga, et piirata voolu äravoolu ja säilitada mikrokontrollerit.

Potentsiomeetrid on ühendatud, nagu on näidatud lisatud pildil. Pange tähele, et võrdluspinge on 3,3 V, mitte 5 V. Kasutatavad sisendid on A0, A1 ja A2.

Rakendasin ka kaks käivitusväljundit arpeggio -signaalide jaoks, näiteks need, mis on vajalikud vana 80 -ndate süntesaatori, näiteks Korg Polysix ja Roland Juno 6/60, arpegeerimiseks. Need on ühendatud tihvtidega A3 ja A4, kuid kui soovite digitaalseid signaale, võite kasutada digitaalseid tihvte. Juhul, kui kavatsete järjestada V-Trig (pinge päästik) signaalidega ühilduva süntesaatori, piisab voolu äravoolu vähendamiseks 1 k ohm seeria takistusest; S-Trig (lüliti päästik) süntesaatori korral vajate lihtsat pnp-lülitusahelat (vt lisatud skeemi).

MIDI IN ja OUT ahelad on skemaatiliselt lisatud piltidel. Pange tähele, et vastupidiselt enamikule arduinodele kasutatakse RX1 ja Tx1 vaikimisi DUE -plaatidel Rx0 ja Tx0 asemel. See on suurepärane, sest saate oma visandi üles laadida, ilma et peaksite Rx iga kord lahti ühendama. Pange tähele ka seda, et olen kasutanud H11L1 optronit, kuna ma ei suutnud Arduino DUE 3.3V piires joosta nii, nagu peaks tavaline 6N138.

4. samm: tarkvara

Visand on kirjutatud Arduino IDE -sse ja see tuleb üles laadida teie Arduino DUE -tahvlile. Ma ei süvene üksikasjadesse, kuidas visandit oma arduino DUE -sse üles laadida. Kui see on teie esimene kogemus Arduino DUE -ga, lugege seda. Kui see on teie esimene kogemus arduino IDE -ga, lugege palun ka seda.

Värskendatud püsivara saate alla laadida SIIT (githubi link).

Eskiis tugineb suurepärasele FortySevenEffects MIDI raamatukogule. Teek tuleb installida oma arduino IDE -sse.

Igale trumlile määratud MIDI -väljundmärkmed on visandis määratletud muutuja drumNote [STEPS_NUM] abil. Saate neid oma äranägemise järgi muuta.

Trummide MIDI -väljundkanali number on vaikimisi seatud väärtusele "10".

Ma pole päriselus kodeerija ja kindlasti on paremaid viise, kuidas kodeerida seda, mida me siin vajame. Kui olete mõne soovituse kodeerija, olete teretulnud! Palun saatke mulle kõik variatsioonid, mis võivad koodi tõhusust/tulemuslikkust suurendada, ja ma lisan selle põhijoonisele (viidates ilmselt kaastöötajale!).

5. samm: kiirjuhend

TRUMMID: SAMM-SAMMU JÄRJESTUS

Niipea, kui lülitate oma järjestuse sisse (või lähtestate selle), laaditakse tühi jada. Järjestus käivitub redigeerimisrežiimis, esimene riba hoitakse/lukustatakse ja esimene trummel (st löök) on valitud. See tähendab, et suvalist sammunuppu vajutades määrate neile sammudele kohe "löögi". Trumli käivitatava helitugevuse määrab "helitugevuse" potentsiomeetri asend trumli sammule määramisel. Vajutades uuesti eelnevalt määratud sammu nuppu, tühistate selle sammu praeguse trumli.

Kui vajutate nuppu "Start", näete, et teie LED -id jooksevad vasakult paremale, ülevalt alla ja mängivad "kick" igal ajal, kui löögisamm on ületatud.

Hoides all nuppu "Shift", näete esimese rea esimese astme LED -i (see tähendab, et esimene trummel on valitud) ja neljanda rea esimese astme LED -i (see tähendab, et olete lukustatud esimesele ribale). Nüüd saate trumlit, mida soovite järjestada, muuta, vajutades teist sammu nuppu, hoides samal ajal all nuppu „Shift“. Pärast uue trumli valimist vabastage "shift". Kõik valgusdioodid kustuvad (kuna te pole uut trumlit ühelegi etapile määranud) ja võite alustada uue trumli määramist sammudele. Korrake seda kõigi vajalike trumlite puhul (kuni 12).

Nüüd, kui olete loonud kena mustri, hoidke all klahvi "shift" ja lülitage alumise rea kõrgem samm välja (see peaks olema neljanda rea esimene samm, kui olete kasutanud sama paigutust, mida kasutasin): teil on lihtsalt " lukustamata "jada, mis jookseb nüüd üle kõigi 4 riba. Alumised töötlemata LED -id hakkavad "liikuma", mis näitab, millist riba praegu mängitakse (riba edenemine). Märkate, et alles siis, kui esimeses taktis esitatakse jada, kusjuures kõik ülejäänud 3 riba ei tekita helisid. Seda seetõttu, et olete määranud trummid ainult esimesele ribale, teised jäetakse tühjaks. Saate need käsitsi täita (valige uus riba, vajutades ühte neljast viimasest sammunupust, hoides samal ajal all nuppu „Shift“, valige üks trumlitest, täitke sammud jne.) Või kopeerige ja kleepige loodud ribarida kõikidele ribadele, sisenedes redigeerimisrežiimi (lukustage uuesti esimesele ribale) ja vajutades nuppu "record" (mis nüüd eeldab "kleepimise" funktsiooni), hoides samal ajal all nuppu "shift". Lihtsam teha kui öeldud.

TRUMMID: LIVE PLAY MODE

Käivitamisel on järjestus redigeerimisrežiimis. Redigeerimisrežiimist väljumiseks peate hoidma all tõstuklahvi ja vajutama hetkel hoitud/lukustatud ribanuppu (4. rea sammunupp on sisse lülitatud). See lülitab eelnevalt lukustatud riba LED -i välja ja avab jada. Olete nüüd reaalajas esitusrežiimis.

Reaalajas esitusrežiimis käivitatakse selle nupuga seotud trummel, vajutades mis tahes sammunuppu.

Kui soovite oma jada reaalajas salvestada, käivitage jada, vajutades nuppu "Esita", seejärel vajutage nuppu "Salvesta" (ainult reaalajas esitamise režiimis). Punane LED süttib. Teie mängimine trummijärjestuse juhtpaneeli maatriksil või mis tahes sissetulev MIDI-märkusõnum (st väliselt MIDI-klaviatuurilt) salvestatakse.

Muud funktsioonid

Vajutades "rulli" nuppu, mängitakse igal sammul (rullis) parajasti aktiivset trummi. See töötab nii "samm-sammult" kui ka "live-play" režiimis.

Vajutades suvalist sammunuppu, hoides samal ajal all nuppu „Vaigista”, vaigistatakse (või vaigistatakse) selle sammuga seotud trummel. See töötab nii "samm-sammult" kui ka "live-play" režiimis.

Konkreetse trumli järjestuse saate kustutada, vajutades vastavat sammu nuppu, hoides samal ajal all nuppu "REC".

Saate kustutada kogu järjestuse (pehme lähtestamine), hoides all nuppu "Start" üle 3 sekundi.

Saate oma järjestust "õõtsutada", keerates "kiige" potentsiomeetrit.

Saate MIDI kaja keelata/lubada, vajutades nuppu "vaigistamine", hoides samal ajal all nuppu "nihutamine". Kui MIDI kaja on lubatud (vaikimisi), saadetakse MIDI INPUT pesas olev teave MIDI OUTPUT pesasse (kajab ainult MIDI märkus sisse, märkus välja, helikõrgus, järelpuudutus ja juhtseadiste muutmine).

Nii MIDI kella sisend kui ka väljund on vaikimisi rakendatud ja lubatud. Kui kella sisendit ei võeta, määratakse tempo spetsiaalse potentsiomeetriga. Juhul kui MIDI kella sisend võetakse vastu, arvutatakse selle põhjal tempo ja tempo potentsiomeeter ei reageeri. MIDI kell saadetakse alati MIDI välja.

6. samm: rütmiosa

Algne idee oli "puhas" 64 astmega MIDI trummijärjestus kuni 12 sõltumatu trumliosa järjestamiseks. Pärast mõningast katsetamist märkasin, et ka bassiliini oleks olnud tore juhtida, ja määrasin muutuva helikõrguse funktsiooni ainult viimasele trummile. Pärast seda muutsin koodi uuesti, et saaksin muuta iga trumli helikõrgust ja juhtida kuni 12 süntesaatorit. Hiljem läbivaatus lisasin polüfooniat (polüfoonia sünteesi kohta on vaikimisi piiratud 3-ga).

Kokkuvõtteks:

- LIVE-režiimis, kui LIVE-salvestus on aktiveeritud ja jada käivitatud, saate sissetulevaid MIDI-märkusõnumeid polüfooniliselt salvestada. Kõne ja helitugevuse teave salvestatakse. Piki painde ja järeltöötluse teave on kadunud. MIDI Control Change sõnumid salvestatakse. Pidage meeles, et teil on kanali ja sammu kohta ainult üks CC -pesa.

- Kui järjestus on peatatud, saate konkreetse riba teatud sammule salvestada kuni 3 helikõrguse väärtust (akord), hoides all sihtaste nuppu ja vajutades (samal ajal või ükshaaval) soovitud klahve klaviatuur on ühendatud MIDI IN porti.

Märka seda:

- sammul käivitatud noot "tapetakse" juba järgmisel sammul. Noodipikkuse suurendamiseks järgige süntesaatori VCA parameetrit "release".

- vastupidiselt trummidele ei saa noote rullis mängida, vajutades nuppu "roll".

- LIVE salvestamisel salvestatakse sissetulevad MIDI kanali andmed suhtelises "trumli" etapis (MIDI kanal nr 1 -> "trummel" #1 ja nii edasi).

Konkreetse süntesaatorijärjestuse saate kustutada, vajutades vastavat "trumli" sammunuppu, hoides samal ajal all nuppu "REC". Selle uuesti vajutamine kustutab ka trumli järjestuse. Kui salvestati CC -järjestus, kustutatakse see esimesena, järgides järjekorda CC -> Synth -> Drum

Samm: Arpeggio päästikud

80ndate alguse MIDI-eelsed süntesaatorid on sageli varustatud mõnikord nimetusega "arpeggio trigger input". Kui saadate 2,5 kuni 5,0 V päästisignaali (V-päästik või "pinge päästik") või maandate arpeggio päästiku sisendi (S-Trig või "lüliti päästik"), võite öelda, et süntesaator liigub arpeggio-järjestuses ühe sammu edasi. Seda võib olla raske hallata sekventseriga ilma spetsiaalse käivituseta (mõnikord kõlab "rimshot" spetsiaalsest väljundist, kus/kasutatakse V-trig süntesaatorite otstarbeks), kuid mikrokontrolleri abil saate sellist signaali ja juhtimist hõlpsalt hallata teie süntesaatori arpeggio, nagu tehas seda ette kujutas.

See rütmisektsiooni sekvensaator sisaldab võimalust käivitada iseseisvalt kahe erineva süntesaatori arpeggiaator.

Kasutamine on väga lihtne: valige trummel 11 või 12 (vajutage sammu 11 või 12, vajutades samal ajal nuppu "shift") ja aktiveerige sammud, mida soovite arpeggiaatoril ühe sammu võrra liigutada. Nii saate "programmeerida" väga tiheda 1/16 noodi pikkuse tavalisi arpeggiosid, aktiveerides kõik sammud, või 1/8, aktiveerides iga teise sammu. Lisaks saate programmeerida keerukamaid arpeggiosid, aktiveerides ebaregulaarset rada järgivad sammud.

Sõltuvalt käivitussignaali tüübist, mida toetab juhitav süntesaator, vajate lihtsat riistvara modifikatsiooni: V-trig (st Rolandi süntesaatorid) korral asetage 1 Kohm takisti järjestikku arduino päästiku väljundiga. S-trig (st Korgi süntesaatorid) korral kasutage turvalise lüliti päästiku jaoks "juhtmestiku" etapi külge kinnitatud shemaatikat.

Samm: kui asjad ei tööta…

Isegi selline suhteliselt lihtne projekt ei tööta tõenäoliselt esimesel korral selle sisselülitamisel 100%. Siin, näiteks, on nuppude ja valgusdioodide vaheline korrektsus ülioluline ning tasakaalustamata juhtmestik muudab järjestuse kasutuskõlbmatuks.

Et testida kõiki erinevaid komponente, millest sammude järjestus koosneb, kirjutasin lihtsa testvisandi (vt manus).

Uusima testi püsivara saate alla laadida SIIT (GitHubi link).

Testi visand töötab järgmiselt.

- vajutage sammunuppu: vastav LED peaks süttima ja MIDI märkus kanalil 10 saadetakse MIDI väljundisse.

- vajutage funktsiooninuppu: üks esimesest viiest LED -st süttib.

-keerake potentsiomeetrit: LED -id põlevad vastavalt (esimene pott -> esimene LED -rida, teine pott -> teine LED -rida, kolmas pott -> kolmas LED -rida).

- kui saabub MIDI -märkus, vilgub esimene LED.

Pidage meeles, et MIDI kaja on vaikimisi lubatud. See tähendab, et kui teil on MIDI-tsükkel süntesaatori ja MRSS-i vahel, võib see tekitada probleeme (mul tekkis enamus kordadest ennustatav kahekordne noot, kuid käivitati ka väga madalad noodid ja üldiselt ei reageeri sisseehitatud klaviatuur MIDI-ga süntesaatoritega toimides MIDI kaudu… see sõltub sünteesist). Sellisel juhul lülitage MIDI kaja välja, vajutades nuppu „vaigistamine”, hoides samal ajal all nuppu „nihe”.

Soovitan: