INHOUDSOPGAWE:
- Stap 1: wat presies hierdie ding is (en wat nie …)
- Stap 2: Die 'Versteekte' 16 -stap -opeenvolgers
- Stap 3: hardeware benodig en gebou
- Stap 4: Bedrading
- Stap 5: Sagteware - 'n paar skakel na teorie
- Stap 6: Sagteware - die skets
- Stap 7: Verwante projekte
Video: (byna) Universal MIDI SysEx CC Programmer (en Sequencer ): 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
In die middel tagtigerjare het synth -vervaardigers 'n 'less is better' -proses begin wat gelei het tot kaalbeen -sintes. Dit het die verlaging van die koste aan die vervaardiger se kant moontlik gemaak, maar die aanpassingsproses het die tediuo's, indien nie vir die finale gebruiker nie moontlik gemaak.
Vervaardigers self en derdepartyondernemings het opsionele bokse vol knoppe en/of skuifbalkies besef om u eintlik met u synth -klanke te kan "speel", maar dit is deesdae te duur en, soos altyd, is ons gedwing om self goedkoop oplossings te vind;)
Hierdie projek was die gevolg van my behoefte om patches maklik te programmeer op 'n paar van my nuutste synths -aankope: 'n Roland Alpha Juno 2 en JX8P. Dit het begin as 'n eenvoudige SysEx-beheerder, toe het dit op my opgegroei en iets meer kompleks geword, met ander synths onderweg (Korg DW8000, Oberheim Matrix 6/6R, SCI MAX) en 'n ingeboude sequencer.
In hierdie instruksies sal ek u wys hoe u u eie kontroleerder kan realiseer: 'n goedkoop hulpmiddel wat die hoogs geprysde parameter -kontrolebusse navolg … en meer (lees verder vir meer inligting …).
Stap 1: wat presies hierdie ding is (en wat nie …)
Die MIDI SysEx en Control Change -kontroleerder is hier in wese 'n 16 knoppe (potensiometers) en 4 knoppies MIDI kontroleerder. Die standaard skets hanteer drie "bladsye", vir 'n totaal van 48 sintetoonparameters.
Ek het die kontroleerder verenigbaar gemaak met MIDI-boodskappe met veranderings ('n eenvoudige en 'globale' tipe MIDI-boodskap wat wydverspreid deur synth-vervaardigers veral uit die 90's gebruik word) en SysEx-boodskappe ('n ander tipe MIDI-boodskap, baie minder algemeen en hoogs sintespesifiek spesifiek gebruik in die 80's).
In die besonder is die beheerder standaard versoenbaar met:
- Roland Alpha Juno (1/2)
- Roland JX8P
- Korg DW8000
- Oberheim Matrix 6/6R (> 2.14 firmware)
- Opeenvolgende stroombane MAX/SixTrak.
U kan die beheerder uiteindelik in staat stel om te reageer op enige synth wat MIDI -kontroleverandering (CC) boodskappe kan ontvang, maar dit is standaard uitgeskakel.
Omdat dit die open source -aard van die projek is, is dit baie maklik om enige ander synth van u keuse te ondersteun (sien die kode -stap vir meer inligting).
Die uitleg van die toonparameters met al die getalle kan aanvanklik verwarrend wees, maar dit is nie 'ewekansig' soos dit kan lyk nie: dit volg volgens die volgorde van die vervaardiger se MIDI -implementeringskaart. Dit was 'n ontwerpkeuse om die kode eenvoudig en 'universeel' te hou.
U kan prenteblaaie aflaai met die 4x4 "uitleg" wat ek besef het vir Alpha-Junos, JX8P, DW8000, Matrix 6 en MAX/SixTrak op hierdie bladsy: blou parameters is die parameters wat u op bladsy 1 kan aanpas, swart op bladsy 2 en oranje dié op bladsy 3.
Selfs as die beheerder geen skerm het nie, maak speel met synths wat u wys watter parameter intyds ingestel word, die proses om 'n pleister te skep, 'n vreugde. Die JX8P en Matrix 6 is byvoorbeeld hiervoor in staat; die Alpha Juno, in plaas daarvan, wys u nie die parameter wat verander word nie en maak dinge 'n bietjie moeiliker (maar om ongelooflike pleisters te skep, is beslis uitvoerbaar en makliker as deur die ingeboude knobbel-koppelvlak te gebruik); DW8000 het slegs numeriese skerms, maar u kan u tweakins intyds sien, sodat dit tussenin kan plaasvind.
Wat van die knoppies daar?
Die eerste een (links bo in my uitleg) is vir blaai: blaai na die volgende parameter se bladsy by elke druk op die knoppie. LED's sal aandui op watter bladsy u is.
Die tweede keer dat u dit ingedruk het, stuur die pleister wat u aan die werk was, terug na die synth (sien uit: u het die pleister van u lewe gemaak, en dan 'n programknoppie op die synth-oppervlak aangeraak en die knoppie-spesifieke pleister is gelaai … al u werk is verby !). Met hierdie knoppie kan u al die waardes stuur wat die programmeerder tydens die laaste lapproses gememoriseer het. Hierdie herroepingsproses werk nie as u weer op die randomizer druk nie (die randomiseringsproses skryf al die parameters in die geheue oor) en is slegs effektief op parameters wat u ten minste een keer gewysig het. Die nuutste pleister word na afsluiting nie in die geheue gehou nie.
Die derde is vir 'n sekondêre funksie: die randomizer/patcher! Draai die draaiknoppe waarop u wil hê dat die parameter waarop hulle werk, tot die minimum waarde (dws oscillator LFO, ossillatoromhulsel, ens.) Of draai heeltemal met die kloksgewys om die waarde te maksimaliseer (dws oscillator -mengvolume, VCA -volume, ens.) En druk die knoppie om die randomiseringsproses vir alle ander parameters te begin.
Die vierde knoppie is daar om 'n paaseier te aktiveer (soort van …) wat ek in die kode geplaas het nadat ek opgemerk het dat die uitleg perfek was vir … 'n MIDI sequencer van 16 stappe! Presies: druk op die vierde knoppie (MODE -knoppie), die kontroleerder gaan in die "sequencer -modus" en u sal notas op dieselfde manier as die ou analoog sequencer kan aktiveer. Lekker uh!
Druk weer op die MODE -knoppie om terug te gaan na die kontroleerder/lappermodus.
Wat van die LED's?
Daar is 4 LED's in ooreenstemming met elke knoppie (aan die regterkant van elke knoppie in my uitleg); hierdie LED's het verskeie gietpouses:
1) hulle vertel u op watter parameters bladsy u is (boonste LED brand as u op bladsy 1 is, LED onder brand as bladsy 2 aktief is, LED 3 brand … u het dit self gedink). Ons is beperk tot 3 bladsye OTM, maar die kode kan maklik aangepas word om meer bladsye te hanteer;
2) die tweede LED dui parameters aan bladsy 2 EN brand wanneer die mikrobeheerder die vorige pleister stuur (pleisterherroeping);
3) die derde LED dui parameters aan bladsy 3 EN brand tydens die randomiseringsproses.
Die vierde LED doen niks in die MIDI -beheermodus nie en word gebruik vir globale MODE -verandering.
Al hierdie funksies word oorgedra as MIDI -boodskappe, dus om effektief te wees, moet u synth in staat wees om hierdie soort boodskappe te kan ontvang en interpreteer
Stap 2: Die 'Versteekte' 16 -stap -opeenvolgers
Soos gesê, tydens die toets van die kontroleerder het ek besef dat dit wonderlik sou wees om 'n reeks note te laat loop sodat ek synth -parameters kon aanpas en 'n beter idee kon kry van die finale effek op die toon. Ek het 'n sagteware sequencer (ek hou baie van seq24!), Maar hierdie hardeware is 'n byna PERFEKTE sequencer van 16 stappe! Dan was dit net 'n kwessie van kode om dit te implementeer.
U kan wissel tussen die beheermodus en die volgorde -modus deur op knoppie #4 (MODE -knoppie) te druk.
Terwyl die knoppies in die sequencer -modus anders werk en LED's u nuwe inligting gee:
- die eerste knoppie (SHIFT -knoppie) wanneer dit ingedruk word, maak voorsiening vir tempo, nootlengte, kanale en oktaafverandering; die tempo waarde word gegee deur die posisie van die eerste potensiometer, die nootlengte word bereken uit die tweede potensiometer posisie, MIDI kanale vanaf die derde en vierde potensiometer posisies en oktaaf (-1 o tot +2) uit die vyfde pot. U kan die tempo beheer van 40 BPM (draai potensiometer #1 vol teen die kloksgewys terwyl knoppie #1 ingedruk gehou word) tot byna 240 BPM (draai potensiometer #1 vol met die kloksgewys terwyl knoppie #1 ingedruk gehou word). U kan die lengte van die note tot die helfte noot, kwart noot, agt noot, sestien noot stel deur pot nr 2 te draai terwyl u die SHIFT knoppie ingedruk hou. U kan MIDI -kanale (primêre kanaal en sekondêre kanaal) van 1 tot 16. Stel. Die basisnote -reeks (van C2 tot F#4) kan met een oktaaf verlaag word of met een of twee oktawe verhoog word.
Die tempo is standaard ingestel op 120 BPM en die lengte van die noot tot die kwartnote.
- die tweede knoppie begin en stop die volgorde van notas. Soos gesê, as u van modus verander deur op die knoppie #4 (MODE) te druk terwyl u die volgorde uitvoer, gaan u na die kontroleerder -modus, maar die volgorde sal voortgaan.
- die derde knoppie is 'n PANIEK! Deur dit in te druk, word alle note afgeskakel.
- die vierde word gebruik om te wissel tussen globale modusse (pather of sequencer) as knoppie #1 nie ingedruk word nie, of tussen volgorde modes (sien in die volgende) as #1 ingedruk is.
In die volgorde -modus, as u op die moduskeuse -knoppie druk terwyl knoppie #1 (SHIFT) ingedruk gehou word, kan u wissel tussen drie verskillende volgorde:
1 - 16 stappe mono volgorde
2 - 16 stappe polisvolgorde: note een oktaaf laer as dié wat deur potte gedefinieer word, word ook geaktiveer (dit laat 2 stemme per maat afloop)
3 - 8 stappe polis volgorde, tweekanaal: twee parallelle 8 stappe sekwensies word na twee verskillende kanale gestuur (CH1 en CH2 standaard); Deur dieselfde kanaalwaarde op beide die primêre en tweedaagse kanale in te stel, kan u twee parallelle 8-stappe sekwensies laat speel deur dieselfde (polifoniese) sintetiseerder.
Oor LED's: sodra u die sequencer -modus betree, brand al vier die ligte. As u die reeks begin, sal LED's die volgorde (of die rye) volg. Ek plaas elke vier potensiometers een LED en is goed genoeg vir my. Dit sou eenvoudig wees om die skets te verander om 16 LED's te hanteer, een vir elke stap.
Die stap -sequencer -misfunksies wat iemand nodig sou vind: MIDI -sinkronisering IN, stappe hou (u kan slegs 'n stap afskakel), CV uit.
Ek het die klok OUT geïmplementeer, maar is een of ander manier karig. Ek het hiervoor twee benaderings probeer (een met en een sonder tydonderbrekings), maar albei was onvolmaak (of totaal misluk). Die MIDI-klok moet perfek wees om op lang termyn te werk. 'N Kloksignaal word in elk geval gestuur en u kan dit direk op die skets deaktiveer (sien later vir meer inligting).
Let op dat hierdie stap -sequencer MIDI is, of digitaal as u dit verkies, dus om te kan werk, moet u gekoppel wees aan 'n synth wat hierdie soort boodskappe kan ontvang en interpreteer
Stap 3: hardeware benodig en gebou
Na al hierdie woorde, laat ons pret hê!
Ons gaan die gewone Arduino -pad. Ek het 'n Arduino MEGA gebruik vanweë die groot hoeveelheid analoog insette (ons wil 'n boks vol knoppies hê, nie waar nie?:)).
In die besonder kan Arduino MEGA 16 analoog insette hanteer (met 'n paar hardeware -aanpassings, d.w.s. deur muxing, kan u dit verhoog, maar ons gaan nie hierdie roete hier nie), daarom stuur ons die 48 MIDI -boodskappe via 16 potensiometers. Elke potensiometer beheer dan drie parameters, een vir elke "bladsy"; bladsye word gekies deur 'n skakelknoppie.
Hardeware lys:
- 1x Arduino MEGA
- 16x lineêre, enkele draai 10 K ohm potentiometers
- 16x potknoppies
- 4x kort drukknoppies
- 4x LED
- 6x 220 ohm weerstand
- 1x MIDI -aansluiting
- 1x ABS -projekkas
'N Kabel, soldeerdraad en ses - agt uur vrye tyd.
Ek het 'n perfboard en 'n paar penkoppe gebruik om 'n soort skild te besef waarop ek die weerstande gesoldeer het en die kabels gelei het. Dit het die voordeel dat u u Arduino kan uithaal en dit vir ander projekte kan gebruik (ons het almal op 'n stadium te min op Arduino -borde!). Dit is in elk geval nie verpligtend nie, en 'n ander goeie benadering kan wees om die arduino MEGA -speldkoppe en soldeerkabels direk op hul plek te soldeer.
Ek het 200 ohm weerstande in die plek van 220 ohm weerstande gebruik en dit werk in elk geval perfek; Ek sou wed dat selfs 150 ohm -weerstande goed sou werk (vir beide MIDI -kommunikasie en LED's).
Om die boks te vorm, het ek eers 'n paar kleefpapier op die boksoppervlak aangebring, gemeet waar die gate geboor moes word (ek het 3 cm van gat tot gat gehad om al die potte te laat pas) het die geleidingsgate gemaak en dan na regs vergroot grootte om potte se draad of knoppies te laat deurloop met 'n mini -boor. Ek het min of meer 2 uur spandeer om die boks klaar te maak. Ek besef ook klein gaatjies en plak LED's vas.
Ek het ook 'n gat geboor vir die MIDI OUT-aansluiting en nog een vir die arduino-aansluiting (ek het die ingeboude USB-aansluiting direk gebruik en die arduino MEGA stewig vasgesluit).
WAARSKUWING: dra altyd beskermende oë en hande terwyl u boor, watter materiaal u ook al werk (plastiek, hout, metale, komposiete … dit maak nie saak nie: u is in gevaar, beide met betrekking tot elektriese gereedskap en skyfies van materiaal wat erodeer/afgevuur word van die bewegende hulpmiddel).
Toe plaas ek al die potte en knoppies en soldeer die komponente volgens die aangehegte prentjie. 'N Doeltreffende manier om die gewig van die finale voorwerp (en lengte kabels) te verminder, is om alle potte op die 5V -lyn en die GND -lyn te ketting.
En voordat iemand vra: ek weet, die boks wat ek gebruik het, is lelik! Maar dit was gratis en niks klop gratis nie:)
Stap 4: Bedrading
Dit is maklik om dinge op te sit, soos om 'n potensiometer (x16), 'n drukknop (x4) en LED (x4) na 'n Arduino -mikrobeheerbord te koppel. Al die basiese beginsels van Arduino word hier behandel:)
Aangeheg is die bedrading. Neem waar dat:
- Alle analoog penne word gebruik (van A0 tot A15), een vir elke potensiometer;
- 4 digitale penne (insette) word gebruik (vanaf D51, D49, D47, D45), een vir elke knoppie;
- ander 4 digitale penne (uitsette) word gebruik vir LED's (D43, D41, D39, D37);
- MIDI out -verbinding is baie eenvoudig en vra vir twee 220 ohm weerstande (maar tot 150 ohm werk)
- Die knoppies vra nie dat die weerstandsweergawe weerstaan nie, omdat die skets die interne Arduino se weerstandsweerstand aktiveer.
- Elke LED vra vir 'n huidige beperkende weerstand (200-220 ohm is goed vir groen LED's).
Ek het die genoemde digitale penne vir goedere gebruik, maar dit is nie 'spesiale' penne nie (ons gebruik nie die pwm-vermoë van sommige penne hier of 'n ander penspesifieke kenmerk nie): u kan u gunsteling digitale penne stel, maar onthou om dit aan te pas die kode dienooreenkomstig, anders werk u knoppies/LED's nie!
Let asseblief daarop dat die MIDI OUT -verbinding in die prentjie vooraan is (nie agteruit nie).
Stap 5: Sagteware - 'n paar skakel na teorie
Ek gaan nie die volledige teorie agter System Exclusive- of Control Change -boodskappe verduidelik nie, want daar is baie goeie artikels en dit is dom om dit wat reeds geskryf is, oor te skryf.
Net 'n vinnige skakel vir die implementering van Roland SysEx:
- https://erha.se/~ronny/juno2/Roland%20Juno%20MIDI%2… (ENGELS)
- https://www.2writers.com/eddie/tutsysex.htm (AFRIKAANS)
- https://www.chromakinetics.com/handsonic/rolSysEx.h… (AFRIKAANS)
- https://www.audiocentralmagazine.com/system-exclusi… (ITALIANO)
en 'n paar skakels vir MIDI in die algemeen:
-
-https://www.music-software-development.com/midi-tut…
Stap 6: Sagteware - die skets
Hier is die skets wat u na u Arduino Mega moet oplaai, hierby aangeheg.
Ek het probeer om die programmeerder so 'universeel' as moontlik te hou, wat beteken dat ek probeer het om synth-spesifieke stukke kode te verminder. Ek het probeer om die kode so eenvoudig as moontlik te hou. Die byvoeging van die step sequencer het dinge ingewikkelder en die kode meer morsig gemaak, maar dit was vir my die moeite werd. Om die kode "universeel" te hou, is die uitleg van die beheerder so "ewekansig": dit volg die parametervolgorde van die MIDI -implementering wat die synth -vervaardiger in die handleiding gedefinieer het. Dit kan aanvanklik verwarrend wees, maar u sal vinnig daaraan gewoond wees.
Die standaardkode/skets/firmware ondersteun slegs 48 parameters (drie bladsye van 16 knoppies elk), sodat dit nie moontlik was om al die MIDI -boodskappe wat deur u synth ondersteun word, te beheer nie (dink by 'n Access Virus of Novation Supernova: hulle aanvaar meer of minder 110 parameters wat aan MIDI voldoen). U kan die skets maklik verander om meer boodskappe te ondersteun, indien nodig.
Eintlik word SysEx-boodskappe versoenbaar met Roland Alpha-Juno, JX8P, Korg DW8000 en Oberheim Matrix 6 ondersteun. Ek het die kode vir Juno 106 -versoenbare boodskappe gelos, as u dit nodig het.
Vir Matrix 6 moes ek die parameters kies wat ek wou beheer. Ek het die derde koevert, die tweede oprit en iets anders uitgelaat. Die matriks kan in elk geval nie via MIDI beheer word nie, so dit is ook uit. U benodig die opgedateerde firmware (weergawe 2.14 of hoër) en stel die parameter "Master -> Sysex Enable" op "3".
Die horlosie is 'n bietjie vervelig (die klok moet perfek wees om te werk soos dit moet, en waarskynlik is die twee benaderings wat ek aangeneem het, nie effektief nie). By verstek is dit gedeaktiveer.
Die kode bevat opmerkings, dus is dit nie nodig om hier verder kommentaar te lewer nie.
Soos altyd: onthou dat ek nie 'n kodeerder in die regte lewe is nie en dat daar beslis beter maniere is om te kodeer wat ons hier nodig het. As u 'n kodeerder is en 'n voorstel het, is u welkom! Stuur vir my enige variasie wat die kode se doeltreffendheid/doeltreffendheid kan verhoog, en ek sal dit by die hoofskets insluit (natuurlik met vermelding van die bydraer!).
Ek leer altyd iets nuuts deur 'n goeie kode te lees;)
Stap 7: Verwante projekte
Sover ek weet, is daar nie 'n MIDI -parameterbeheerder en sequencer nie (miskien is die ou Behringer BCR2000 met 'n aangepaste firmware?)
in elk geval, as u nie geneig is om 'n boks soos hierdie te besef nie, maar baie geïnteresseerd is in goedkoop oplossings om u synth -parameters op afstand te beheer, moet u hierdie ander alternatiewe oorweeg:
- CTRL MIDI -redakteur: dit is 'n briljante, gratis open source -program wat op win/Linux/mac werk en wat u rekenaar in 'n volledige beheerder vir SysEx -synths kan verander
- David Konsumer se 'junosex' CC -omskakelaar: hierdie projek vra vir geringe hardewarewerk aan u kant en die idee is wonderlik - 'n arduino -gebaseerde CC na SysEx -omskakelaar waarmee u 'n gemeenskaplike nie -SysEx MIDI -kontroleerder kan gebruik (dws 'n AKAI MPK -meester -sleutelbord)) om met u SysEx-gereed synth te praat
Aanbeveel:
Hoe om byna enige spelbeheerder skoon te maak: 5 stappe
Hoe om bykans enige spelbeheerder skoon te maak: Ek het 'n handjievol van hierdie Logitech Dual Action -beheerders wat ek gebruik vir 'n Raspberry Pi -emulator, waarna ek binnekort 'n instruksies sal oplaai. meer as 'n jaar), die meeste van die knoppies op die
Arduino MIDI Rhythm Section Sequencer: 8 stappe (met foto's)
Arduino MIDI Rhythm Section Sequencer: Dit is vandag maklik en goedkoop om 'n goeie sagteware -trommasjien te hê, maar die gebruik van 'n muis maak my baie lekker. Daarom het ek besef wat aanvanklik bedoel was as 'n suiwer 64 -stappige MIDI -trommelvolgorde vir hardeware, wat tot 12 verskillende dromelems kan veroorsaak
Verander byna alles in 'n luidspreker: 13 stappe (met foto's)
Verander byna enigiets in 'n luidspreker: u kan byna enige voorwerp in 'n luidspreker verander deur 'n piëzo -skyf en 'n handjievol bykomende komponente te gebruik. Alhoewel dit magies lyk, is daar eintlik 'n redelik eenvoudige tegniese verduideliking. Deur 'n piëzo -skyf met 'n versterker te bestuur, kan die skyf
Spin Coater V1 (byna analoog): 9 stappe (met foto's)
Spin Coater V1 (byna analoog): nie alle toerusting is gemaak om te hou nie; ek is 'n student/navorser wat dun filmmateriaal bestudeer vir sontegnologie. Een van die toerusting waarop ek staatmaak, word 'n draaibak genoem. Dit is 'n instrument om dun films van 'n materiaal te maak uit 'n vloeibare oplossing
Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): 7 stappe (met foto's)
Programmeerbare RGB LED Sequencer (met behulp van Arduino en Adafruit Trellis): My seuns wou hê dat kleur -LED -stroke hul lessenaars verlig, en ek wou nie 'n ingemaakte RGB -strookbeheerder gebruik nie, want ek het geweet dat hulle verveeld sou raak met die vaste patrone hierdie beheerders het. Ek het ook gedink dit sou 'n wonderlike geleentheid wees om te skep