Sadržaj:

Još jedan MIDI do CV Box: 7 koraka (sa slikama)
Još jedan MIDI do CV Box: 7 koraka (sa slikama)

Video: Još jedan MIDI do CV Box: 7 koraka (sa slikama)

Video: Još jedan MIDI do CV Box: 7 koraka (sa slikama)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Juli
Anonim
Još jedan MIDI u CV Box
Još jedan MIDI u CV Box

Još jedan MIDI to CV box je projekt koji sam razvio kada mi je Korg MS10 pokucao na vrata i odigrao se u mom studiju. Budući da se moja postavka jako odnosi na MIDI za automatizaciju i sinkronizaciju svih instrumenata, kada sam kupio MS10, prvi problem s kojim sam se morao suočiti bio je kako implementirati takvu kontrolu.

Korg MS20/10 nisu najjednostavniji sintetizatori za implementaciju MIDI -ja: prije svega, oslanjaju se na upravljanje Hz/V (linearna korelacija između upravljačkog napona i notne frekvencije), umjesto okt/V (1V po oktavi); drugo, da biste aktivirali notu morate poslati negativni signal kapije i spojiti ulaz na masu (S-Trig), a ne signal od +5 V (V-okidač).

Danas postoje različita komercijalna rješenja za kontrolu takvih instrumenata (npr. Arturia Beatstep Pro, Korg SQ-1, Kenton Solo), ali ja sam jeftino kopile i čak 100 eura je previše za uređaj koji ne zvuči:).

Evo nas: dopustite mi da vam pokažem kako izgraditi niskobudžetni MIDI u CV okvir za kontrolu/automatizaciju tona, ulaza, brzine i granične frekvencije pre-MIDI sintetizatora sa vanjskim MIDI kontrolerom (tastatura, DAW, sekvencer ili bilo šta drugo).

"Što je s novim MS20 mini?"

Kao što skoro svi znaju, novi MS20 je zapravo spreman za MIDI: IN sa 5 -polnim MIDI konektorom i IN/OUT sa USB konektorom.

"Dakle, ako imam MS20 mini, ova stvar je beskorisna!"

Pa, ne. MS20 mini prepoznaje samo poruke o uključivanju/isključivanju bilješki i tastatura nije osjetljiva na brzinu. Nema načina da se to prevlada pomoću MS10/20 vintage ili mini tastature, ali sa midi kutijom i tastaturom osjetljivom na brzinu zlatni ste. Osim toga, pomoću MIDI okvira možete automatizirati prekid filtra (ili bilo koji drugi parametar koji se može kontrolirati naponom) ili ga modulirati dolaznom MIDI bilješkom o brzini. Opet, jedini MIDI kanal na koji MS20 mini reagira je kanal 1. S ovim okvirom možete prevladati i ovo ograničenje.

"Šta ako imam Oct/V sintisajzer?"

Nema problema! Kôd koji sam napisao kompatibilan je sa Oct/V sintisajzerima (neprovjereno, ali sam uvjeren da će to funkcionirati bez kutije;)).

Korak 1: !! Napomena o oprezu - odricanje odgovornosti

Vaša oprema je vrlo vrijedna i ne smije se koristiti za izvođenje testova.

Igranje električnom energijom može ozbiljno oštetiti vašu opremu ili naštetiti vama.

Ne mogu biti odgovoran za oštećenja na vašoj opremi/hardveru, pa čak ni za vas koja proizlaze iz bilo kojeg softvera ili sheme ili informacije ili veze koje sam prijavio u ovom uputstvu.

Upozoreni ste!

Korak 2: Inženjering hardvera

Arduino je koristan kada se bavite ovakvim projektima. Postojanje velike zajednice i vrlo dobrih biblioteka koje obuhvaćaju gotovo svaki zajednički zadatak čine ga pravim izborom. Ovdje će ploča biti programirana tako da čita dolazne MIDI podatke, a zatim šalje odgovarajuće napone za pogon:

- Nagib, pretvaranjem izlaza pwm u analogni napon za pogon VCO preko digitalno -analognog pretvarača (DAC)

- Velocity, filtriranjem pwm izlaza za pogon VCA jednostavnim RC filterom

- Frekvencija granične vrijednosti filtera filtriranjem pwm izlaza za pogon VCF -a jednostavnim RC filterom

- Vrata, izravno s digitalnog izlaza u slučaju V-trig (stavite 1Kohm u seriju sa izlazom za smanjenje trenutnog odvoda) ili jednostavnim pnp tranzistorskim prekidačem iz digitalnog izlaza (pogledajte shemu u prilogu koraka sa shemama).

Arduino ne može emitirati izravno stabilan napon, ali 0/+5 V impulse s različitim periodima (PWM). Potrebni su nam digitalno -analogni pretvarači (DAC) za izlivni prostor. RC filteri su najlakši DAC kojeg se mogu sjetiti. RC filter je dovoljan za pojačalo i filter s naponskim upravljanjem (VCA i VCF). RC filtri su prilagođeni tako da rezultiraju graničnom frekvencijom <20Hz (najniža zvučna frekvencija).

Napravio sam neki test s nepolariziranim kondenzatorima niskog kapaciteta i završio sam s vrijednošću kapaciteta od 0,1 uF kako bih najbolje odgovarao. Dobro testirano na MS20 MKII.

Nažalost, ne možemo se osloniti na RC filter za pogon oscilatora upravljanog naponom (VCO) jer ne bi bio dovoljno precizan (u skali Hz/V, na donjem kraju dva poluglasna adiacenda se razlikuju za manje od 0,02 V; u V /okt dva adijacentna polutona razlikuju se za 0,083 V); za to ćemo koristiti IC DAC (MPC4725).

Poznata ograničenja

Ograničavajući pogonski napon na 5V (Arduino izlazni napon), cijeli raspon od 0 do 5V pokriven je brzinom; prekid je napola pokriven (-5V do +5V); raspon VCO je djelomično pokriven time što bi u Hz/V bio potreban napon od 8 V da bi dosegao A4 440 Hz. S ograničenjem od 5 V na izlazu, oscilator možemo postaviti do D4 frekvencije u Hz/V.

Korak 3: Lista komponenti

Lista komponenti
Lista komponenti
Lista komponenti
Lista komponenti
Lista komponenti
Lista komponenti

Potrebni ste za:

1X Arduino UNO (ili nano)

1X MPC4725 DAC ploča

4X 1/8 "ili 1/4" mono konektora

1X MIDI konektor

1X 6N138 optička sprežnica

1X 1N4148 dioda

1X 220 ohm 1/4 W otpornik

1X 470 ohm 1/4 W otpornik

1X 10K ohm 1/4 W otpornik

4X 1K ohm 1/4 W otpornik

2X 0,1 uF kondenzator

1X BC547 pnp tranzistor (u slučaju S-trig)

1X ABS kutija (najmanje 55 x 70 x 100 mm)

… i očito matična ploča ili ploča za lemljenje, lemljenje, žica za lemljenje i kablovi (2 metra 28 AWG bi trebalo biti dovoljno).

Primijetite da na gornjim slikama moj prototip postavlja 100 uF elektrolitičkih kapa, ali su prespori zbog vremena punjenja kapaciteta. Kapacitet od 0,1 uF je pravi izbor.

Koristio sam dodatni konektor za napajanje svog arduina; nije potrebno mikrokontroler priključiti direktno preko ugrađenog mini USB konektora.

Korak 4: Veze/sheme

Veze/Sheme
Veze/Sheme
Veze/Sheme
Veze/Sheme
Veze/Sheme
Veze/Sheme

MIDI IN

MIDI IN kolo je jednostavno i dobro opisano na mreži. Uzmite OVO izvrsno uputstvo za MIDI i Arduino, primjerice Amande Gassaei. Ionako sam napravio n -tu shemu po tom pitanju.

Primijetite da sam dodao sklopku u shemu MIDI IN (prekidač 1): ovo je potrebno pri učitavanju nove skice na Arduino jer opto ometa RX liniju čak i bez dolaznih midi poruka. Morate otvoriti prekidač prije postavljanja skice ili IDE neće uspjeti prenijeti novu skicu.

Skicu na kraju možete izmijeniti tako da koristi komunikaciju serijskog softvera.

DAC, RC filter, sintetizator

Priključci za DAC, RC filtere i Synth (korak, izlaz i brzina) prikazani su na dijagramu na vrhu. Uzeo sam za referencu Korg MS20 patch panel, ali sam sve testirao i na MS10. Direktno povezivanje velocity CV -a sa VCA patch tačkom "početnog pojačanja" nema efekta (ovo moram dodatno kopati), ali ako je povežete sa "Total" patch tačkom i povećate svoje ukupne vanjske posude (MG/T. EXT), čut ćete lijepe varijacije tonova u zavisnosti od brzine note.

Moje sheme (a ni moj prototip) ne koriste otpornik za ograničavanje struje na izlazu DAC -a, ali uvijek je dobra ideja postaviti jedan kako biste osigurali dug vijek trajanja svojih krugova. Otpornik od 220 ohma bit će dovoljan.

Uočite da su u shemama prikazane više od 100 uF elektrolitičkih kapa, ali one su presporo zbog vremena punjenja kapaciteta. Nepolarizirane kape od 0,1 uF pravi su izbor.

Gate Out

U slučaju da namjeravate sekvencirati sintetizator kompatibilan sa signalima V-Trig (okidač napona), bit će dovoljan otpornik serije 1k ohma za smanjenje trenutnog odvoda; u slučaju S-Trig (prekidača okidača) sintetizatora, mogli biste koristiti jednostavno kolo sklopke PNP (vidi priloženu shemu).

Korak 5: Softver

Softver
Softver

Pokušao sam da skica bude što jasnija i "čitljiva".

Radio sam na jednostavnom kalkulacijskom listu koji sam pronašao OVDJE kako bih izveo krivulju napona Vs Napomena# i izravno koristio jednadžbu u mikrokontroleru. Jednačina je prikazana na grafikonu na vrhu. Koristio sam C2 kao referentnu notu da dobijem odnos napona Vs usklađen sa Arp/Korg -om (C0 - 0,25V, C1 - 0,5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V i tako dalje).

Morao sam definirati neku varijablu s kojom bih se igrao kako bih dobro podesio … odvojite vrijeme da pronađete ispravne vrijednosti. Tuner je neophodan.

Povećat ćemo pwm frekvenciju tajmera/brojača kako bismo smanjili valovitost izlaznih napona (lako kao linija koda).

Da bi kôd odgovarao na dolazne bajtove, kôd se u velikoj mjeri oslanja na povratne pozive funkcija.

Potrebni su vam Sparkfun -ovi "Adafruit_MCP4725.h" i Četrdeset sedam efekata/"MIDI.h" biblioteke Francoisa Besta! (Veliko hvala ovim osobama: bez njihovog truda ovaj projekt nikada ne bi bio realiziran!).

Pretpostavit ću da imate Arduino IDE spreman na svom računaru i da znate kako učitati skicu na svoju Arduino ploču.

Ja nisam koder u stvarnom životu, pa je velika vjerovatnoća da bi se skica mogla napisati na bolji način. Otvoren sam za prijedloge (uvijek naučim nešto gledajući kod kodera;))

Dodatne napomene napisane su donjim kodom. Instalirajte dvije biblioteke, otvorite priloženi kôd na IDE -u, povežite svoju ploču, odaberite vrstu ploče i učitajte je.

Korak 6: Rješavanje problema

Čak i ako je projekt na niskom nivou, postoji mnogo stvari koje bi mogle poći po zlu. Ako naiđete na probleme dok pokušavate stvoriti vlastiti okvir za MIDI u CV, slijedite ove korake:

1. Uvjerite se da Arduino ispravno prima MIDI poruke

Provjerite izlazni kanal na koji vaša tipkovnica, DAW ili Sequencer emitiraju MIDI poruke. Arduino prema zadanim postavkama sluša kanal 1. Otpremite "TEST_MIDI_IN.ino" da biste pročitali dolaznu poruku noteON.

2. Dvaput proverite svoje ožičenje

… ili još bolje: provjerite ih trostruko! Odvojite vrijeme za ovo.

3. Provjerite DAC adresu i izlaz

DAC se može postaviti za prijem podataka na adresi koja nije adresa koju sam postavio na skici. Provjerite adresu pokretanjem "I2C_scanner.ino". Ako se dogodi greška "nije pronađen uređaj", provjerite ožičenje DAC -a (ulazi SDA i SCL različiti su na različitim Arduino pločama!). Ako imate oscilokop (čak i onih 15 eura digitalnih osciloskopa je dovoljno … i zabavno se igrati!), Možete provjeriti izlaz vašeg DAC -a tako što ćete učitati primjer generatora trokutastog vala koji je uključen u instalaciju DAC biblioteke.

Upamtite da kada je optički sprežnik spojen na RX ulaz vaše arduino ploče, nećete moći učitati novu skicu !! Postavite prekidač (to može biti obični kratkospojnik) prije RX pina.

Većina ovih skica testa nisu moje ili se barem temelje na postojećem mrežnom materijalu.

Ova stvar mi zvuči neskladno !?

Ovo nije pravi problem: jednadžba izvedena za upravljanje Hz/V je "idealna". Odstupanje od idealnog ponašanja može porasti od +5V koje isporučujete, a ne od 5.000V, od DAC -a i samog instrumenta. Da biste to riješili, morate djelovati na potenciometru za sintetičko/fino podešavanje i "voilà" savršeno podešenu MIDI kontrolu;)

Korak 7: Korisne veze

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

Preporučuje se: