Satura rādītājs:

(gandrīz) Universāls MIDI SysEx CC programmētājs (un sekvenceris ): 7 soļi (ar attēliem)
(gandrīz) Universāls MIDI SysEx CC programmētājs (un sekvenceris ): 7 soļi (ar attēliem)

Video: (gandrīz) Universāls MIDI SysEx CC programmētājs (un sekvenceris ): 7 soļi (ar attēliem)

Video: (gandrīz) Universāls MIDI SysEx CC programmētājs (un sekvenceris ): 7 soļi (ar attēliem)
Video: MIDI Part 7 - SYSEX, etc. 2024, Decembris
Anonim
(gandrīz) universāls MIDI SysEx CC programmētājs (un sekvenceris …)
(gandrīz) universāls MIDI SysEx CC programmētājs (un sekvenceris …)
(gandrīz) universāls MIDI SysEx CC programmētājs (un sekvenceris …)
(gandrīz) universāls MIDI SysEx CC programmētājs (un sekvenceris …)

Astoņdesmito gadu vidū sintezatoru ražotāji uzsāka procesu "mazāk ir labāk", kas noveda pie basbones sintezatoriem. Tas ļāva samazināt izmaksas ražotāja pusē, bet lāpīšanas procesu padarīja nogurdinošu, ja ne neiespējamu galalietotājam.

Ražotāji paši un trešo pušu uzņēmumi realizēja izvēles kastes, kas bija pilnas ar kloķiem un/vai slīdņiem, lai jūs varētu "spēlēties" ar saviem sintezatoru toņiem, taču mūsdienās tie ir muļķīgi dārgi, un, kā vienmēr, esam spiesti paši atrast lētus risinājumus;)

Šis projekts radās no manas vajadzības viegli ieprogrammēt ielāpus dažiem maniem jaunākajiem sintezatoru pirkumiem: Roland Alpha Juno 2 un JX8P. Tas sākās kā vienkāršs SysEx kontrolieris, tad uzauga pie manis un kļuva par kaut ko sarežģītāku, pa ceļam atbalstot citus sintezatorus (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) un iebūvētu sekvenceri.

Šajā pamācībā es jums parādīšu, kā realizēt savu kontrolieri: lēts rīks, kas atdarina šīs dārgās parametru vadības kastes … un vairāk (turpiniet lasīt, lai iegūtu sīkāku informāciju …).

1. darbība: kas tieši ir šī lieta (un kas nav…)

Kas tieši šī ir (un kas nav …)
Kas tieši šī ir (un kas nav …)
Kas tieši šī ir (un kas nav …)
Kas tieši šī ir (un kas nav …)
Kas tieši šī ir (un kas nav …)
Kas tieši šī ir (un kas nav …)

MIDI SysEx un Control Change kontrolieris šeit būtībā ir 16 kloķi (potenciometri) un 4 pogas MIDI kontrolieris. Noklusējuma skice apstrādā trīs "lapas", kopā 48 sintezatora signāla parametrus.

Es padarīju kontrolieri saderīgu ar vadības maiņas MIDI ziņojumiem (vienkāršs un "globāls" MIDI ziņojumu veids, ko plaši izmanto sintezatoru ražotāji, jo īpaši no 90. gadiem) un SysEx ziņojumiem (cita veida MIDI ziņojumi, kas ir mazāk vispārīgi un ļoti sintezēti) izmantots 80. gados).

Jo īpaši kontrolieris pēc noklusējuma ir saderīgs ar:

- Rolands Alfa Juno (1/2)

- Rolands JX8P

- Korg DW8000

- Oberheim Matrix 6/6R (> 2.14 programmaparatūra)

- Secīgas ķēdes MAX/SixTrak.

Jūs galu galā varat ļaut kontrolierim darboties jebkurā sintezatorā, kas var saņemt MIDI vadības maiņas (CC) ziņojumus, taču tas pēc noklusējuma ir atspējots.

Tā kā projekts ir atvērtā pirmkoda raksturs, ir ļoti viegli atbalstīt jebkuru citu jūsu izvēlēto sintezatoru (sīkāku informāciju skatiet koda solī).

Toņa parametru izkārtojums ar visiem šiem skaitļiem sākotnēji varētu būt mulsinošs, taču tas nav “nejaušs”, kā varētu izskatīties: tas seko ražotāja MIDI ieviešanas diagrammas secībai. Šī bija dizaina izvēle, lai kods būtu vienkāršs un "universāls".

Šajā lapā varat lejupielādēt attēlu lapas ar 4x4 "izkārtojumu", ko es sapratu Alpha-Junos, JX8P, DW8000, Matrix 6 un MAX/SixTrak: zilie parametri ir tie, kurus varat pielāgot 1. lappusē, melni parametri 2. lapā un oranžas krāsas, kas norādītas 3. lappusē.

Pat ja kontrolierim nav ekrāna, rotaļāšanās ar sintezatoriem, kas parāda, kurš parametrs tiek regulēts reāllaikā, padara prieka radīšanas procesu par prieku. Piemēram, JX8P un Matrix 6 to spēj; tā vietā Alpha Juno neparāda, ka tiek mainīts parametrs, un tas padara lietas mazliet grūtākas (taču satriecošu ielāpu izveidošana noteikti ir paveicama un vienkāršāka nekā izmantojot iebūvēto beztaustiņu saskarni); DW8000 ir tikai ciparu displeji, taču jūs varat redzēt savus uzlabojumus reāllaikā, lai tas būtu starp tiem.

Kā ar tām pogām tur?

Pirmais (manā izkārtojumā augšējā kreisajā pusē) ir paredzēts sērfošanai lapās: katru reizi nospiežot pogu, pārejiet uz nākamā parametra lapu. Gaismas diodes norāda, kurā lapā atrodaties.

Otrais, nospiežot, nosūtiet plāksteri, kur strādājat, atpakaļ uz sintezatoru (uzziniet: jūs izveidojāt savas dzīves plāksteri, pēc tam pieskārāties programmas pogai uz sintezatora virsmas un pogai specifiskais plāksteris tika ielādēts … viss jūsu darbs ir pagājis) !). Ar šo pogu jūs varat nosūtīt visas vērtības, kuras programmētājs bija iegaumējis pēdējā ielāpēšanas procesa laikā. Šis plākstera atsaukšanas process nedarbojas, ja vēlreiz nospiežat nejaušības pogu (nejaušināšanas process pārraksta visus atmiņas parametrus), un tas ir efektīvs tikai tiem parametriem, kurus esat rediģējis vismaz vienu reizi. Jaunākais ielāps pēc izslēgšanas netiek saglabāts atmiņā.

Trešais ir paredzēts sekundārai funkcijai: randomizators/ielāpētājs! Pilnībā pagrieziet pretēji pulksteņrādītāja virzienam pogas, kurām vēlaties, lai parametrs, uz kuru tās iedarbojas, tiktu bloķēts līdz minimālajai vērtībai (ti, oscilatora LFO, oscilatora apvalks utt.) Vai pagrieziet līdz galam pulksteņrādītāja virzienā, lai palielinātu vērtību (ti, oscilatora maisījuma skaļums, VCA skaļums utt.), Un nospiediet pogu, lai sāktu nejaušināšanas procesu visiem pārējiem parametriem.

Ceturtā poga ir paredzēta, lai aktivizētu Lieldienu olu (sava veida …), ko ievietoju kodā, ievērojot, ka izkārtojums ir ideāls … 16 soļu MIDI sekvenceram! Tieši tā: nospiediet ceturto pogu (MODE poga), kontrolieris pāries "sekvencētāja režīmā", un jums būs atļauts aktivizēt piezīmes līdzīgi kā to izdarīja vecais analogsekvenceris. Jauki uh!

Vēlreiz nospiediet pogu MODE, lai atgrieztos kontroliera/patcher režīmā.

Kā ir ar tām gaismas diodēm?

Katrai pogai ir 4 gaismas diodes (manā izkārtojumā katras pogas labajā pusē); šīm gaismas diodēm ir vairāki izlietnes:

1) tie norāda, kurā parametru lapā atrodaties (augšējā gaismas diode iedegas, kad atrodaties 1. lappusē, apakšējā gaismas diode iedegas, kad 2. lapa ir aktīva, iedegas 3. gaismas diode … jūs to izdomājāt pats). Mums ir tikai 3 lappušu bankomāti, taču kodu var viegli noregulēt, lai apstrādātu vairāk lapu;

2) otrā gaismas diode norāda parametrus 2. lapa UN iedegas, kad mikrokontrolleris sūta iepriekšējo plāksteri (plākstera atsaukšana);

3) trešā gaismas diode norāda parametrus 3. lappuse UN iedegas nejaušināšanas procesa laikā.

Ceturtā gaismas diode MIDI kontroliera režīmā neko nedara un tiek izmantota globālai MODE maiņai.

Visas šīs funkcijas tiek pārraidītas kā MIDI ziņojumi, tāpēc, lai jūsu sintezators būtu efektīvs, tam ir jābūt spējīgam/iespējotam saņemt un interpretēt šāda veida ziņojumus

2. solis: “Slēptā” 16 soļu sekvencētāja

The
The

Kā jau minēts, testējot kontrolieri, es sapratu, ka būtu lieliski ļaut darboties piezīmju secībai, lai es varētu pielāgot sintezatoru parametrus un labāk izprast to gala ietekmi. Man ir programmatūras sekvenceris (man tik ļoti patīk seq24!), Bet šī aparatūra ir gandrīz ideāls 16 soļu sekvenceris! Tad tas bija tikai koda jautājums, lai to īstenotu.

Jūs varat pārslēgties starp kontroliera režīmu un sekvences režīmu, nospiežot pogu #4 (poga MODE).

Sekvences režīmā pogas darbojas atšķirīgi, un gaismas diodes sniedz jums jaunu informāciju:

- pirmā poga (SHIFT poga), nospiežot, ļauj veikt tempu, notu garumu, kanālus un mainīt oktāvu; tempa vērtību nosaka pirmā potenciometra pozīcija, piezīmes garumu aprēķina no otrās potenciometra pozīcijas, MIDI kanālus no trešās un ceturtās potenciometra pozīcijas un oktāvu (-1 o līdz +2) no piektā katla. Jūs varat kontrolēt tempu no 40 BPM (pagrieziet potenciometru Nr. 1 pretēji pulksteņrādītāja virzienam, turot nospiestu pogu #1) līdz gandrīz 240 BPM (pagrieziet potenciometru #1 pilnu pulksteņrādītāja virzienu, vienlaikus turot nospiestu pogu #1). Jūs varat iestatīt piezīmju garumu līdz pusei, ceturkšņa, astoņnieka, sešpadsmito piezīmi, pagriežot katlu Nr. 2, vienlaikus turot nospiestu taustiņu SHIFT. Jūs varat iestatīt MIDI kanālus (primārais kanāls un sekundārais kanāls) no 1 līdz 16. Bāzes notu diapazonu (no C2 līdz F#4) var samazināt par vienu oktāvu vai palielināt par vienu vai divām oktāvām.

Pēc noklusējuma temps ir iestatīts uz 120 BPM un piezīmju garums līdz ceturkšņa notīm.

- otrā poga sāk un aptur piezīmju secību. Kā jau minēts, ja maināt režīmu, nospiežot pogu #4 (MODE), izpildot secību, jūs pāriesit kontroliera režīmā, bet secība turpinās darboties.

- trešā poga ir PANIKA! Nospiežot to, visas piezīmes tiks izslēgtas.

- ceturtais tiek izmantots, lai pārslēgtos starp globālajiem režīmiem (pather vai sekvenceris), ja netiek nospiesta poga #1, vai starp secības režīmiem (skat. tālāk), kad ir nospiests #1.

Sekvences režīmā, nospiežot režīma izvēles pogu, vienlaikus turot nospiestu pogu #1 (SHIFT), varat pārslēgties starp 3 dažādiem secības režīmiem:

1 - 16 soļu mono secība

2 - 16 soļu polisekvence: tiek aktivizēta arī viena oktāva zemāka par katlā noteikto (tiek izvadītas 2 balsis uz sitienu)

3 - 8 soļu poli secība, divkanāls: divas paralēlas 8 soļu secības tiek nosūtītas uz diviem dažādiem kanāliem (CH1 un CH2 pēc noklusējuma); iestatot vienu un to pašu kanāla vērtību gan primārajā, gan otrreizējā kanālā, var iegūt divas paralēlas 8 soļu secības, ko atskaņo viens un tas pats (polifoniskais) sintezators.

Par gaismas diodēm: tiklīdz jūs ieslēdzat sekvencera režīmu, iedegas visas četras gaismas. Sākot secību, gaismas diodes sekos secībai (vai secībām). Es ievietoju vienu LED ik pēc četriem potenciometriem, un man tas ir pietiekami. Būtu vienkārši pārveidot skici, lai apstrādātu 16 gaismas diodes, pa vienam katram solim.

Step sequencer miss funkcijas, kuras kādam varētu šķist vajadzīgas: MIDI sinhronizācija IN, soļi tiek turēti (jūs varat izslēgt tikai soli), CV out.

Esmu ieviesis pulksteni OUT, bet tas kaut kādā veidā ir kļūdains. Šim nolūkam es izmēģināju divas pieejas (vienu ar vienu un vienu bez taimera pārtraukumiem), bet tās abas ir nepilnīgas (vai pilnīgi neizdodas). MIDI pulkstenim jābūt stingri perfektam, lai tas darbotos ilgtermiņā. Pulksteņa signāls tiek nosūtīts jebkurā gadījumā, un jūs varat to atspējot tieši skicē (sīkāku informāciju skatiet vēlāk).

Ņemiet vērā, ka šis soļu sekvencētājs ir MIDI vai digitāls, ja vēlaties, tāpēc, lai tas darbotos, tam jābūt savienotam ar sintezatoru, kas spēj saņemt un interpretēt šāda veida ziņojumus

3. darbība. Nepieciešamā aparatūra un tās veidošana

Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība
Nepieciešama aparatūra un celtniecība

Pēc visiem šiem vārdiem izklaidējieties!

Mēs ejam kopējo Arduino ceļu. Es izmantoju Arduino MEGA, jo bija daudz analogo ieeju (mēs taču gribam pilnu kasti ar knobītām pogām, vai ne ?!:)).

Konkrēti, Arduino MEGA var apstrādāt 16 analogās ieejas (ar nelielu aparatūras pielāgošanu, t.i., ar muxingu, jūs varat to palielināt, bet mēs šeit neiesim šo ceļu), tāpēc mēs nosūtīsim 48 MIDI ziņojumus, izmantojot 16 potenciometrus. Pēc tam katrs potenciometrs kontrolēs trīs parametrus, vienu katrai "lapai"; lapas tiek atlasītas ar slēdža pogu.

Aparatūras saraksts:

- 1x Arduino MEGA

- 16x lineāri, viena apgrieziena 10 K omi potenciometri

- 16x poda pogas

- 4x īslaicīgas spiedpogas

- 4x LED

- 6x 220 omu rezistors

- 1x MIDI savienotājs

- 1x ABS projektu kaste

Daži kabeļi, lodēšanas stieples un sešas - astoņas stundas brīva laika.

Es izmantoju perforatoru un dažas tapu galvenes, lai realizētu sava veida vairogu, uz kura es lodēju rezistorus un vadīju kabeļus. Tā priekšrocība ir tāda, ka jūs varat izņemt savu Arduino un izmantot to citiem projektiem (mums visiem kādā brīdī trūkst Arduino dēļu!). Jebkurā gadījumā tas nav obligāti, un vēl viena laba pieeja varētu būt atkausēt arduino MEGA tapas un lodēšanas kabeļus tieši savā vietā.

220 omu rezistoru vietā es izmantoju 200 omu rezistorus, un tie jebkurā gadījumā darbojas perfekti; es derētu, ka pat 150 omu rezistori darbotos lieliski (gan MIDI sakariem, gan gaismas diodēm).

Lai veidotu kastīti, es vispirms uz kastes virsmas uzklāju kādu adhezīvu papīru, izmērot, kur jāizurbj caurumi (man bija 3 cm no cauruma līdz caurumam, lai visi podi ietilptu), izveidoju vadošos caurumus un pēc tam palielināju pa labi izmērs, lai ļautu katliem pavedināt vai pogām pavedināt caur mini urbi. Es pavadīju vairāk vai mazāk 2 stundas, lai pabeigtu kastīti. Es sapratu arī mazus caurumus un pielīmēju gaismas diodes.

Es arī urbju caurumu MIDI OUT savienotājam un otru arduino strāvas savienotājam (es tieši izmantoju iebūvēto USB strāvas savienotāju un stingri aizslēdzu arduino MEGA vietā).

BRĪDINĀJUMS: urbšanas laikā vienmēr lietojiet acu un roku aizsargus, neatkarīgi no materiāla, ar kuru strādājat (plastmasa, koks, metāls, kompozītmateriāli … tas nav svarīgi: jūs esat pakļauts riskam gan attiecībā uz elektroinstrumentiem, gan no grauzta/apdedzināta materiāla skaidām no kustīgā instrumenta).

Tad es ievietoju visus podus un pogas un lodēju komponentus atbilstoši pievienotajam attēlam. Efektīvs veids, kā samazināt gala objekta svaru (un kabeļu garumu), ir sakārtot visus katlus gan pie 5V līnijas, gan no GND līnijas.

Un pirms kāds jautā: es zinu, tā kastīte, kuru es izmantoju, ir neglīta! Bet tas bija bez maksas un nekas nepārspēja:)

4. solis: elektroinstalācija

Elektroinstalācija
Elektroinstalācija

Savienojumu veidošana ir vienkārša, piemēram, potenciometra (x16), spiedpogas (x4) un gaismas diodes (x4) pievienošana Arduino mikrokontrollera plates. Šeit ir apskatīti visi Arduino pamati:)

Pievienota elektroinstalācija. Ievērojiet, ka:

- tiek izmantotas visas analogās tapas (no A0 līdz A15), pa vienam katram potenciometram;

- tiek izmantotas 4 digitālās tapas (ieejas) (no D51, D49, D47, D45), pa vienai katrai pogai;

- citas 4 digitālās tapas (izejas) tiek izmantotas gaismas diodēm (D43, D41, D39, D37);

- MIDI izejas savienojums ir ļoti vienkāršs un prasa divus 220 omu rezistorus (bet derēs līdz 150 omiem)

- Pogas neprasa nolaižamos rezistorus, jo skice aktivizē iekšējos Arduino pullup rezistorus.

- Katra gaismas diode pieprasa ierobežojošu rezistoru (200–220 omi ir piemēroti zaļām gaismas diodēm).

Precēm es izmantoju uzskaitītās digitālās tapas, taču tās nav "īpašas" tapas (mēs šeit neizmantojam dažu tapas pwm iespējas vai kādu citu tapu īpašību): varat iestatīt savas iecienītākās digitālās tapas, taču atcerieties to mainīt kods attiecīgi vai jūsu pogas/gaismas diodes nedarbosies!

Lūdzu, ņemiet vērā, ka attēlā redzamais MIDI OUT savienojums ir no priekšpuses (nevis no aizmugures).

5. solis: programmatūra - kāda saite uz teoriju

Es neskaidrošu visu sistēmas ekskluzīvo vai vadības maiņu ziņojumu teoriju, jo tur ir daudz labu rakstu, un ir muļķīgi pārrakstīt jau uzrakstīto.

Tikai kāda ātra saite Roland SysEx ieviešanai:

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

- https://www.2writers.com/eddie/tutsysex.htm (LATVIEŠU)

- https://www.chromakinetics.com/handsonic/rolSysEx.h… (LATVIEŠU)

- https://www.audiocentralmagazine.com/system-exclusi… (ITĀLIJA)

un kāda saite uz MIDI kopumā:

-

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

6. solis: programmatūra - skice

Šeit ir pievienota skice, kas jums jāaugšupielādē savā Arduino Mega.

Es centos saglabāt programmētāju pēc iespējas "universālāku", tas nozīmē, ka es centos samazināt sintezatoriem raksturīgus koda gabalus. Es centos saglabāt kodu pēc iespējas vienkāršāku. Pievienojot soļu sekvencētāju, lietas kļuva sarežģītākas un kods nesakārtotāks, katrā ziņā man tas bija tā vērts. Turot kodu “universālu”, kontroliera izkārtojums ir tik “nejaušs”: tas seko MIDI ieviešanas parametru secībai, ko sinhronizācijas ražotājs noteicis rokasgrāmatā. Sākumā tas varētu būt mulsinoši, bet jūs pie tā pieradīsit ļoti ātri.

Noklusējuma kods/skice/programmaparatūra atbalsta "tikai" 48 parametrus (trīs lapas ar 16 pogas katrā), tāpēc nevarēja būt iespējams kontrolēt visus MIDI ziņojumus, kurus atbalsta jūsu sintezators (domājiet par Access vīrusu vai Novation Supernova: tie pieņem vairāk vai mazāk par 110 ar MIDI saderīgiem parametriem). Ja nepieciešams, varat viegli mainīt skici, lai atbalstītu vairāk ziņojumu.

Faktiski tiek atbalstīti SysEx ziņojumi, kas ir saderīgi ar Roland Alpha-Juno, JX8P, Korg DW8000 un Oberheim Matrix 6. Es atstāju kodu Juno 106 saderīgām ziņām, ja jums tas ir nepieciešams.

Matricai 6 man bija jāizvēlas kontrolējamie parametri. Es atstāju trešo aploksni, otro uzbrauktuvi un vēl kaut ko. Matricu jebkurā gadījumā nevar kontrolēt, izmantojot MIDI, tāpēc arī tā ir ārā. Jums ir nepieciešama atjaunināta programmaparatūra (2.14 vai jaunāka versija), un parametram "Master -> Sysex Enable" jāiestata "3".

Pulkstenis ir kaut kādā veidā kļūdains (pulkstenim jābūt stingri perfektam, lai tas darbotos tā, kā vajadzētu, un, iespējams, abas manis izmantotās pieejas, ja tās nav efektīvas). Pēc noklusējuma tas ir atspējots.

Kods ietver komentārus, tāpēc šeit nav jāsniedz papildu komentāri.

Kā vienmēr: atcerieties, ka reālajā dzīvē es neesmu kodētājs, un noteikti ir labāki veidi, kā kodēt to, kas mums šeit ir vajadzīgs. Ja esat kodētājs un jums ir ieteikumi, laipni lūdzam! Lūdzu, atsūtiet man visus variantus, kas var palielināt koda efektivitāti/efektivitāti, un es to iekļaušu galvenajā skicē (acīmredzot atsaucoties uz līdzautoru!).

Es vienmēr uzzinu kaut ko jaunu, lasot kādu labu kodētāja kodu;)

7. darbība. Saistītie projekti

Cik es zinu, tur nav MIDI parametru kontroliera un sekvences (varbūt vecais Behringer BCR2000 ar modificētu programmaparatūru?)

jebkurā gadījumā, ja jums nav tendences realizēt šādu lodziņu, bet jūs ļoti interesē lēti risinājumi, lai attālināti kontrolētu sintezatora parametrus, apsveriet šīs citas alternatīvas:

- CTRL MIDI redaktors: šī ir lieliska, bezmaksas atvērtā pirmkoda programma, kas darbojas uz win/Linux/mac, kas var pārvērst jūsu datoru par pilnu SysEx sintezatoru kontrolieri

- Deivida Konsumera "junosex" CC pārveidotājs: šis projekts prasa nelielu aparatūras darbu jūsu pusē, un ideja ir lieliska - uz arduino balstīts CC uz SysEx pārveidotājs, kas ļaus jums izmantot parastu, kas nav SysEx MIDI kontrolieris (ti, AKAI MPK galveno tastatūru)), lai runātu ar savu SysEx gatavu sintezatoru

Ieteicams: