Tartalomjegyzék:

Arduino MIDI ritmusszakasz -szekvenszer: 8 lépés (képekkel)
Arduino MIDI ritmusszakasz -szekvenszer: 8 lépés (képekkel)

Videó: Arduino MIDI ritmusszakasz -szekvenszer: 8 lépés (képekkel)

Videó: Arduino MIDI ritmusszakasz -szekvenszer: 8 lépés (képekkel)
Videó: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, November
Anonim
Arduino MIDI ritmusszakasz -szekvenszer
Arduino MIDI ritmusszakasz -szekvenszer
Arduino MIDI ritmusszakasz -szekvenszer
Arduino MIDI ritmusszakasz -szekvenszer
Arduino MIDI ritmusszakasz -szekvenszer
Arduino MIDI ritmusszakasz -szekvenszer

Egy jó szoftveres dobgép ma könnyű és olcsó, de az egér használata megöli a szórakozást. Ez az oka annak, hogy rájöttem arra, amit eredetileg tiszta 64 lépéses hardveres MIDI dobszekvenszernek szántak, amely képes akár 12 különböző dob elem (rész) kiváltására, de aztán egy ritmusszakasz -szekvenszerré fejlődött …

… Tessék!

1. lépés: Hogyan működik?

Ez a hardver önmagában nem tud hangot generálni, hanem csak külső hardvert szekvenálhat MIDI -n keresztül. Ez azt jelenti, hogy szüksége lesz a dobhangok hanggenerátorára (mintavevő vagy dobszintetizátor, vagy egy PC a kedvenc dobszoftverével vagy bármi mással), amelyet a MIDI megjegyzésüzenetek válthatnak ki.

Elsősorban 4 x 4 gombos mátrixból áll (LED -ekkel), egy sáv minden egyes lépéséhez. A teljes 64 lépés sorozata 16 lépésből és 4 oszlopból áll. Minden lépés a jegyzet 1/16.

Kétféle üzemmód létezik: élő és szerkesztési mód.

Szerkesztési módban valójában lépésről lépésre szerkesztheti a sorozatot, ha megadja, hogy melyik dob játssza az egyes lépéseket.

Külső hardvereszközét ("dob") aktiválja, ha MIDI "megjegyzést küld" üzenetet küld a "10" csatornán lévő különböző "MIDI jegyzetszámokhoz". Alapértelmezés szerint ezek a jegyzetszámok

dob #1 (azaz rúgás) -> MIDI "60" jegyzet

dob 2 (azaz pergő) -> MIDI "62" jegyzet

dob #3 (azaz taps) -> MIDI "64" jegyzet

dob #4 (azaz Hihat) -> MIDI "65"

dob #5 -> MIDI jegyzet száma "67"

dob #6 -> MIDI jegyzet száma "69"

dob #7 -> MIDI hangjegyszám "71"

dob #8 -> MIDI jegyzet "72"

dob #9 -> MIDI jegyzet száma "74"

dob #10 -> MIDI jegyzet "76"

dob #11 -> MIDI jegyzet száma "77"

dob #12 -> MIDI hangjegy "79"

Ezeket az értékeket (és a MIDI csatornát) megváltoztathatja a vázlatban, ha úgy tetszik.

Élő módban a lépés gombok megnyomásával élőben játszhat dobokat az egyes lépésekhez MIDI üzenetek soros küldésével. Élőben rögzítheti a gombnyomásokat és/vagy a beérkező MIDI üzeneteket.

Élő üzemmódban és szerkesztési módban is elnémíthatja (vagy elnémíthatja) a dobot, "lejátszhatja" az éppen aktív dobot, és "lendítheti" a sorozatot.

Ritmus szekció?

A dobszekvenátorok többsége tisztán MIDI dobdarab -indító, minden dobhanghoz rögzített MIDI hangszám. Ebben az esetben több "ritmusszakasz -szekvenerátorunk" van, mint tiszta "dobszekvenszer", mert akár szintetizátorokat is szekvenálhat.

További részletekért és a szolgáltatások teljes listájáért olvassa el a GYORS KEZELÉSI ÚTMUTATÓT.

2. lépés: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Ez a projekt egy Arduino DUE tábla körül valósul meg. Megpróbáltam a hardvert a lehető legegyszerűbben tartani, azaz elkerülve a LED -illesztőprogramok használatát. Az Arduino DUE valószínűleg nem a legmegfelelőbb tábla egy csomó LED kezelésére LED -illesztőprogram nélkül, mivel a kimeneti áram határai (5 mA -től 15 mA -ig, a tűtől függően), de ez a leggyorsabb Arduino, és az időzítés a legfontosabb az ügyintézés során szekvenátorokkal. Tehát ne feledje, hogy EZ a hardverkonfiguráció valószínűleg korlátok közé szorítja az Arduino DUE -t, és hosszú távon károsíthatja azt.

Ennek ellenére a hardver elsősorban egy 16 gombos, 16 LED -es (minden lépésben egy) szekvenszer, további 5 gombokkal a funkciókhoz és 3 potenciométerrel. Élő felvételi funkció hozzáadása után piros LED -et is hozzáadtam.

Íme az anyagjegyzék:

- 1x Arduino DUE

- 16x pillanatnyi, nem reteszelő nyomógombok beépített LED -ekkel (külső LED -eket is használhat, ha úgy tetszik, de ne felejtse el alacsony fogyasztású LED -eket használni!)

- 1x piros LED (alacsony fogyasztás!)

- 5x pillanatnyi, nem reteszelő nyomógomb

- 3x 10K egyfordulatú, lineáris, potenciométer

- 3x 6,5 mm -es panelre szerelt mono jack hüvely

- 1x műanyag tok (én 190x140x70 mm -es tokot használtam)

- 2x 5 tűs DIN hüvelyi panelre szerelhető csatlakozó (MIDI)

- 1x kétoldalas 70x90 mm -es perforációs tábla

- 2x 40 tűs egysoros tűs fejléc (2,54 mm), jobb, ha aranyozott

- 1x H11L1 optocsatoló

- 1x 1N4148 dióda

- 23x 1000 ohmos ellenállások

- 3x 220 ohmos ellenállás

- 2x BC547 pnp tranzisztor

… Forrasztóhuzal, néhány kábel, forrasztóállomás, fúrószerszám… és szabadidő:)

Kérjük, vegye figyelembe, hogy a képeken látható gombokat egy másik típusú (még olcsóbb…) nyomógombra cserélték a felháborító ugrálás miatt…

A projekt befejezéséhez szükséges idő: 8-10 óra

FIGYELEM: Fúrás közben MINDIG viseljen védőszemüveget és kesztyűt! A forró anyagú pikkelyek a szemére vetülhetnek, vagy a bőrükkel érintkezhetnek, és égési sérüléseket vagy még súlyosabb károkat okozhatnak Önben vagy a környezetében élőkben

3. lépés: Huzalozás

Vezetékek
Vezetékek
Vezetékek
Vezetékek
Vezetékek
Vezetékek

A Step gombok közvetlenül az Arduino csapokhoz vannak csatlakoztatva a 22 -től (1. lépés) a 37 -ig (16. lépés). A gombok földelése láncos, és az Arduino DUE földhöz van csatlakoztatva. Nincs szükség felhúzó vagy lehúzható ellenállásokra, mivel az Arduino integrált felhúzó ellenállások szoftveresen engedélyezettek (lásd a vázlatot).

Ugyanez vonatkozik a további 5 gombra (Arduino 2, 3, 4, 5 és 6 gomb), amelyeket a lépéseken kívül más funkciókhoz használnak. A "start" gombbal párhuzamosan elhelyeztem egy 6,5 mm -es női jack csatlakozót is, hogy távolról le tudjak játszani és leállítani a sorozatokat.

A LED -ek a földhöz (százszorszép lánc) és az Arduino DUE csapokhoz vannak csatlakoztatva 38 -tól (1. lépés) - 53 -ig (16. lépés) soronként 1K ohmos ellenállással, hogy korlátozzák az áramlefolyást és megőrizzék a mikrokontrollert.

A potenciométerek csatlakoztatása a mellékelt képen látható módon történik. Vegye figyelembe, hogy a referenciafeszültség 3.3V, nem 5V. A bemenetek A0, A1 és A2.

Két kiváltó kimenetet is megvalósítottam az arpeggio jelekhez, például azokat, amelyek a régi 80 -as szintetizátorok arpegizálásához szükségesek, mint például a Korg Polysix és a Roland Juno 6/60. A3 -as és A4 -es tűkhöz vannak csatlakoztatva, de ha digitális jeleket szeretne használni, használhat digitális tűket is. Abban az esetben, ha a V-Trig (feszültség trigger) jelekkel kompatibilis szintetizátort kíván szekvenálni, elegendő egy 1 k ohmos soros ellenállás az áramleeresztés csökkentésére; S-Trig (kapcsoló trigger) szintetizátor esetén egyszerű pnp kapcsolóáramkörre lesz szüksége (lásd a mellékelt sémát).

A MIDI IN és OUT áramköröket a mellékelt képek sematizálják. Vegye figyelembe, hogy a legtöbb arduino -val ellentétben az Rx1 és a Tx1 alapértelmezés szerint a DUE táblákon használatos az Rx0 és a Tx0 helyett. Ez nagyszerű, mert feltöltheti vázlatát anélkül, hogy minden alkalommal le kellene választania az Rx -et. Figyelje meg azt is, hogy H11L1 optocsatolót használtam, mert nem tudtam úgy futni, ahogyan egy közös 6N138 -nak kellene lennie az Arduino DUE 3.3V határértékén belül.

4. lépés: Szoftver

A vázlatot az Arduino IDE -ben írták, és fel kell tölteni az Arduino DUE táblára. Nem részletezem a vázlat feltöltésének módját az arduino DUE -re. Ha ez az első tapasztalata az Arduino DUE -vel, olvassa el ezt. Ha ez az első tapasztalata az arduino IDE -vel, kérjük, olvassa el ezt is.

A frissített firmware -t innen töltheti le (github link).

A vázlat a kiváló FortySevenEffects MIDI könyvtárra támaszkodik. Telepítenie kell a könyvtárat az arduino IDE -be.

Az egyes dobokhoz rendelt MIDI kimeneti jegyzeteket a drumNote [STEPS_NUM] változó határozza meg a vázlatban. Ezeket tetszés szerint megváltoztathatja.

A dobok MIDI kimeneti csatornaszáma alapértelmezés szerint "10".

Nem vagyok kódoló a való életben, és biztosan vannak jobb módszerek arra, hogy kódoljuk, amire itt szükségünk van. Ha kódoló vagy bármilyen javaslattal, szívesen fogadom! Kérem, küldjön nekem minden olyan változatot, amely növelheti a kód hatékonyságát/hatékonyságát, és beillesztem a fő vázlatba (nyilvánvalóan a Közreműködőre hivatkozva!).

5. lépés: Gyors útmutató

DOBOK: LÉPÉS-LÉPÉSENKÉNT

Amint bekapcsolja a szekvenszort (vagy visszaállítja), egy üres sorozat kerül betöltésre. A szekvenszer szerkesztő üzemmódban indul, az első ütemet tartva/zárva, és az első dobot (azaz rúgást) kiválasztva. Ez azt jelenti, hogy bármelyik gomb megnyomásával azonnal hozzárendeli a "kick" -t ezekhez a lépésekhez. A dob aktiválásának hangerejét a "hangerő" potenciométer helyzete határozza meg, amikor a dobot a lépéshez rendeli. Egy korábban hozzárendelt lépés gomb újbóli megnyomásával megszünteti az aktuális dob hozzárendelését ezen a lépésen.

Ha megnyomja a "start" gombot, láthatja, hogy a LED -ek balról jobbra, fentről lefelé futnak, és "kick" -t játszanak, amikor egy rúgási lépést átlépnek.

A "shift" gomb lenyomva tartásával az 1. sor LED -je látható az 1. sorban (ez azt jelenti, hogy az első dob van kiválasztva) és az első lépés LED -je a negyedik sorban (ami azt jelenti, hogy az első sávhoz van zárva). Most megváltoztathatja a sorrendben kívánt dobot egy másik lépés gomb megnyomásával, miközben a "shift" gombot lenyomva tartja. Az új dob kiválasztása után engedje el a "shift" gombot. Minden LED kialszik (mivel nem rendelte hozzá az új dobot egyetlen lépéshez sem), és elkezdheti hozzárendelni az új dobot a lépésekhez. Ismételje meg az összes szükséges dobot (legfeljebb 12).

Most, hogy létrehozott egy szép mintát, tartsa lenyomva a "shift" gombot, és kapcsolja ki az alsó sorban a kiemelt lépést (ez legyen a 4. sor első lépése, ha ugyanazt az elrendezést alkalmazta, mint amit használtam): most " feloldotta "a sorozatot, amely most mind a 4 sávon át fog futni. Az alsó nyers LED -ek elkezdenek "mozogni", jelezve, hogy melyik sávot játsszák le (a sáv előrehaladása). Észre fogja venni, hogy csak akkor, ha az első ütemben egy sorozat fog lejátszódni, és a többi 3 sáv nem ad hangot. Ennek az az oka, hogy csak az első ütemhez rendelt dobot, a többi üres. Ezeket kézzel is kitöltheti (válasszon egy új sávot az utolsó 4 lépés egyik gombjának megnyomásával, miközben lenyomva tartja a "shift" gombot, válassza ki az egyik dobot, töltse ki a lépéseket stb. Stb.), Vagy másolja és illessze be a létrehozott sávsorozatot az összes sávhoz, ha belép a szerkesztési módba (zárja vissza az első sávba), és nyomja meg a "record" gombot (amely most a "beillesztés" funkciót feltételezi), miközben lenyomva tartja a "shift" gombot. Könnyebben kivitelezhető, mint mondták.

DOBOK: ÉLŐ JÁTSZÁSI MÓD

Indításkor a szekvenszer szerkesztő módban van. A szerkesztési módból való kilépéshez tartsa lenyomva a "shift" gombot, és nyomja meg az éppen tartott/lezárt sávgombot (a 4. sor lépés gombja be van kapcsolva). Ezzel kikapcsolja a korábban lezárt sáv LED -jét, és feloldja a sorozatot. Most élő lejátszási módban van.

Élő lejátszás módban bármelyik gomb megnyomásával a gombhoz tartozó dob aktiválódik.

Ha élőben szeretné rögzíteni a sorozatot, indítsa el a sorozatot a "play" gomb megnyomásával, majd nyomja meg a "record" gombot (csak élő lejátszás módban). Egy piros LED világít. A dobszekvenszer vezérlőpanel mátrixán játszott játék vagy bármely bejövő MIDI megjegyzés üzenet (például külső MIDI billentyűzetről) rögzítésre kerül.

Egyéb funkciók

A "roll" gomb megnyomásával minden pillanatban (tekercsben) lejátszódik az éppen aktív dob. Ez "lépésről lépésre" és "élő lejátszás" módban is működik.

Ha megnyomja bármelyik lépés gombot, miközben lenyomva tartja a "némítás" gombot, az adott lépéshez tartozó dob elnémul (vagy elnémul). Ez "lépésről lépésre" és "élő lejátszás" módban is működik.

Egy adott dobütemezést törölhet, ha megnyomja a megfelelő lépés gombot, miközben lenyomva tartja a "REC" gombot.

A teljes sorozatot törölheti (soft reset), ha a "start" gombot több mint 3 másodpercig lenyomva tartja.

A "swing" potenciométer elforgatásával "lendítheti" a sorozatot.

A MIDI visszhangot letilthatja/engedélyezheti, ha megnyomja a "némítás" gombot, miközben lenyomva tartja a "shift" gombot. Ha a MIDI echo engedélyezve van (alapértelmezett), akkor a MIDI INPUT aljzaton lévő összes információ a MIDI OUTPUT aljzatba kerül (csak a MIDI megjegyzés bekapcsolása, a hangjelzés kikapcsolása, a kanyarodás, az utóérintés és a vezérlésváltás visszhangzik).

Mind a MIDI óra bemenet, mind a kimenet alapértelmezés szerint megvalósul és engedélyezve van. Abban az esetben, ha nem érkezik óra bemenet, a tempót a potenciométer állítja be. Abban az esetben, ha MIDI órajel érkezik, a tempót ebből számítják ki, és a tempó potenciométer nem válaszol. A MIDI óra mindig a MIDI kimenetre kerül.

6. lépés: Ritmus szakasz

Az eredeti ötlet egy "tiszta" 64 lépésből álló MIDI dobszekvenszer, amely akár 12 független dobrész szekvenálását is lehetővé teszi. Némi tesztelés után észrevettem, hogy jó lett volna basszusgitárt is vezérelni, és a változó lépésenkénti hangjellemzőt csak a legújabb dobhoz rendeltem. Ezt követően ismét módosítottam a kódot, hogy minden dobban megváltoztassam a hangmagasságot, és akár 12 szintetizátort vezéreljek. Egy későbbi felülvizsgálathoz hozzáadtam a polifóniát (a polifónia szintetizátoronként alapértelmezés szerint 3-ra korlátozódik).

Összefoglalva:

- LIVE módban, ha a LIVE felvétel be van kapcsolva és a sorozat elindult, polifonikusan rögzítheti a bejövő MIDI jegyzeteket. A hangmagasság és a hangerő információi tárolódnak. A kanyar és utólagos információk elvesznek. A MIDI Control Change üzenetek tárolásra kerülnek. Ne feledje, hogy csatornánként, lépésenként csak egy CC nyílás van.

- Ha a sorozat leáll, legfeljebb 3 hangmagasság -értéket (akkord) rögzíthet egy adott sáv egy bizonyos lépéséhez, ha lenyomva tartja a cél lépés gombot, és megnyomja (egyszerre vagy egyenként) a kívánt gombokat billentyűzetet a MIDI IN porthoz csatlakoztatva.

Vegye figyelembe, hogy:

- a lépésen kiváltott hangot a következő lépésnél "megölik". A hanghosszabbításhoz lépjen a szintetizátor "felszabadító" VCA paraméterére.

- a dobokkal ellentétben a hangokat nem lehet tekercsben lejátszani a "roll" gomb megnyomásával.

- LIVE felvételkor a bejövő MIDI csatornaadatok a relatív "dob" lépésben kerülnek tárolásra (MIDI #1 csatorna -> "dob" #1 és így tovább).

Egy adott szintetizátor szekvencia törléséhez nyomja meg a megfelelő "dob" lépés gombot, miközben lenyomva tartja a "REC" gombot. Ha ismét megnyomja, a dob sorrendje is törlődik. Ha CC szekvenciát rögzítettek, azt törlik először, majd a CC -> Szintetikus -> Dob sorrendet követve

7. lépés: Arpeggio triggerek

A 80-as évek elején a MIDI előtti szintetizátorok gyakran felszereltek néha "arpeggio trigger bemenettel". 2,5-5,0 V triggerelés (V-trig vagy "feszültség trigger") elküldésével vagy az arpeggio trigger bemenet földelésével (S-Trig vagy "kapcsoló trigger") utasíthatja a szintetizátort, hogy lépjen tovább egy arpeggio-sorozaton. Ezt nehezen lehet kezelni egy dedikált kioldás nélküli szekvenszerrel (néha "rimshot" hangzik egy dedikált kimenetről, ahol/a V-trig szintetizátorok céljára használják), de egy mikrokontroller táblával könnyen kezelheti az ilyen jeleket és vezérléseket a szintetikus arpeggio, ahogy azt a gyár jelentette.

Ez a ritmusszakasz -szekvenáló magában foglalja annak lehetőségét, hogy két különböző szintetizátor arpeggiatorját önállóan aktiválja.

A használata nagyon egyszerű: válassza ki a 11 -es vagy 12 -es dobot (nyomja meg a 11 -es vagy 12 -es lépést, miközben megnyomja a "shift" gombot), és aktiválja azokat a lépéseket, amelyeket az arpeggiatornak egy lépéssel el kell mozdítania. Így "programozhat" nagyon szűk 1/16 -os hangjegy hosszúságú szabályos arpeggiókat az összes lépés aktiválásával, vagy 1/8 -át minden más lépés aktiválásával. Ezenkívül bonyolultabb arpeggiókat is programozhat, ha aktiválja a szabálytalan utat követő lépéseket.

A vezérelni kívánt szintetizátor által támogatott trigger jel típusától függően egyszerű hardvermódosításra lesz szüksége: V-trig (azaz Roland szintetizátorok) esetén helyezzen 1 Kohm ellenállást sorba arduino trigger kimenettel. S-trig (azaz Korg szintetizátorok) esetén használja a "huzalozás" lépéshez csatolt shematikát a biztonságos kapcsolóindítóhoz.

8. lépés: Ha a dolgok nem működnek…

Még egy ilyen viszonylag egyszerű projekt is valószínűleg nem fog 100% -ban működni az első bekapcsoláskor. Itt, például, a gombok és a LED -ek közötti korreláció döntő fontosságú, és a páratlan huzalozás miatt a szekvenszer nem használható.

Annak érdekében, hogy tesztelhessem a lépésszekvenáló összes összetevőjét, írtam egy egyszerű tesztvázlatot (lásd a mellékletet).

A legújabb teszt firmware -t innen töltheti le (GitHub link).

A tesztvázlat a következőképpen működik:

- nyomja meg a lépés gombot: a megfelelő LED-nek be kell kapcsolnia, és a MIDI megjegyzés a 10. csatornán a MIDI kimenetre kerül.

- nyomja meg a funkciógombot: az első 5 LED egyike bekapcsol.

-forgassa meg a potenciométert: a LED -ek ennek megfelelően világítanak (első edény -> első LED -sor, második edény -> második LED -sor, harmadik edény -> harmadik LED -sor).

- ha bekapcsolt MIDI jegyzet érkezik, az első LED villog.

Ne feledje, hogy a MIDI echo alapértelmezés szerint engedélyezve van. Ez azt jelenti, hogy ha MIDI-hurok van a szintetizátor és az MRSS között, ez problémákat okozhat (a legtöbbször kiszámítható kettős hangot váltottam ki, de nagyon alacsony hangokat is kiváltottam, és általában nem reagáló beépített billentyűzetet MIDI-s szintetizátorokkal MIDI Throu szerepében… a szintetizátoron múlik). Ebben az esetben tiltsa le a MIDI visszhangot a "némítás" gomb megnyomásával, miközben a "shift" gombot lenyomva tartja.

Ajánlott: