Sisukord:

(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus ): 7 sammu (koos piltidega)
(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus ): 7 sammu (koos piltidega)

Video: (peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus ): 7 sammu (koos piltidega)

Video: (peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus ): 7 sammu (koos piltidega)
Video: Супер простой и быстрый рыболовный узел о котором мало кто знает. Лайфхаки и самоделки для рыбалки 2024, November
Anonim
(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus …)
(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus …)
(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus …)
(peaaegu) universaalne MIDI SysEx CC programmeerija (ja järjestus …)

Kaheksakümnendate keskel alustasid süntesaatorite tootjad "vähem on parem" protsessi, mis viis paljaste süntesaatoriteni. See võimaldas vähendada tootjapoolseid kulusid, kuid muutis lappimisprotsessi lõppkasutajale igavaks, kui mitte võimatuks.

Tootjad ise ja kolmandate osapoolte ettevõtted realiseerisid valikulised karbid, mis olid täis nuppe ja/või liugureid, et saaksite oma süntesaatoritoonidega tegelikult mängida, kuid need on tänapäeval rumalad ülehinnatud ja nagu alati, oleme sunnitud ise odavaid lahendusi leidma;)

See projekt tulenes minu vajadusest hõlpsasti programmeerida plaate mõnele oma viimasele süntesaatorile: Roland Alpha Juno 2 ja JX8P. See sai alguse lihtsa SysExi kontrollerina, siis kasvas see minust üles ja muutus millekski keerukamaks, teekonnal toetati ka teisi süntesaatoreid (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) ja sisseehitatud järjestust.

Selles juhendis näitan teile, kuidas oma kontrollerit realiseerida: odav tööriist, mis jäljendab neid kõrge hinnaga parameetrite juhtimiskaste … ja palju muud (üksikasjade lugemiseks jätkake lugemist …).

Samm: mis see asi täpselt on (ja mis mitte …)

Mis see asi täpselt on (ja mis mitte …)
Mis see asi täpselt on (ja mis mitte …)
Mis see asi täpselt on (ja mis mitte …)
Mis see asi täpselt on (ja mis mitte …)
Mis see asi täpselt on (ja mis mitte …)
Mis see asi täpselt on (ja mis mitte …)

Siin on MIDI SysEx ja Control Change kontroller sisuliselt 16 nupuga (potentsiomeetrid) ja 4 nupuga MIDI kontroller. Eskiis käsitleb kolme "lehte", kokku 48 sünteetilise tooni parameetrit.

Muutsin kontrolleri ühilduvaks juhtimise muutmise MIDI-sõnumitega (lihtne ja "globaalne" tüüpi MIDI-sõnum, mida süntesaatoritootjad kasutasid laialdaselt, eriti alates 90ndatest) ja SysExi sõnumitega (teist tüüpi MIDI-sõnumid, mis on vähem üldised ja väga sünteetilised kasutatud 80ndatel).

Eelkõige ühildub kontroller vaikimisi:

- Roland Alpha Juno (1/2)

- Roland JX8P

- Korg DW8000

- Oberheim Matrix 6/6R (> 2,14 püsivara)

- Järjestikused ahelad MAX/SixTrak.

Lõpuks saate lubada kontrolleril toimida mis tahes süntesaatoril, mis saab vastu võtta MIDI juhtimise muutmise (CC) teateid, kuid see on vaikimisi keelatud.

Projekti avatud lähtekoodiga olemusena on väga lihtne toetada mis tahes muud teie valitud süntesaatorit (üksikasju vt koodisammust).

Tooniparameetrite paigutus koos kõigi nende numbritega võib esialgu segadust tekitada, kuid see pole "juhuslik", nagu see võiks välja näha: see järgib tootja MIDI juurutamistabeli järjekorda. See oli disainivalik, et kood oleks lihtne ja "universaalne".

Sellel lehel saate alla laadida pildilehti 4x4 "paigutusega", mida ma Alpha-Junos, JX8P, DW8000, Matrix 6 ja MAX/SixTrak jaoks mõistsin: sinised parameetrid on need, mida saate leheküljel 1 kohandada, mustad leheküljel 2 ja oranžid need, mis lehel 3.

Isegi kui kontrolleril pole ekraani, muudab mängimine süntesaatoritega, mis näitavad teile, millist parameetrit reaalajas häälestatakse, plaastri loomise protsessi rõõmuks. Näiteks JX8P ja Matrix 6 on selleks võimelised; selle asemel ei näita Alpha Juno teile parameetrit, mida muudetakse, ja muudab asja natuke raskemaks (kuid vingete plaastrite loomine on kindlasti teostatav ja lihtsam kui sisseehitatud nupuvaba liidese kasutamine); DW8000 -l on ainult numbrilised näidikud, kuid näete oma muudatusi reaalajas, nii et see asetseb sellel vahepeal.

Aga need nupud seal?

Esimene (minu paigutuses vasakul ülaosas) on mõeldud lehtede sirvimiseks: iga nupuvajutusega liikuge järgmise parameetri lehele. LEDid näitavad, millisel lehel olete.

Teine, kui vajutate, saadab plaastri sinna, kus te töötate, tagasi süntesaatorile (kujutage ette: tegite oma elu plaastri, seejärel puudutasite süntesaatoripinnal olevat programminuppu ja nupupõhine plaaster laaditi … kõik teie tööd on läinud !). Selle nupuga saate saata kõik väärtused, mis programmeerija oli viimase lappimisprotsessi käigus meelde jätnud. See plaastri tagasikutsumise protsess ei toimi, kui vajutate juhuvalijat uuesti (randomiseerimise protsess kirjutab kõik mälus olevad parameetrid üle) ja see toimib ainult parameetrite puhul, mida olete vähemalt korra muutnud. Viimast plaastrit pärast sulgemist mällu ei hoita.

Kolmas on teisese funktsiooni jaoks: randomiseerija/plaaster! Keerake täiega vastupäeva nuppe, mille abil soovite, et parameeter, millel need toimivad, minimaalse väärtuse lukustaks (st ostsillaatori LFO, ostsillaatori ümbris jne) või pöörake väärtuse maksimeerimiseks täielikult päripäeva (st ostsillaatori segu maht, VCA helitugevus jne) ja vajutage kõigi muude parameetrite randomiseerimisprotsessi alustamiseks.

Neljas nupp on selleks, et aktiveerida lihavõttemuna (omamoodi …), mille sisestasin koodi pärast seda, kui märkasin, et paigutus sobib ideaalselt … 16 -astmeliseks MIDI -järjestuseks! Täpselt: vajutage neljandat nuppu (nupp MODE), kontroller siseneb "sekventeerimisrežiimi" ja teil on lubatud käivitada noote sarnaselt vana analoogjärjestusega. Tore uh!

Kontrolleri/patcheri režiimi naasmiseks vajutage uuesti nuppu MODE.

Aga need LEDid?

Iga nupu korral on 4 LED -i (minu paigutuses iga nupu paremal); Nendel valgusdioodidel on mitu valamist:

1) nad ütlevad teile, millisel parameetrite lehel olete (ülemine LED süttib, kui olete lehel 1, all olev LED süttib, kui lehekülg 2 on aktiivne, LED 3 põleb … arvate ise). Oleme piiratud 3 -leheküljelise sularahaautomaadiga, kuid koodi saab hõlpsasti häälestada, et see saaks rohkem lehti hallata;

2) teine LED näitab parameetrite lehekülge 2 JA põleb, kui mikrokontroller saadab eelmise plaastri (plaastri tagasikutsumine);

3) kolmas LED näitab parameetreid lk 3 JA põleb randomiseerimise käigus.

Neljas LED ei tee MIDI kontrolleri režiimis midagi ja seda kasutatakse globaalseks MODE muutmiseks.

Kõiki neid funktsioone edastatakse MIDI -sõnumitena, nii et teie süntesaator peab olema efektiivne, et seda tüüpi sõnumeid vastu võtta ja tõlgendada

2. samm: "Varjatud" 16 sammu järjestus

The
The

Nagu öeldud, mõistsin kontrollerit testides, et oleks tore lasta noodijärjestusel käia, et saaksin süntesaatori parameetreid kohandada ja tooni lõplikust mõjust paremini aru saada. Mul on tarkvarajärjestus (mulle nii meeldib seq24!), Kuid see riistvara on peaaegu täiuslik 16-astmeline järjestus! Siis oli selle rakendamine vaid koodi küsimus.

Saate lülituda kontrolleri režiimi ja järjestusrežiimi vahel, vajutades nuppu #4 (nupp MODE).

Jadajarežiimis töötavad nupud erinevalt ja LED -id annavad teile uut teavet:

- esimene nupp (SHIFT -nupp) vajutamisel võimaldab tempot, noodi pikkust, kanaleid ja oktaavi muutmist; tempo väärtuse annab esimese potentsiomeetri asukoht, noodi pikkus arvutatakse teisest potentsiomeetri asendist, MIDI kanalid kolmanda ja neljanda potentsiomeetri asendist ning oktaav (-1 o kuni +2) viiendast potist. Saate reguleerida tempot vahemikus 40 BPM (keerake potentsiomeeter #1 täis vastupäeva, hoides nuppu #1 all) kuni peaaegu 240 BPM (keerake potentsiomeeter #1 täis päripäeva, hoides samal ajal nuppu #1 all). Noodide pikkuseks saate määrata pooliku, neljandiku, kaheksanda ja kuueteistkümnenda noodi, keerates potti nr 2, hoides samal ajal all nuppu SHIFT. Saate seadistada MIDI kanaleid (esmane kanal ja sekundaarne kanal) vahemikus 1 kuni 16. Põhinootide vahemikku (C2 kuni F#4) saab alandada ühe oktavi võrra või suurendada ühe või kahe oktavi võrra.

Vaikimisi on tempoks seatud 120 lööki minutis ja nootide pikkus veerandnootidele.

- teine nupp käivitab ja peatab märkmete jada. Nagu öeldud, kui muudate režiimi, vajutades jada töötamise ajal nuppu 4 (MODE), sisenete kontrollerirežiimi, kuid järjestus töötab edasi.

- kolmas nupp on paanika! Selle vajutamisega lülitatakse kõik märkmed välja.

- neljandat kasutatakse globaalsete režiimide (pather või sekventser) vahetamiseks, kui nuppu #1 ei vajutata, või järjestusrežiimide vahel (vt järgnevalt), kui #1 on alla vajutatud.

Kui vajutate järjestusrežiimis režiimi valimise nuppu, hoides samal ajal nuppu 1 (SHIFT) all, saate vahetada kolme erineva järjestusrežiimi vahel:

1 - 16 sammu mono jada

2–16 sammu polüjärjestus: käivitatakse ka üks oktaav madalamal kui potid määravad (see tühjendab 2 häält löögi kohta)

3 - 8 sammu polüjärjestus, kahe kanaliga: kaks paralleelset 8 sammu järjestust saadetakse kahele erinevale kanalile (vaikimisi CH1 ja CH2); määrates sama kanali väärtuse nii esmasel kui ka teisel kanalil, saate sama (polüfoonilise) süntesaatori abil mängida kahte paralleelset 8-astmelist järjestust.

LED -ide kohta: niipea, kui sisenete järjestusrežiimi, süttivad kõik neli tuld. Jada käivitamisel järgivad LED -id jada (või järjestusi). Ma panin ühe LED iga nelja potentsiomeetri kohta ja see on minu jaoks piisav. Eskiisi oleks lihtne muuta 16 LED -i käsitsemiseks, üks iga sammu kohta.

Sammujärjestuse vahelejätmise funktsioonid, mida keegi võiks vajalikuks pidada: MIDI sünkroonimine IN, sammud hoiavad kinni (saate sulgeda ainult sammu), CV välja.

Olen rakendanud kella OUT, kuid on kuidagi lollakas. Proovisin selleks kahte lähenemisviisi (üks koos taimeri katkestustega ja teine ilma katkestusteta), kuid mõlemad olid ebatäiuslikud (või ebaõnnestusid täielikult). Pikaajaliseks töötamiseks peab MIDI kell olema rangelt täiuslik. Kella signaal saadetakse niikuinii ja saate selle otse visandil keelata (vt üksikasju hiljem).

Pange tähele, et see etapijärjestus on MIDI või soovi korral digitaalne, nii et tööks peab see olema ühendatud süntesaatoriga, mis võimaldab selliseid sõnumeid vastu võtta ja tõlgendada

3. samm: vajalik riistvara ja ehitamine

Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine
Vajalik riistvara ja ehitamine

Pärast kõiki neid sõnu olgem natuke lõbusad!

Me läheme tavalisele Arduino teed. Ma kasutasin Arduino MEGA -d suure hulga analoogsisendite tõttu (me tahame kasti täis nupulisi nuppe, kas pole ?!:)).

Eelkõige saab Arduino MEGA hakkama 16 analoogsisendiga (mõningase riistvarakohandamise abil, s.t. mükseerimisega saate seda suurendada, kuid me ei lähe siin seda teed), seega saadame 48 MIDI -sõnumit 16 potentsiomeetri kaudu. Seejärel kontrollib iga potentsiomeeter kolme parameetrit, üks iga "lehe" jaoks; leheküljed valitakse lülitusnupu abil.

Riistvara loend:

- 1x Arduino MEGA

- 16x lineaarne, ühe pöördega 10 K oomi potentsiomeeter

- 16x potinupud

- 4x hetkelised nupud

- 4x LED

- 6x 220 oomi takisti

- 1x MIDI -pistik

- 1x ABS projektide kast

Mõni kaabel, jootetraat ja kuus kuni kaheksa tundi vaba aega.

Ma kasutasin perfboardi ja mõningaid tihvtide päiseid, et saavutada mingi kilp, millele ma jootsin takistid ja juhtisin kaablid. Selle eeliseks on see, et saate oma Arduino välja võtta ja kasutada seda teiste projektide jaoks (meil kõigil on Arduino tahvlid mingil hetkel otsakorral!). See pole niikuinii kohustuslik ja veel üks hea lähenemisviis võiks olla arduino MEGA nööpnõelade ja jootekaablite jootmine otse oma kohale.

Ma kasutasin 220 oomi takistite asemel 200 oomi takistit ja need töötavad igatahes ideaalselt; võin kihla vedada, et isegi 150 oomi takistid toimiksid suurepäraselt (nii MIDI -side kui ka LED -ide puhul).

Karbi vormimiseks kandsin karbi pinnale esmalt mõne liimipaberi, mõõdetuna, kuhu augud tuleks puurida (mul oli aukudest auku 3 cm, et kõik potid sobiksid), tegin juhtavad ja seejärel suurendasin paremale suurus, et lasta potidel niidil või nuppudel keermestada minipuuriga. Kulutasin kasti lõpetamiseks enam -vähem 2 tundi. Sain aru ka väikestest aukudest ja liimisin LED -id paika.

Puurisin ka augu MIDI OUT pistiku jaoks ja teise arduino toitepistiku jaoks (kasutasin otse sisseehitatud USB toitepistikut ja lukustasin arduino MEGA kindlalt oma kohale).

HOIATUS: kandke puurimisel alati ALATI silmade ja käte kaitset, olenemata sellest, millise materjaliga te töötate (plast, puit, metallid, komposiidid … see pole oluline: olete ohus nii elektritööriistade kui ka erodeeritud/põletatud materjali kiipide suhtes) liikuvast tööriistast).

Seejärel asetasin kõik potid ja nupud ning jootsin komponendid vastavalt lisatud pildile. Tõhus viis lõppobjekti kaalu (ja kaablite pikkuse) vähendamiseks on kõikide pottide ketitamine nii 5V kui ka GND liinil.

Ja enne kui keegi küsib: ma tean, see kast, mida ma kasutasin, on kole! Aga see oli tasuta ja miski ei saa tasuta:)

4. samm: juhtmestik

Juhtmestik
Juhtmestik

Asjade ühendamine on lihtne, näiteks potentsiomeetri (x16), nupu (x4) ja LED -i (x4) ühendamine Arduino mikrokontrolleri plaadiga. Siin on käsitletud kõiki Arduino põhitõdesid:)

Juhtmestik on kinnitatud. Märka seda:

- Kasutatakse kõiki analoog -tihvte (vahemikus A0 kuni A15), üks iga potentsiomeetri kohta;

- kasutatakse 4 digitaalset tihvti (sisendit) (alates D51, D49, D47, D45), üks iga nupu jaoks;

- teisi 4 digitaalset tihvti (väljundit) kasutatakse valgusdioodide jaoks (D43, D41, D39, D37);

- MIDI väljundühendus on väga lihtne ja nõuab kahte 220 oomi takistit (kuid kuni 150 oomi töötab)

- Nupud ei nõua väljatõmmatavaid takistid, kuna visand aktiveerib sisemised Arduino tõmbe takistid.

- Iga valgusdiood küsib piiravat takistit (roheliste LED-ide jaoks sobib 200–220 oomi).

Kasutasin kaupade jaoks loetletud digitaalseid tihvte, kuid need ei ole "spetsiaalsed" nööpnõelad (me ei kasuta siin mõne tihvti pwm-funktsiooni ega mõnda muud tihvti spetsiifilist funktsiooni): saate määrata oma lemmik digitaalsed tihvtid, kuid ärge unustage seda muuta kood vastavalt või teie nupud/LED -id ei tööta!

Pange tähele, et pildil olev MIDI OUT ühendus on eestvaade (mitte tagantvaade).

Samm: tarkvara - mõni link teooriale

Ma ei hakka selgitama süsteemi ainuõigusliku või juhtimismuutmise sõnumite kogu teooriat, sest seal on palju häid artikleid ja juba kirjutatu ümberkirjutamine on rumal.

Lihtsalt mõni kiire link Roland SysExi rakendamiseks:

- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (INGLISH)

- https://www.2writers.com/eddie/tutsysex.htm (INGLISH)

- https://www.chromakinetics.com/handsonic/rolSysEx.h… (INGLISH)

- https://www.audiocentralmagazine.com/system-exclusi… (ITAALIA)

ja mõni link MIDI jaoks üldiselt:

-

-https://www.music-software-development.com/midi-tut…

Samm 6: Tarkvara - visand

Siin on visand, mille peaksite oma Arduino Megasse üles laadima.

Püüdsin hoida programmeerijat võimalikult "universaalsena", mis tähendab, et proovisin vähendada sünteesipõhiseid kooditükke. Püüdsin hoida koodi võimalikult lihtsana. Sammujärjestuse lisamine muutis asjad keerulisemaks ja koodi segasemaks, igatahes oli see minu jaoks seda väärt. Koodi "universaalseks" jätmine on seepärast ka kontrolleri paigutus nii "juhuslik": see järgib MIDI -rakenduse parameetrite järjekorda, mille on kindlaks määranud käsiraamatus tootja. See võib alguses segadusse ajada, kuid sellega harjub väga kiiresti.

Vaikimisi kood/visand/püsivara toetab "ainult" 48 parameetrit (kolm 16 nupuga lehte), nii et kõiki teie süntesaatorite poolt toetatud MIDI -sõnumeid ei oleks võimalik juhtida (mõelge Accessi viirusele või Novation Supernovale: nad aktsepteerivad rohkem või vähem kui 110 MIDI -ga ühilduvat parameetrit). Vajadusel saate visandit hõlpsalt muuta, et see toetaks rohkem sõnumeid.

Tegelikult toetatakse SysExi sõnumeid, mis ühilduvad Roland Alpha-Juno, JX8P, Korg DW8000 ja Oberheim Matrix 6-ga. Jätsin Juno 106 ühilduvate sõnumite koodi juhuks, kui teil on seda vaja.

Maatriks 6 jaoks pidin valima parameetrid, mida juhtida. Jätsin välja kolmanda ümbriku, teise kaldtee ja veel midagi. Maatriksit ei saa niikuinii MIDI kaudu juhtida, seega on see ka väljas. Teil on vaja värskendatud püsivara (versioon 2.14 või uuem) ja parameetri "Master -> Sysex Enable" väärtuseks tuleks määrata "3".

Kell on mingil moel lollakas (kell peab olema rangelt täiuslik, et töötada nii nagu peab ja ilmselt ka need kaks lähenemist, mille ma kasutasin, kui need ei olnud tõhusad). Vaikimisi on see keelatud.

Kood sisaldab kommentaare, seega pole siin vaja rohkem kommenteerida.

Nagu alati: pidage meeles, et ma pole päriselus kodeerija ja kindlasti on paremaid viise, kuidas kodeerida seda, mida me siin vajame. Kui olete kodeerija ja teil on ettepanekuid, 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!).

Ma õpin alati midagi uut, lugedes mõnda head kooderi koodi;)

Samm 7: Seotud projektid

Niipalju kui mina tean, pole MIDI parameetrite kontrollerit ja järjestust (võib -olla vana Behringer BCR2000 modifitseeritud püsivaraga?)

igatahes, kui te ei kavatse sellist kasti realiseerida, kuid olete väga huvitatud odavatest lahendustest oma süntesaatori parameetrite kaugjuhtimiseks, kaaluge järgmisi alternatiive:

- CTRL MIDI redaktor: see on suurepärane, tasuta avatud lähtekoodiga programm, mis töötab win/Linux/mac -is ja mis võib muuta teie arvuti SysExi süntesaatorite täielikuks kontrolleriks

- David Konsumeri "junosexi" CC -muundur: see projekt nõuab teie poolel väiksemat riistvaratööd ja idee on suurepärane - arduino -põhine CC -SysEx -muundur, mis võimaldab teil kasutada tavalist mitte -SysEx -i MIDI -kontrollerit (st AKAI MPK peaklaviatuuri)), et rääkida oma SysEx-valmis süntesaatoriga

Soovitan: