Turinys:

(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer ): 7 žingsniai (su nuotraukomis)
(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer ): 7 žingsniai (su nuotraukomis)

Video: (beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer ): 7 žingsniai (su nuotraukomis)

Video: (beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer ): 7 žingsniai (su nuotraukomis)
Video: ИНТЕРЕСНАЯ цельнокроеная ЮБКА в клетку с застежкой по переду 🧐 СХЕМА крой и ОБЗОР готового изделия 2024, Lapkritis
Anonim
(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer …)
(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer …)
(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer …)
(beveik) universalus „MIDI SysEx CC“programuotojas (ir sequencer …)

Devintojo dešimtmečio viduryje sintezatorių gamintojai pradėjo „mažiau yra geriau“procesą, dėl kurio atsirado „barebones“sintezatoriai. Tai leido sumažinti gamintojo išlaidas, tačiau galutiniam vartotojui pataisymo procesas tapo nuobodus, jei ne neįmanomas.

Patys gamintojai ir trečiųjų šalių įmonės suprato pasirinktines dėžutes, kuriose yra rankenėlių ir (arba) slankiklių, kad galėtumėte iš tikrųjų „žaisti“su savo sintezatoriaus tonais, tačiau šiais laikais tai yra kvaila per didelė kaina ir, kaip visada, esame priversti patys rasti pigių sprendimų;)

Šis projektas atsirado dėl mano poreikio lengvai užprogramuoti kai kurių naujausių pirkinių sintezatorių: „Roland Alpha Juno 2“ir „JX8P“pataisas. Jis prasidėjo kaip paprastas „SysEx“valdiklis, vėliau užaugo ant manęs ir tapo kažkuo sudėtingesnis, pakeliui palaikant kitus sintezatorius („Korg DW8000“, „Oberheim Matrix 6/6R“, „SCI MAX“) ir įmontuotą seką.

Šioje pamokoje aš jums parodysiu, kaip realizuoti savo valdiklį: pigus įrankis, kuris imituoja tas brangias parametrų valdymo dėžutes … ir dar daugiau (toliau skaitykite, jei norite sužinoti daugiau).

1 žingsnis: kas tai yra (ir kas ne …)

Kas tai yra (ir kas ne …)
Kas tai yra (ir kas ne …)
Kas tai yra (ir kas ne …)
Kas tai yra (ir kas ne …)
Kas tai yra (ir kas ne …)
Kas tai yra (ir kas ne …)

„MIDI SysEx“ir „Control Change“valdiklis čia iš esmės yra 16 rankenėlių (potenciometrai) ir 4 mygtukų MIDI valdiklis. Numatytasis eskizas tvarko tris „puslapius“, iš viso 48 sintezatoriaus tono parametrus.

Aš padariau valdiklį suderinamą su valdymo keitimo MIDI pranešimais (paprastas ir „visuotinis“MIDI pranešimų tipas, plačiai naudojamas sintezatorių gamintojų, ypač nuo 90-ųjų) ir „SysEx“pranešimais (kito tipo MIDI pranešimai, mažiau bendri ir labai specifiniai sintezatoriams) naudojamas 80 -aisiais).

Visų pirma valdiklis pagal numatytuosius nustatymus yra suderinamas su:

- Rolandas Alfa Juno (1/2)

- Rolandas JX8P

- Korg DW8000

- „Oberheim Matrix 6/6R“(> 2.14 programinė įranga)

- Nuoseklios grandinės MAX/SixTrak.

Galiausiai galite įgalinti valdiklį veikti bet kuriame sintezatoriuje, kuris gali priimti MIDI valdymo keitimo (CC) pranešimus, tačiau jis pagal nutylėjimą yra išjungtas.

Kadangi projektas yra atvirojo kodo pobūdis, labai lengva palaikyti bet kurį kitą jūsų pasirinktą sintezatorių (daugiau informacijos rasite kodo žingsnyje).

Tono parametrų išdėstymas su visais šiais skaičiais iš pradžių gali būti painus, tačiau tai nėra „atsitiktinis“, kaip galėtų atrodyti: jis atitinka gamintojo MIDI diegimo diagramos tvarką. Tai buvo dizaino pasirinkimas, kad kodas būtų paprastas ir „universalus“.

Šiame puslapyje galite atsisiųsti paveikslėlių lapus su 4x4 „išdėstymu“, kurį supratau „Alpha-Junos“, „JX8P“, „DW8000“, „Matrix 6“ir „MAX/SixTrak“: mėlyni parametrai yra tie, kuriuos galite patobulinti 1 puslapyje, juodus-2 puslapyje ir oranžinės spalvos 3 puslapyje.

Net jei valdiklis neturi ekrano, žaisdami sintezatoriais, kurie parodo, koks parametras derinamas realiu laiku, pataisos kūrimo procesas tampa džiaugsmu. Pavyzdžiui, „JX8P“ir „Matrix 6“tai sugeba; „Alpha Juno“nerodo jums keičiamo parametro ir šiek tiek apsunkina darbą (tačiau sukurti nuostabius pataisymus tikrai galima ir lengviau nei naudojant integruotą sąsają be rankenėlių); „DW8000“turi tik skaitmeninius ekranus, tačiau jūs galite matyti savo pakeitimus realiuoju laiku, kad jis būtų tarp jų.

O kaip ten tie mygtukai?

Na, pirmasis (mano išdėstymo viršuje kairėje) skirtas naršymui puslapiuose: kiekvieną kartą paspaudus mygtuką pereikite prie kito parametro puslapio. Šviesos diodai parodys, kuriame puslapyje esate.

Antrasis, kai paspaudžiate, siunčia pataisą, kur dirbate, atgal į sintezatorių (įsivaizduokite: sukūrėte savo gyvenimo pleistrą, tada palietėte programos mygtuką ant sintezatoriaus paviršiaus ir buvo įkeltas konkrečiam mygtukui skirtas pleistras … visi jūsų darbai dingo !). Šiuo mygtuku galite siųsti visas reikšmes, kurias programuotojas įsiminė paskutinio taisymo proceso metu. Šis pleistro atšaukimo procesas neveikia, jei dar kartą paspausite atsitiktinumo nustatymo mygtuką (atsitiktinės atrankos procesas perrašys visus atmintyje esančius parametrus) ir jis veiksmingas tik tiems parametrams, kuriuos redagavote bent kartą. Išjungus naujausias pataisas nelaikomas atmintyje.

Trečiasis skirtas antrinei funkcijai: atsitiktinių imčių įrankiui/lopytojui! Visiškai pasukite prieš laikrodžio rodyklę rankenėles, kuriomis norite, kad parametras, kuriuo jie veikia, užfiksuotų minimalią vertę (ty osciliatoriaus LFO, osciliatoriaus gaubtas ir pan.) Arba visiškai pasukite pagal laikrodžio rodyklę, kad padidintumėte vertę (ty osciliatoriaus mišinio tūris, VCA garsumas ir kt.), Ir paspauskite mygtukas, skirtas pradėti visų kitų parametrų atsitiktinės atrankos procesą.

Ketvirtasis mygtukas yra skirtas Velykų kiaušiniui suaktyvinti (savotiškas …), kurį įdėjau į kodą, pastebėjęs, kad išdėstymas puikiai tinka … 16 žingsnių MIDI sekos nustatymui! Tiksliai: paspauskite ketvirtą mygtuką (MODE mygtukas), valdiklis pateks į „sekos nustatymo režimą“ir jums bus leidžiama suaktyvinti natas panašiai, kaip tai padarė senas analoginis sekos daviklis. Puiku uh!

Dar kartą paspauskite mygtuką MODE, kad grįžtumėte į valdiklio/lopytojo režimą.

O kaip tie šviesos diodai?

Prie kiekvieno mygtuko yra 4 šviesos diodai (mano išdėstymo kiekvieno mygtuko dešinėje); šiuose šviesos dioduose yra keli pulteliai:

1) jie nurodo, kuriame parametrų puslapyje esate (viršutinis šviesos diodas dega, kai esate 1 puslapyje, apačioje esantis šviesos diodas šviečia, kai 2 puslapis yra aktyvus, dega 3 … jūs pats tai supratote). Mes apsiribojame 3 puslapių bankomatu, tačiau kodą galima lengvai sureguliuoti, kad būtų galima tvarkyti daugiau puslapių;

2) antrasis šviesos diodas nurodo parametrus 2 puslapis IR užsidega, kai mikrovaldiklis siunčia ankstesnį pleistrą (pataisos atšaukimas);

3) trečiasis šviesos diodas rodo parametrus 3 puslapis IR užsidega atsitiktinės atrankos proceso metu.

Ketvirtasis šviesos diodas nieko neveikia MIDI valdiklio režimu ir yra naudojamas visuotiniam MODE keitimui.

Visos šios funkcijos yra perduodamos kaip MIDI pranešimai, todėl, kad jūsų sintezatorius būtų veiksmingas, jis turi sugebėti priimti ir interpretuoti tokio tipo pranešimus

2 žingsnis: „Paslėptas“16 žingsnių sekos nustatymo įrankis

The
The

Kaip minėta, bandydamas valdiklį supratau, kad būtų puiku leisti paleisti natų seką, kad galėčiau pakoreguoti sintezės parametrus ir geriau įsivaizduoti galutinį tono poveikį. Turiu programinės įrangos seką (man labai patinka seq24!), Tačiau ši aparatūra yra beveik TOBULAS 16 žingsnių sekos daviklis! Tada beliko tik jį įgyvendinti.

Galite perjungti valdiklio režimą ir sekos nustatymo režimą paspausdami mygtuką #4 (MODE mygtukas).

Sekos režimo mygtukai veikia skirtingai, o šviesos diodai suteikia jums naujos informacijos:

- pirmasis mygtukas (SHIFT mygtukas) paspaudus leidžia keisti tempą, natų ilgį, kanalus ir keisti oktavą; tempo reikšmę nurodo pirmojo potenciometro padėtis, natos ilgis skaičiuojamas nuo antros potenciometro padėties, MIDI kanalai iš trečios ir ketvirtos potenciometro padėties ir oktava (-1 o iki +2) nuo penktojo puodo. Galite valdyti tempą nuo 40 BPM (pasukite potenciometrą Nr. 1 prieš laikrodžio rodyklę, laikydami nuspaustą mygtuką 1) iki beveik 240 BPM (pasukite potenciometrą Nr. 1 pagal laikrodžio rodyklę, laikydami nuspaustą mygtuką 1). Užrašų ilgį galite nustatyti iki pusės, ketvirtojo, aštuoneto, šešioliktojo, pasukdami puodą Nr. 2, laikydami nuspaudę SHIFT mygtuką. Galite nustatyti MIDI kanalus (pagrindinis ir antrinis kanalas) nuo 1 iki 16. Bazinių natų diapazonas (nuo C2 iki F#4) gali būti sumažintas viena oktava arba padidintas viena ar dviem oktavomis.

Pagal numatytuosius nustatymus tempas yra 120 BPM, o natų ilgis - ketvirtinių natų.

- antrasis mygtukas paleidžia ir sustabdo užrašų seką. Kaip minėta, jei pakeisite režimą paspausdami mygtuką #4 (MODE), kai vykdysite seką, pateksite į valdiklio režimą, tačiau seka ir toliau veiks.

- trečias mygtukas yra PANIKA! Paspaudus jį visi užrašai bus išjungti.

- ketvirtasis naudojamas perjungimui tarp visuotinių režimų („pather“arba „sequencer“), kai nepaspaudžiamas mygtukas 1, arba tarp sekos režimų (žr. toliau), kai paspaudžiamas #1.

Sekos nustatymo režimu, jei paspausite režimo pasirinkimo mygtuką, laikydami nuspaustą mygtuką 1 (SHIFT), galėsite perjungti 3 skirtingus sekos režimus:

1 - 16 žingsnių mono seka

2–16 žingsnių daugialypė seka: taip pat suaktyvinama viena oktava žemesnė už tas, kurios apibrėžtos puoduose (tai išleidžia 2 balsus per taktą)

3–8 žingsnių daugialypė seka, dvigubas kanalas: du lygiagrečiai 8 žingsnių ciklai siunčiami į du skirtingus kanalus (pagal numatytuosius nustatymus CH1 ir CH2); nustatę tą pačią kanalo vertę tiek pirminiame, tiek antrame kanale, galite turėti dvi lygiagrečias 8 žingsnių sekas, kurias groja tas pats (polifoninis) sintezatorius.

Apie šviesos diodus: kai tik įjungsite sekos nustatymo režimą, užsidegs visos keturios lemputės. Kai pradedate seką, šviesos diodai seka seką (arba sekas). Aš įdėjau vieną šviesos diodą kas keturis potenciometrus ir man to pakanka. Būtų paprasta pakeisti eskizą, kad būtų galima valdyti 16 šviesos diodų, po vieną kiekvienam žingsniui.

Žingsnių sekos praleidimo funkcijos, kurių kažkas gali prireikti: MIDI sinchronizavimas IN, žingsniai laikomi (galite uždaryti tik žingsnį), CV.

Įdiegiau laikrodžio išvestį, tačiau ji kažkaip klaidinga. Išbandžiau du metodus (vienas su vienu ir vienas be laikmačio pertraukimų), tačiau jie abu yra netobuli (arba visiškai nepavyksta). MIDI laikrodis turi būti griežtai tobulas, kad veiktų ilgą laiką. Laikrodžio signalas vis tiek siunčiamas, ir jūs galite jį išjungti tiesiai eskize (daugiau informacijos rasite vėliau).

Atkreipkite dėmesį, kad šis žingsnių sekos nustatymo įrenginys yra MIDI arba skaitmeninis, jei norite, todėl norint dirbti, jis turi būti prijungtas prie sintezatoriaus, galinčio priimti ir interpretuoti tokius pranešimus

3 žingsnis: reikalinga aparatūra ir kūrimas

Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba
Reikalinga aparatūra ir statyba

Po visų šių žodžių leiskite linksmintis!

Mes einame įprastu Arduino keliu. Aš naudoju „Arduino MEGA“dėl didelio analoginių įėjimų kiekio (mes norime dėžutės, pilnos gumbuotų rankenėlių, ar ne ?!:)).

Visų pirma, „Arduino MEGA“gali valdyti 16 analoginių įėjimų (šiek tiek patobulinus aparatinę įrangą, t. Y. Maišant, galite tai padidinti, bet mes šiuo keliu nesiruošiame), todėl 48 MIDI pranešimus siunčiame per 16 potenciometrų. Tada kiekvienas potenciometras valdys tris parametrus, po vieną kiekvienam „puslapiui“; puslapiai pasirenkami perjungimo mygtuku.

Aparatūros sąrašas:

- 1x „Arduino MEGA“

- 16 kartų linijiniai, vieno posūkio 10 K omų potenciometrai

- 16 kartų puodo rankenėlės

- 4x momentiniai mygtukai

- 4x LED

- 6x 220 omų rezistorius

- 1x MIDI jungtis

- 1x ABS projektų dėžutė

Šiek tiek kabelio, lydmetalio vielos ir šešių - aštuonių valandų laisvo laiko.

Aš panaudojau perforatorių ir kai kurias kaiščių antraštes, kad suprasčiau tam tikrą skydą, ant kurio lituodavau rezistorius ir nukreipdavau kabelius. Tai suteikia pranašumą, nes galite išimti „Arduino“ir naudoti jį kitiems projektams (tam tikru momentu mums visiems pritrūksta „Arduino“lentų!). Bet kokiu atveju tai nėra privaloma, o kitas geras būdas galėtų būti išardyti arduino MEGA kaiščius ir litavimo kabelius tiesiai į vietą.

Vietoj 220 omų rezistorių naudojau 200 omų rezistorius ir jie vis tiek veikia puikiai; lažinuosi, kad net 150 omų rezistoriai puikiai veiktų (tiek MIDI ryšiui, tiek šviesos diodams).

Norėdami suformuoti dėžutę, pirmiausia ant dėžutės paviršiaus uždėjau šiek tiek lipnaus popieriaus, išmatuodamas, kur reikia išgręžti skyles (aš turėjau 3 cm nuo skylės iki skylės, kad visi puodai tilptų), padariau kreipiančiąsias skyles ir tada padidinau į dešinę dydžio, kad vazonai su siūlais ar mygtukai galėtų praeiti su mini grąžtu. Aš praleidau daugiau ar mažiau 2 valandas, kad užbaigčiau dėžutę. Aš taip pat supratau mažas skyles ir priklijavau šviesos diodus.

Taip pat išgręžiau skylę MIDI OUT jungčiai ir kitą arduino maitinimo jungčiai (aš naudoju tiesiai įmontuotą USB maitinimo jungtį ir tvirtai užfiksavau arduino MEGA).

ĮSPĖJIMAS: gręždami visada VISADA dėvėkite akių ir rankų apsaugą, kad ir kokią medžiagą dirbtumėte (plastiką, medieną, metalus, kompozitus … nesvarbu: jums gresia pavojus tiek dėl elektrinių įrankių, tiek iš ardytų ar sudegusių medžiagų drožlių) nuo judančio įrankio).

Tada aš įdėjau visus puodus ir mygtukus ir lituodavau komponentus, kaip parodyta paveikslėlyje. Veiksmingas būdas sumažinti galutinio objekto svorį (ir kabelių ilgį) yra surišti visus 5 V ir GND linijų puodus.

Ir kol kas nors neklausia: žinau, ta dėžutė, kurią naudojau, yra negraži! Bet tai buvo nemokama ir nieko nemoku:)

4 žingsnis: laidų prijungimas

Laidai
Laidai

Sujungti viską paprasta, kaip prijungti potenciometrą (x16), mygtuką (x4) ir šviesos diodą (x4) prie „Arduino“mikrovaldiklio plokštės. Čia aprašyti visi „Arduino“pagrindai:)

Pridedamas laidas. Pastebėti, kad:

- naudojami visi analoginiai kaiščiai (nuo A0 iki A15), po vieną kiekvienam potenciometrui;

- naudojami 4 skaitmeniniai kaiščiai (įėjimai) (nuo D51, D49, D47, D45), po vieną kiekvienam mygtukui;

- kiti 4 skaitmeniniai kaiščiai (išėjimai) naudojami šviesos diodams (D43, D41, D39, D37);

- MIDI išėjimas yra labai paprastas ir reikalauja dviejų 220 omų rezistorių (bet veiks iki 150 omų)

- Mygtukai nereikalauja ištraukiamų rezistorių, nes eskizas suaktyvina vidinius „Arduino“traukimo rezistorius.

- Kiekvienas šviesos diodas prašo ribojančio rezistoriaus (žaliems šviesos diodams tinka 200–220 omų).

Naudojau išvardytus skaitmeninius kaiščius prekėms, tačiau jie nėra „specialūs“kaiščiai (čia nenaudojame kai kurių smeigtukų pwm galimybės ar kitos konkrečios kaiščio funkcijos): galite nustatyti savo mėgstamus skaitmeninius kaiščius, tačiau nepamirškite pakeisti kodas atitinkamai arba jūsų mygtukai/šviesos diodai neveiks!

Atkreipkite dėmesį, kad paveikslėlyje esanti MIDI OUT jungtis yra iš priekio (ne iš galo).

5 žingsnis: programinė įranga - tam tikra nuoroda į teoriją

Nesiruošiu paaiškinti visos „System Exclusive“arba „Control Change“pranešimų teorijos, nes yra daug gerų straipsnių ir kvaila perrašyti tai, kas jau parašyta.

Tiesiog greita „Roland SysEx“diegimo nuoroda:

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

- https://www.2writers.com/eddie/tutsysex.htm (LIETUVIŠKAI)

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

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

ir apskritai MIDI nuoroda:

-

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

6 žingsnis: programinė įranga - eskizas

Čia pridėtas eskizas, kurį turėtumėte įkelti į „Arduino Mega“.

Stengiausi, kad programuotojas būtų kuo „universalesnis“, o tai reiškia, kad stengiausi sumažinti konkrečiai sintezatoriui būdingas kodo dalis. Stengiausi, kad kodas būtų kuo paprastesnis. Pridėjus žingsnių seką, viskas tapo sudėtingiau, o kodas - netvarkingesnis, bet kokiu atveju man tai buvo verta. Dėl to, kad kodas būtų „universalus“, valdiklio išdėstymas yra toks „atsitiktinis“: jis atitinka MIDI diegimo parametrų eiliškumą, kurį sintezatoriaus gamintojas nurodė vadove. Iš pradžių tai gali būti painu, bet prie to priprasite labai greitai.

Numatytasis kodas/eskizas/programinė įranga palaiko „tik“48 parametrus (trys puslapiai po 16 rankenėlių), todėl neįmanoma valdyti visų jūsų sintezatoriaus palaikomų MIDI pranešimų (pagalvokite apie „Access Virus“arba „Novation Supernova“: jie priima daugiau ar mažiau 110 MIDI suderinamų parametrų). Jei reikia, galite lengvai pakeisti eskizą, kad palaikytumėte daugiau pranešimų.

Tiesą sakant, palaikomi „SysEx“pranešimai, suderinami su „Roland Alpha-Juno“, „JX8P“, „Korg DW8000“ir „Oberheim Matrix 6“. Aš palikau „Juno 106“suderinamų pranešimų kodą, jei jums to reikia.

„Matrix 6“turėjau pasirinkti valdomus parametrus. Aš palikau trečią voką, antrą rampą ir dar kažką. Matricos vis tiek negalima valdyti per MIDI, taigi ji taip pat išjungta. Jums reikia atnaujintos programinės aparatinės įrangos (2.14 ar naujesnės versijos) ir parametrą „Master -> Sysex Enable“reikia nustatyti į „3“.

Laikrodis kažkodėl yra klaidingas (laikrodis turi būti griežtai tobulas, kad veiktų taip, kaip turėtų, ir tikriausiai du mano pasirinkti metodai, kai jie nėra veiksmingi). Pagal numatytuosius nustatymus jis yra išjungtas.

Į kodą įeina komentarai, todėl čia daugiau komentuoti nereikia.

Kaip visada: atminkite, kad realiame gyvenime nesu koduotoja ir tikrai yra geresnių būdų koduoti tai, ko mums čia reikia. Jei esate koduotojas ir turite pasiūlymų, esate laukiami! Atsiųskite man bet kokį variantą, galintį padidinti kodo efektyvumą ir efektyvumą, ir aš jį įtraukiu į pagrindinį eskizą (aišku, cituodamas Autorių!).

Visada išmokstu kažko naujo skaitydama gerą kodavimo kodą;)

7 žingsnis: susiję projektai

Kiek žinau, ten nėra MIDI parametrų valdiklio ir sekos daviklio (gal senas „Behringer BCR2000“su modifikuota programine įranga?)

bet kokiu atveju, jei nesate linkęs realizuoti tokio langelio, bet labai domitės pigiais sprendimais, kaip nuotoliniu būdu valdyti savo sintezės parametrus, apsvarstykite kitas alternatyvas:

- CTRL MIDI redaktorius: tai puiki, nemokama atvirojo kodo programa, veikianti „Win/Linux“/„Mac“, kuri gali paversti jūsų kompiuterį visu „SysEx“sintezatorių valdikliu

- Davido Konsumerio „junosex“CC keitiklis: šis projektas reikalauja nedidelio aparatūros darbo jūsų pusėje, o idėja puiki - arduino pagrindu sukurtas CC į „SysEx“keitiklis, leidžiantis jums naudoti įprastą ne „SysEx“MIDI valdiklį (ty AKAI MPK pagrindinę klaviatūrą)), kad galėtumėte kalbėti su „SysEx“paruošta sinteze

Rekomenduojamas: