Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Sredinom osamdesetih proizvođači sintetizatora proizvođači su započeli proces "manje je bolje" koji je doveo do sintetizatora barebones. To je omogućilo smanjenje troškova sa strane proizvođača, ali je učinilo proces krpanja krajnjim korisnikom, ako ne i nemogućim.
Sami proizvođači i tvrtke trećih strana realizirali su izborne kutije pune gumba i/ili klizača koji vam omogućuju da se zapravo "igrate" sa svojim sintetičkim tonovima, ali to su danas glupe precijenjene cijene i, kao i uvijek, prisiljeni smo sami pronaći jeftina rješenja;)
Ovaj projekt je došao iz moje potrebe da lako programiram zakrpe na nekim od mojih najnovijih sintetičkih proizvoda: Roland Alpha Juno 2 i JX8P. Počelo je kao jednostavan SysEx kontroler, a zatim je odrastalo na meni i postalo nešto složenije, uz usput podržane i druge sintetizatore (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) i ugrađeni sekvencer.
U ovom uputstvu pokazat ću vam kako realizirati svoj vlastiti kontroler: jeftin alat koji oponaša te skupe kutije za upravljanje parametrima … i još mnogo toga (nastavite čitati za detalje …).
Korak 1: Što je to zapravo (a što nije …)
Ovdje je MIDI SysEx i kontrola promjene kontrolera u osnovi 16 tipki (potenciometara) i 4 tipke MIDI kontrolera. Zadana skica obrađuje tri "stranice", za ukupno 48 parametara tona sinteze.
Učinio sam kontroler kompatibilnim s promjenama kontrole MIDI poruka (jednostavna i "globalna" vrsta MIDI poruke koju široko koriste proizvođači sintetizatora, posebno iz 90-ih) i SysEx poruka (druga vrsta MIDI poruka, manje općenita i jako specifična za sintezu) koristi se 80 -ih godina).
Konkretno, kontroler je prema zadanim postavkama kompatibilan sa:
- Roland Alpha Juno (1/2)
- Roland JX8P
- Korg DW8000
- Oberheim Matrix 6/6R (> 2.14 firmver)
- Sekvencijski krugovi MAX/SixTrak.
Konačno možete omogućiti kontroloru da djeluje na bilo kojem sintetizatoru koji može primati poruke o promjeni MIDI kontrole (CC), ali je prema zadanim postavkama onemogućen.
Budući da je projekt otvorenog koda, vrlo je jednostavno podržati bilo koji drugi sintetizator po vašem izboru (detalje potražite u koraku koda).
Raspored parametara tonova sa svim tim brojevima u početku bi mogao biti zbunjujući, ali nije "slučajan" kako bi mogao izgledati: slijedi redoslijed proizvođača MIDI tablice implementacije. Ovo je bio izbor dizajna kako bi kôd bio jednostavan i "univerzalan".
Na ovoj stranici možete preuzeti listove slika s 4x4 "rasporedom" koji sam realizirao za Alpha-Junos, JX8P, DW8000, Matrix 6 i MAX/SixTrak: plavi parametri su oni koje možete prilagoditi na stranici 1, crni na stranici 2 i narančaste one na stranici 3.
Čak i ako kontroler nema zaslon, poigravanje sa sintetizatorima koji vam pokazuju koji se parametar podešava u stvarnom vremenu čini proces stvaranja zakrpe radošću. Za to su, na primjer, sposobni JX8P i Matrix 6; umjesto toga, Alpha Juno ne prikazuje parametre koji se mijenjaju i čini stvari malo težima (ali stvaranje izvrsnih zakrpa definitivno je izvedivo i lakše nego pomoću ugrađenog sučelja bez čvorova); DW8000 ima samo numeričke zaslone, ali svoje ugađanja možete vidjeti u stvarnom vremenu pa se postavlja između njih.
Što je s tim gumbima?
Pa, prva (gore lijevo u mom izgledu) je za pregledavanje stranica: prijeđite na stranicu sljedećeg parametra pri svakom pritisku gumba. LED diode će pokazati na kojoj ste stranici.
Drugi, kad pritisnete, pošaljite zakrpu gdje radite natrag do sintetizatora (zamislite to: napravili ste zakrpu svog života, zatim dodirnuli programsku tipku na površini sintetizatora i zakrpa specifična za gumb je učitana … sav vaš posao je otišao !). Pomoću ovog gumba možete poslati sve vrijednosti koje je programer zapamtio tijekom zadnjeg procesa krpljenja. Ovaj postupak opoziva zakrpe ne funkcionira ako ponovno pritisnete randomizer (postupak randomizacije prepisuje sve parametre u memoriji), a učinkovit je samo na parametre koje ste barem jednom uredili. Najnoviji zakrpa se ne čuva u memoriji nakon gašenja.
Treći je za sekundarnu funkciju: randomizer/patcher! Okrenite gumbe u smjeru suprotnom od kazaljke na satu na kojima želite da se parametar na koji djeluju zaključa na minimalnu vrijednost (tj. LFO oscilatora, omotač oscilatora itd.) Ili okrenite do kraja u smjeru kazaljke na satu kako biste povećali vrijednost (tj. Volumen miksanja oscilatora, volumen VCA itd.) I pritisnite gumb za pokretanje procesa randomizacije za sve ostale parametre.
Četvrti gumb je tu da aktivira uskršnje jaje (nekako …) koje sam stavio u kôd nakon što sam primijetio da je raspored savršen za … MIDI sekvencer od 16 koraka! Točno: pritisnite četvrtu tipku (tipka MODE), upravljač će ući u "način rada sekvencera" i bit će vam dopušteno pokrenuti bilješke na sličan način kao i stari analogni sekvencer. Lijepo uh!
Ponovno pritisnite gumb MODE za povratak u način rada kontroler/patcher.
Što je s tim LED diodama?
Postoje 4 LED diode u skladu sa svakim gumbom (desno od svakog gumba u mom rasporedu); ove LED diode imaju više izljeva:
1) oni vam govore na kojoj se stranici sa parametrima nalazite (gornja LED dioda svijetli kada ste na stranici 1, LED ispod svijetli kada je stranica 2 aktivna, LED 3 svijetli … sami ste zaključili). Ograničeni smo na 3 stranice bankomata, ali kôd se može lako podesiti za rukovanje s više stranica;
2) druga LED označava parametre stranica 2 I svijetli kada mikrokontroler šalje prethodnu zakrpu (povlačenje zakrpe);
3) treća LED dioda pokazuje parametre stranica 3 I svijetli tijekom procesa randomizacije.
Četvrta LED ne radi ništa u načinu rada MIDI kontrolera i koristi se za globalnu promjenu MODE -a.
Sve ove funkcije prenose se kao MIDI poruke, pa da bi bio učinkovit, vaš sintetizator mora biti sposoban/omogućen primanje i tumačenje ove vrste poruka
Korak 2: "Skriveni" sekvencer od 16 koraka
Kao što je rečeno, tijekom testiranja kontrolera shvatio sam da bi bilo sjajno pustiti niz bilješki kako bih mogao podesiti parametre sinteze i imati bolju predodžbu o konačnom učinku na ton. Imam softverski sekvencer (toliko mi se sviđa seq24!), Ali ovaj hardver je gotovo SAVRŠEN sekvencer sa 16 koraka! Tada je bilo samo pitanje koda za njegovu implementaciju.
Možete se prebacivati između načina kontrolera i načina rada sekvencera pritiskom na gumb #4 (gumb MODE).
Dok u načinu rada sekvencera tipke rade drugačije, a LED diode daju vam nove informacije:
- prva tipka (tipka SHIFT) kada se pritisne omogućuje tempo, duljinu note, izmjenu kanala i oktave; vrijednost tempa daje se položajem prvog potenciometra, nota se izračunava iz drugog položaja potenciometra, MIDI kanali iz trećeg i četvrtog položaja potenciometra i oktava (-1 o do +2) iz petog lonca. Možete kontrolirati tempo od 40 BPM (okrenite potenciometar #1 do kraja u smjeru suprotnom od kazaljke na satu držeći pritisnutom tipku #1) do gotovo 240 BPM (okrenite potenciometar #1 do kraja u smjeru kazaljke na satu držeći pritisnutom tipku #1). Možete postaviti duljinu nota na polovinu note, notu četvrtine, osmicu, notu šestorke okrećući pot #2 držeći pritisnutu tipku SHIFT. Možete postaviti MIDI kanale (primarni kanal i sekundarni kanal) od 1 do 16. Osnovni raspon nota (od C2 do F#4) može se smanjiti za jednu oktavu ili povećati za jednu ili dvije oktave.
Prema zadanim postavkama tempo je postavljen na 120 BPM, a dužina note do četvrtine nota.
- drugi gumb pokreće i zaustavlja niz bilješki. Kao što je rečeno, ako promijenite način rada pritiskom na tipku #4 (MODE) tijekom izvođenja slijeda, ući ćete u način rada kontrolera, ali niz će se nastaviti izvoditi.
- treći gumb je PANIKA! Pritiskom na nju sve će se bilješke isključiti.
- četvrti se koristi za prebacivanje između globalnih načina rada (patter ili sekvencera) kada nije pritisnuta tipka #1, ili između načina niza (vidi dalje) kada je pritisnuta #1.
U načinu rada sekvencera ako pritisnete tipku za odabir načina dok držite tipku #1 (SHIFT) pritisnutom, možete se prebacivati između 3 različita načina sekvenciranja:
Mono slijed od 1 - 16 koraka
2 - 16 koraka poli sekvenca: aktiviraju se i note za jednu oktavu niže od onih definiranih loncima (ovo ispušta 2 glasa po taktu)
Poli niz od 3 do 8 koraka, dvokanalni: dvije paralelne sekvence od 8 koraka šalju se na dva različita kanala (CH1 i CH2 prema zadanim postavkama); postavljanjem iste vrijednosti kanala i na primarnom i na sekundarnom kanalu možete imati dvije paralelne sekvence od 8 koraka koje svira isti (polifoni) sintisajzer.
O LED diodama: čim uđete u način rada sekvencera, zasvijetlit će sva četiri svjetla. Kada pokrenete niz, LED diode će slijediti slijed (ili sekvence). Postavio sam jednu LED na svaka četiri potenciometra i meni je to dovoljno. Bilo bi jednostavno izmijeniti skicu za rukovanje sa 16 LED dioda, po jednom za svaki vaš korak.
Značajke propuštanja sekvencera koraka koje bi netko mogao smatrati potrebnima: MIDI sinhronizacija IN, zadržavanje koraka (možete isključiti samo korak), CV bez.
Implementirao sam clock OUT, ali je nekako pogrešan. Za to sam isprobao dva pristupa (jedan sa i jedan bez prekida mjerača vremena), no oba su bila nesavršena (ili potpuno neuspješno). MIDI sat mora biti strogo savršen za rad na duge staze. Signal sata se ionako šalje i možete ga onemogućiti izravno na skici (za detalje pogledajte kasnije).
Uočite da je ovaj sekvencer koraka MIDI ili digitalni ako želite, pa da bi radio mora biti povezan na sintetički uređaj omogućen za primanje i tumačenje ovakvih poruka
Korak 3: Potreban hardver i izgradnja
Nakon svih ovih riječi, zabavimo se!
Idemo uobičajenim Arduino načinom. Koristio sam Arduino MEGA -u zbog velike količine analognih ulaza (želimo kutiju punu ručnih gumba, zar ne ?!:)).
Konkretno, Arduino MEGA može rukovati sa 16 analognih ulaza (uz određena hardverska podešavanja, tj. Muxingom, to možete povećati, ali mi ovdje ne idemo ovim putem), pa ćemo poslati 48 MIDI poruka putem 16 potenciometara. Svaki potenciometar će tada kontrolirati tri parametra, po jedan za svaku "stranicu"; stranice se odabiru prekidačem.
Popis hardvera:
- 1x Arduino MEGA
- 16x linearni, jednokretni potenciometri od 10 K ohma
- 16x gumbi za lonac
- 4x trenutni gumbi
- 4x LED
- 6x 220 ohmski otpornik
- 1x MIDI priključak
- 1x kutija za ABS projekte
Neki kabel, žica za lemljenje i šest do osam sati slobodnog vremena.
Koristio sam perfboard i neke pin zaglavlje kako bih realizirao neku vrstu štita na koji sam lemio otpornike i usmjeravao kabele. Ovo ima prednost što vam omogućuje da izvadite svoj Arduino i upotrijebite ga za druge projekte (svi ćemo u jednom trenutku ostati bez Arduino ploča!). Ionako nije obvezno, a još jedan dobar pristup mogao bi biti odleđivanje arduino MEGA pinheadera i lemnih kabela izravno na mjestu.
Koristio sam otpornike od 200 ohma umjesto otpornika od 220 ohma i oni ionako rade savršeno; kladio bih se da bi čak i 150 ohmski otpornici radili odlično (i za MIDI komunikaciju i za LED).
Da bih oblikovao kutiju, prvo sam nanio malo adhezivnog papira na površinu kutije, izmjerio gdje treba izbušiti rupe (imao sam 3 cm od rupe do rupe kako bi se svi lonci uklopili) napravio rupe za vođenje, a zatim uvećao udesno veličina kako bi mini bušilica omogućila provlačenje niti ili gumba. Potrošio sam manje -više 2 sata da dovršim kutiju. I ja sam shvatio male rupe i zalijepio LED diode na svoje mjesto.
Također sam izbušio rupu za MIDI OUT konektor i drugu za arduino konektor za napajanje (izravno sam koristio ugrađeni USB konektor za napajanje i čvrsto zaključao arduino MEGA na mjestu).
UPOZORENJE: Uvijek UVIJEK nosite zaštitu za oči i ruke tijekom bušenja, bez obzira na materijal na kojem radite (plastika, drvo, metali, kompoziti … nije važno: u opasnosti ste i u pogledu električnih alata i iverja materijala erodiranog/pečenog) od alata za pomicanje).
Zatim sam stavio sve lonce i gumbe i lemio komponente prema priloženoj slici. Učinkovit način da se smanji težina konačnog objekta (i duljina kabela) je da tratinčicom povežete sve posude i na 5V liniju i na GND vod.
I prije nego što netko upita: Znam, ta je kutija koju sam koristio ružna! Ali bilo je besplatno i ništa nije bolje:)
Korak 4: Ožičenje
Ožičenje je jednostavno, poput povezivanja potenciometra (x16), gumba (x4) i LED (x4) na ploču mikrokontrolera Arduino. Ovdje su opisane sve osnove Arduina:)
U prilogu je ožičenje. Primijeti da:
- Koriste se svi analogni pinovi (od A0 do A15), po jedan za svaki potenciometar;
- Koriste se 4 digitalna pina (ulazi) (od D51, D49, D47, D45), po jedan za svaki gumb;
- druga 4 digitalna pina (izlazi) koriste se za LED diode (D43, D41, D39, D37);
- MIDI izlaz je vrlo jednostavan i traži dva otpornika od 220 ohma (ali do 150 ohma će raditi)
- Gumbi ne traže spuštajuće otpornike jer skica aktivira unutarnje Arduino otpornike.
- Svaka LED dioda traži otpornik za ograničavanje struje (200-220 ohma je u redu za zelene LED diode).
Koristio sam navedene digitalne pinove za robu, ali to nisu "posebni" pinovi (ovdje ne koristimo pwm mogućnosti nekih pinova ili neku drugu značajku specifičnu za pin): možete postaviti svoje omiljene digitalne pinove, ali ne zaboravite izmijeniti kod u skladu s tim ili vaši gumbi/LED diode neće raditi!
Molimo, imajte na umu da je MIDI OUT priključak na slici pogled FRONT (ne pogled straga).
Korak 5: Softver - neke veze s teorijom
Neću objašnjavati cijelu teoriju iza poruka System Exclusive ili Control Change jer postoji mnogo dobrih članaka i glupo je prepisivati ono što je već napisano.
Samo nekoliko brzih veza za implementaciju Roland SysExa:
- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (ENGLESKI)
- https://www.2writers.com/eddie/tutsysex.htm (ENGLESKI)
- https://www.chromakinetics.com/handsonic/rolSysEx.h… (ENGLESKI)
- https://www.audiocentralmagazine.com/system-exclusi… (ITALIANO)
i neke veze za MIDI općenito:
-
-https://www.music-software-development.com/midi-tut…
Korak 6: Softver - skica
Ovdje je u prilogu skica koju trebate postaviti na svoj Arduino Mega.
Pokušao sam programer držati što univerzalnijim, što znači da sam pokušao smanjiti komade koda specifične za sintetizatore. Pokušao sam zadržati kôd što jednostavnijim. Dodavanje sekvencera koraka učinilo je stvari složenijima, a kôd neurednijim, svejedno mi se isplatilo. Čuvanje koda "univerzalnim" je razlog zašto je raspored kontrolera tako "slučajan": slijedi redoslijed parametara MIDI implementacije proizvođača sintetičara definiranog u priručniku. U početku bi moglo biti zbunjujuće, ali na to ćete se vrlo brzo naviknuti.
Zadani kôd/skica/firmver podržava "samo" 48 parametara (tri stranice sa po 16 gumba svaki) pa nije moguće kontrolirati sve MIDI poruke koje podržava vaš sintetizator (pomislite na Access Virus ili Novation Supernova: prihvaćaju više ili manje 110 parametara usklađenih s MIDI -jem). Skicu možete jednostavno promijeniti tako da podržava više poruka, ako je potrebno.
Zapravo su podržane SysEx poruke kompatibilne s Roland Alpha-Juno, JX8P, Korg DW8000 i Oberheim Matrix 6. Ostavio sam kôd za kompatibilne poruke Juno 106 u slučaju da vam je to potrebno.
Za Matrix 6 morao sam odabrati parametre za kontrolu. Izostavio sam treću omotnicu, drugu rampu i još nešto. Matrica se ionako ne može kontrolirati putem MIDI -ja, pa je i ona vani. Potreban vam je ažurirani firmver (verzija 2.14 ili novija) i trebate postaviti parametar "Master -> Sysex Enable" na "3".
Sat je nekako neispravan (sat mora biti strogo savršen da bi radio kako treba i vjerojatno su dva pristupa koja sam usvojio tamo gdje nisu učinkoviti). Prema zadanim postavkama onemogućeno je.
Kôd uključuje komentare pa nema potrebe za daljnjim komentarima ovdje.
Kao i uvijek: zapamtite da u stvarnom životu nisam koder i zasigurno postoje bolji načini da kodiramo ono što nam je potrebno ovdje. Ako ste koder i imate prijedlog, dobrodošli ste! Molimo vas da mi pošaljete bilo koju varijaciju koja može povećati učinkovitost/djelotvornost koda i ja ću je uključiti u glavnu skicu (očito citirajući suradnika!).
Uvijek naučim nešto novo čitajući neki dobar kod kodera;)
Korak 7: Povezani projekti
Koliko ja znam, nema kontrolera i sekvencera za MIDI parametre (možda stari Behringer BCR2000 s izmijenjenim firmverom?)
u svakom slučaju, ako niste skloni realizirati ovakav okvir, ali ste jako zainteresirani za jeftina rješenja za daljinsko upravljanje parametrima sinteze, razmislite o drugim alternativama:
- CTRL MIDI uređivač: ovo je briljantan, besplatan program otvorenog koda koji radi na win/Linux/mac i koji vaše računalo može pretvoriti u potpuni kontroler za SysEx sintetičare
- "junosex" CC pretvarač Davida Konsumara: ovaj projekt traži manji hardverski rad s vaše strane i ideja je odlična - arduino bazirani pretvarač CC u SysEx koji vam omogućuje da koristite uobičajeni MIDI kontroler koji nije SysEx (tj. AKAI MPK glavna tipkovnica) za razgovor sa vašim sintetizatorom spremnim za SysEx