Përmbajtje:

Një kuti tjetër MIDI në CV: 7 hapa (me fotografi)
Një kuti tjetër MIDI në CV: 7 hapa (me fotografi)

Video: Një kuti tjetër MIDI në CV: 7 hapa (me fotografi)

Video: Një kuti tjetër MIDI në CV: 7 hapa (me fotografi)
Video: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, Nëntor
Anonim
Një kuti tjetër MIDI në CV
Një kuti tjetër MIDI në CV

Një tjetër kuti MIDI në CV është një projekt që kam zhvilluar kur një Korg MS10 trokiti në derën time dhe u zhvillua në studion time. Duke qenë se konfigurimi im lidhet shumë me MIDI për të automatizuar dhe sinkronizuar të gjitha instrumentet, kur bleva MS10 problemi i parë me të cilin duhej të përballesha ishte se si të zbatoja një kontroll të tillë.

Korg MS20/10 nuk janë sintetet më të lehta për t'u zbatuar MIDI në: para së gjithash, ata mbështeten në kontrollin Hz/V (korrelacion linear midis tensionit të kontrollit dhe frekuencës së shënimit), në vend të okt/V (1V për oktavë); së dyti, për të shkaktuar një shënim duhet të dërgoni një sinjal negativ të portës dhe të shkurtoni hyrjen në tokë (S-Trig), jo një sinjal +5 V (V-trig).

Ka zgjidhje të ndryshme komerciale për të kontrolluar instrumente të tillë në ditët e sotme (p.sh. Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), por unë jam një bastard i lirë dhe madje 100 euro janë shumë për një pajisje "që nuk tingëllon":).

Këtu jemi atëherë: më lejoni t'ju tregoj se si të ndërtoni një kuti MIDI në CV me buxhet të ulët për të kontrolluar/automatizuar hapin, portën, shpejtësinë dhe frekuencën e një sintetike para MIDI me një kontrollues të jashtëm MIDI (Tastiera, DAW, sekuencer ose çfarëdo tjetër) Me

"Po në lidhje me mini MS20 të ri?"

Siç e di pothuajse kushdo, MS20 i ri është në të vërtetë gati MIDI: IN me një lidhës MIDI me 5 pole dhe IN/OUT me lidhës USB.

"Pra, nëse kam një mini MS20 kjo gjë është e padobishme!"

Epo, jo MS20 mini njeh vetëm mesazhet e ndezjes/fikjes dhe tastiera nuk është e ndjeshme ndaj shpejtësisë. Nuk ka asnjë mënyrë për ta kapërcyer këtë me tastierën MS10/20 të cilësisë së mirë ose mini, por me kutinë midi dhe një tastierë të ndjeshme ndaj shpejtësisë jeni të artë. Për më tepër, me kutinë MIDI ju mund të automatizoni ndërprerjen e filtrit (ose ndonjë parametër tjetër të kontrollueshëm të tensionit) ose ta moduloni atë nga shënimi i hyrjes MIDI mbi shpejtësinë. Përsëri, i vetmi kanal MIDI MS20 mini i përgjigjet është kanali 1. Me këtë kuti ju gjithashtu mund të kapërceni këtë kufi.

"Po sikur të kem një sintezë Oct/V?"

Nuk ka problem! Kodi që kam shkruar është i pajtueshëm me sintetizuesit Oct/V (i paprovuar, por kam besim se do të funksionojë jashtë kutisë;)).

Hapi 1: !! Shënim i Kujdes - Mohim !

Pajisjet tuaja janë shumë të vlefshme dhe nuk duhet të përdoren për të kryer teste.

Lodra me energji elektrike mund të dëmtojë rëndë pajisjet tuaja ose të dëmtojë veten.

Unë nuk mund të mbahem përgjegjës për dëmtimet e pajisjeve/pajisjeve tuaja apo edhe vetes që vijnë nga ndonjë softuer ose skema, informacione ose lidhje që kam raportuar në këtë udhëzues.

Ju jeni paralajmëruar!

Hapi 2: Inxhinieri e pajisjeve

Arduino vjen mirë kur merret me projekte të tilla. Ekzistenca e një Komuniteti të madh dhe bibliotekave shumë të mira që përfshijnë pothuajse çdo detyrë të zakonshme e bëjnë atë zgjedhjen e duhur. Këtu bordi do të programohet i tillë që do të lexojë të dhënat hyrëse MIDI dhe më pas do të dërgojë tensione të përshtatshme për të përzënë:

- Katran, duke konvertuar një dalje pwm në një tension analog për të drejtuar VCO përmes një konvertuesi dixhital në analog (DAC)

- Shpejtësia, duke filtruar një dalje pwm për të drejtuar VCA me një filtër të thjeshtë RC

- Filtroni Frekuencën e Ndërprerjes, duke filtruar një dalje pwm për të drejtuar VCF me një filtër të thjeshtë RC

- Porta, drejtpërdrejt nga një dalje dixhitale në rast të V-trig (vendosni 1Kohm në seri me daljen për të zvogëluar rrjedhjen aktuale) ose nga një tranzistor i thjeshtë pnp kaloni nga dalja dixhitale (shikoni skematik bashkangjitur hapit të skemave) Me

Arduino nuk është i aftë të nxjerrë tensione të qëndrueshme drejtpërdrejt, por impulse 0/+5 V me periudha të ndryshme (PWM). Ne kemi nevojë për konvertues dixhital në analog (DAC) për derdhjen. Filtrat RC janë DAC -ja më e lehtë që mund të mendoj. Një filtër RC është mjaft i mirë për përforcuesin dhe filtrin e kontrolluar nga tensioni (VCA dhe VCF). Filtrat RC janë përshtatur për të rezultuar në një frekuencë ndërprerëse <20Hz (frekuenca më e ulët e dëgjueshme).

Bëra një provë me kondensatorë të pa polarizuar me kapacitet të ulët dhe përfundova me një vlerë kapaciteti prej 0.1uF për të qenë më i përshtatshmi. Testuar mirë në një MS20 MKII.

Fatkeqësisht, ne nuk mund të mbështetemi në një filtër RC për të drejtuar oshilatorin e kontrolluar të tensionit (VCO) pasi nuk do të ishte mjaft i saktë (në shkallën Hz/V, në skajin e poshtëm dy gjysmëtone adiacend ndryshojnë për më pak se 0.02V; në V /okt dy gjysmëtone ngjitur ndryshojnë për 0.083 V); ne do të përdorim një IC DAC (MPC4725) për këtë.

Kufijtë e njohur

Duke kufizuar tensionin e makinës në 5V (tensioni i daljes Arduino), diapazoni i plotë 0 deri në 5V është i mbuluar për shpejtësinë; ndërprerja është gjysmë e mbuluar (-5V në +5V); Gama VCO është pjesërisht e mbuluar duke qenë se në Hz/V do të kërkohej një tension prej 8 V për të arritur në 440 Hz A4. Me një kufi të daljes 5V ne mund ta vendosim oshilatorin deri në frekuencën D4 në Hz/V.

Hapi 3: Lista e Komponentëve

Lista e Komponentëve
Lista e Komponentëve
Lista e Komponentëve
Lista e Komponentëve
Lista e Komponentëve
Lista e Komponentëve

Ju keni nevojë për:

1X Arduino UNO (ose nano)

Bordi 1X MPC4725 DAC

Lidhës mono 4X 1/8 "ose 1/4"

1X lidhës MIDI

Optokoupler 1X 6N138

Diodë 1X 1N4148

Rezistencë 1X 220 ohm 1/4 W

Rezistencë 1X 470 ohm 1/4 W

Rezistencë 1X 10K ohm 1/4 W

4X 1K ohm 1/4 W rezistencë

Kondensator 2X 0.1 uF

Transistor 1X BC547 pnp (në rast të S-trig)

1X kuti ABS (të paktën 55 x 70 x 100 mm)

… Dhe padyshim dërrasë buke ose dërrasë, hekur bashkues, tela lidhës dhe kabllo (2 metra 28 AWG duhet të mjaftojnë).

Vini re se në fotografitë e mësipërme prototipi im monton 100 kapakë elektrolitikë uF, por ato janë shumë të ngadalta për shkak të kohës së ngarkimit të kapacitetit. Një kapacitet prej 0.1uF është zgjedhja e duhur.

Kam përdorur një lidhës shtesë për të furnizuar energjinë me arduino -në time; nuk është e nevojshme të jetë e mundur të pini mikrokontrollues direkt përmes mini lidhësit USB në bord.

Hapi 4: Lidhjet/Skemat

Lidhjet/Skemat
Lidhjet/Skemat
Lidhjet/Skemat
Lidhjet/Skemat
Lidhjet/Skemat
Lidhjet/Skemat

MIDI N IN

Qarku MIDI IN është i thjeshtë dhe i përshkruar mirë në rrjet. Merrni këtë udhëzues të shkëlqyeshëm për MIDI dhe Arduino nga Amanda Gassaei, për shembull. Unë e bëra skematikun e nëntë për çështjen gjithsesi.

Vini re se shtova një ndërprerës në skemën MIDI IN (çelësi 1): kjo është e nevojshme kur ngarkoni një skicë të re në Arduino sepse optoja ndërhyn në linjën RX edhe pa mesazhe të mesme hyrëse. Ju duhet të hapni çelësin para se të ngarkoni skicën tuaj ose IDE nuk do të ngarkojë skicën e re.

Ju përfundimisht mund të modifikoni skicën për të përdorur një komunikim softuerik serik.

DAC, RC Filter, Synthesizer

Lidhja për filtrat DAC, RC dhe Synth (lartësia, porta dhe shpejtësia) tregohen në diagramin në krye. Mora për referencë një panel patch Korg MS20, por testova gjithçka edhe në një MS10. Lidhja direkte e shpejtësisë CV me pikën e "fitimit fillestar" të VCA nuk ka efekt (duhet ta gërmoj më tej këtë gjë), por nëse e lidhni me pikën e arnimit "Total" dhe ngrini enët tuaja të jashtme totale (MG/T. EXT), do të dëgjoni ndryshime të këndshme të tonit në funksion të shpejtësisë së shënimit.

Skemat e mia (dhe prototipi im gjithashtu) nuk përdorin një rezistencë kufizuese aktuale në daljen DAC, por është gjithmonë një ide e mirë të vendosni një për të siguruar jetë të gjatë në qarqet tuaja. Një rezistencë 220 ohm do të jetë e mjaftueshme.

Vini re se në skemat mbi 100 kapakë elektrolitikë uF janë raportuar, por ato janë shumë të ngadalta për shkak të kohës së ngarkimit të kapacitetit. Kapakët jo të polarizuar, 0.1uF janë zgjedhja e duhur.

Porta Jashtë

Në rast se do të rendisni një sintet të pajtueshëm me sinjalet V-Trig (shkaktuesi i tensionit), një rezistencë e serisë 1k ohm për të zvogëluar rrjedhjen aktuale do të jetë e mjaftueshme; në rast të një sintetike S-Trig (kaloni shkas), mund të përdorni një qark të thjeshtë kalimi PNP (shiko skemën e bashkangjitur).

Hapi 5: Softueri

Softueri
Softueri

Unë u përpoqa ta mbaja skicën sa më të qartë dhe "të lexueshme".

Kam punuar në një fletë të thjeshtë llogaritëse kam gjetur KERTU për të nxjerrë një kurbë të Tensionit Vs Shënim# dhe përdor direkt ekuacionin në mikrokontrollues. Ekuacioni tregohet në grafikun në krye. Kam përdorur C2 si shënim reference për të marrë një lidhje të shënimit të Tensionit Vs në përputhje me Arp/Korg (C0 - 0.25V, C1 - 0.5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V dhe kështu me radhë).

Më duhej të përcaktoja disa variabla për të luajtur me lodrën në mënyrë që të arrini një akordim të mirë … merrni kohën tuaj për të gjetur vlerat e sakta. Një akordues është i nevojshëm.

Ne do të rrisim frekuencën pwm të një kohëmatësi/numëruesi për të zvogëluar valëzimin e tensioneve të daljes (aq e lehtë sa një linjë kodi).

Për ta mbajtur kodin të përgjegjshëm ndaj bajtëve të ardhur, kodi mbështetet shumë në thirrjet e funksioneve.

Ju keni nevojë për bibliotekat Sparkfun "Adafruit_MCP4725.h" dhe Dyzet Shtatë Efektet/"MIDI.h" të Francois Best për të përpiluar! (Shumë faleminderit për këta persona: pa përpjekjet e tyre ky projekt nuk do të realizohej kurrë!).

Unë do të supozoj se keni Arduino IDE gati në kompjuterin tuaj dhe ju e dini se si të ngarkoni një skicë në bordin tuaj Arduino.

Unë nuk jam një kodues në jetën reale, kështu që ka shumë të ngjarë që skica të shkruhet në një mënyrë më të mirë. Unë jam i hapur për sugjerime (gjithmonë mësoj diçka duke parë kodin e koduesit;))

Shënimet shtesë janë të shkruara në kodin më poshtë. Instaloni dy bibliotekat, hapni kodin e bashkangjitur në IDE tuaj, lidhni bordin tuaj, zgjidhni llojin e bordit dhe ngarkoni.

Hapi 6: Zgjidhja e problemeve

Edhe nëse projekti është i nivelit të ulët, ka mijëra gjëra që mund të shkojnë keq. Nëse po përjetoni probleme gjatë përpjekjes për të krijuar kutinë tuaj MIDI në CV, ndiqni këto hapa:

1. Sigurohuni që Arduino po merr saktë mesazhe MIDI

Kontrolloni kanalin dalës i tastierës tuaj ose DAW ose Sequencer që po nxjerr mesazhe MIDI. Arduino po dëgjon kanalin 1 si parazgjedhje. Ngarko "TEST_MIDI_IN.ino" për të lexuar një mesazh në hyrje të një mesazhi.

2. Kontrolloni dy herë telat tuaj

… Ose edhe më mirë: kontrolloni tre herë ato! Mbani kohën tuaj për këtë.

3. Kontrolloni adresën dhe daljen DAC

DAC mund të vendoset për të marrë të dhëna në një adresë të ndryshme nga ajo që kam vendosur në skicë. Kontrolloni adresën duke ekzekutuar "I2C_scanner.ino". Nëse ndodh një gabim "nuk u gjet asnjë pajisje", kontrolloni instalimet tuaja DAC (hyrjet SDA dhe SCL janë të ndryshme në tabela të ndryshme Arduino!). Nëse keni një oshiloskop (edhe ato oshiloskopë dixhitalë prej 15 eurosh janë mjaft të mirë … dhe argëtues për të luajtur me të!) Ju mund të kontrolloni daljen e DAC tuaj duke ngarkuar shembullin e gjeneratorit të valëve të trekëndëshit të përfshirë me instalimin e bibliotekës DAC.

Mos harroni se kur një optokoupler lidhet me hyrjen RX të bordit tuaj arduino, ju nuk do të jeni në gjendje të ngarkoni një skicë të re !! Vendosni një ndërprerës (mund të jetë një kërcyes i thjeshtë) para kunjit RX.

Shumica e këtyre skicave të provës nuk janë të miat ose të paktën të bazuara në materialin ekzistues në internet.

Kjo gjë më tingëllon jashtë melodisë !?

Kjo nuk është një çështje e vërtetë: ekuacioni i nxjerrë për kontrollin Hz/V është "ideal". Disa devijime nga sjellja ideale mund të dalin nga +5V që ju furnizoni duke mos qenë 5.000V, nga DAC dhe nga vetë instrumenti. Për të zgjidhur, duhet të veproni sipas potenciometrit tuaj të sintetizimit/akordimit të mirë dhe "voilà" një kontroll MIDI të sintonizuar në mënyrë perfekte;)

Hapi 7: Lidhje të dobishme

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~suits/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specifications/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

Recommended: