Taula de continguts:

Un altre MIDI a CV Box: 7 passos (amb imatges)
Un altre MIDI a CV Box: 7 passos (amb imatges)

Vídeo: Un altre MIDI a CV Box: 7 passos (amb imatges)

Vídeo: Un altre MIDI a CV Box: 7 passos (amb imatges)
Vídeo: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, De novembre
Anonim
Un altre MIDI a CV Box
Un altre MIDI a CV Box

Una altra caixa MIDI a CV és un projecte que vaig desenvolupar quan un Korg MS10 va trucar a la meva porta i va tenir lloc al meu estudi. Com que la meva configuració es relaciona molt amb MIDI per automatitzar i sincronitzar tots els instruments, quan vaig comprar el MS10 el primer problema que vaig haver d’afrontar va ser com implementar aquest control.

Korg MS20 / 10 no són els sintetitzadors més fàcils d'implementar MIDI: en primer lloc, es basen en el control Hz / V (correlació lineal entre la tensió de control i la freqüència de les notes), en lloc d'oct / V (1V per octava); segon, per activar una nota, heu d’enviar un senyal de porta negativa i curt l’entrada a terra (S-Trig), no un senyal de +5 V (V-trig).

Actualment hi ha diverses solucions comercials per controlar aquests instruments (és a dir, Arturia Beatstep Pro, Korg SQ-1, Kenton Solo) però sóc un bastard barat i fins i tot 100 euros són massa per a un dispositiu que no soni:).

Aquí som: deixeu-me mostrar-vos com construir una caixa de MIDI a CV de baix pressupost per controlar / automatitzar el to, la porta, la velocitat i la freqüència de tall d’un sintetitzador pre-MIDI amb un controlador MIDI extern (teclat, DAW, seqüenciador o qualsevol cosa).

"Què passa amb el nou MS20 mini?"

Com gairebé tothom sap, el nou MS20 està preparat per a MIDI: IN amb un connector MIDI de 5 pols i IN / OUT amb connector USB.

"Per tant, si tinc un MS20 mini, això no serveix de res!"

Bé no. MS20 mini només reconeix els missatges d’activació / desactivació de notes i el teclat no és sensible a la velocitat. No hi ha manera de superar-ho amb el teclat vintage o mini MS10 / 20, però amb una caixa midi i un teclat sensible a la velocitat ets daurat. A més, amb la caixa MIDI podeu automatitzar el tall del filtre (o qualsevol altre paràmetre controlable per tensió) o fer-lo modular per la nota MIDI entrant sobre la velocitat. Una vegada més, l’únic canal MIDI al qual MS20 mini respon és el canal 1. Amb aquest quadre també podeu superar aquest límit.

"Què passa si tinc un sintetitzador Oct / V?"

Cap problema! El codi que he escrit és compatible amb els sintetitzadors Oct / V (no provat, però estic segur que funcionarà fora de la caixa;)).

Pas 1: !! Nota de precaució: exempció de responsabilitat

El vostre equip és molt valuós i no s’ha d’utilitzar per realitzar proves.

Jugar amb electricitat pot danyar greument l’equip o fer-se mal.

No em puc fer responsable dels danys causats al vostre equipament / maquinari ni a vosaltres mateixos provinents de cap programa o esquema, informació o enllaços que he informat en aquest document instructiu.

Has estat avisat!

Pas 2: Enginyeria del maquinari

Arduino és útil quan es tracta de projectes com aquest. L'existència d'una gran comunitat i molt bones biblioteques que abasten gairebé totes les tasques habituals la converteixen en l'elecció correcta. Aquí, la placa es programarà de manera que llegirà les dades MIDI entrants i, a continuació, enviarà els voltatges adequats a la unitat:

- Pitch, convertint una sortida pwm en una tensió analògica per accionar el VCO mitjançant un convertidor digital a analògic (DAC)

- Velocitat, filtrant una sortida pwm per accionar el VCA amb un senzill filtre RC

- Freqüència de tall del filtre, filtrant una sortida pwm per accionar el VCF amb un senzill filtre RC

- Porta, directament des d'una sortida digital en cas de V-trig (poseu un 1Kohm en sèrie amb la sortida per reduir el drenatge de corrent) o mitjançant un senzill commutador de transistor pnp fora de la sortida digital (vegeu l'esquema adjunt al pas d'esquema).

Arduino no és capaç de generar tensions directament constants, sinó polsos de 0 / + 5 V amb diversos períodes (PWM). Estem en la necessitat de convertidors digitals a analògics (DAC) per a la companyia. Els filtres RC són el DAC més fàcil que se m’acut. Un filtre RC és suficient per a l'amplificador i el filtre controlats per tensió (VCA i VCF). Els filtres RC estan dissenyats per obtenir una freqüència de tall <20Hz (freqüència sonora més baixa).

Vaig fer una prova amb condensadors no polaritzats de baixa capacitat i vaig acabar amb un valor de capacitat de 0,1 uF per ser el millor ajust. S'ha provat bé en un MS20 MKII.

Malauradament, no podem confiar en un filtre RC per accionar l'oscil·lador controlat per tensió (VCO), ja que no seria suficient (en escala Hz / V, a l'extrem inferior dos semitons adiacend difereixen per menys de 0,02 V; en V / oct dos semitons adiacents difereixen per 0,083 V); utilitzarem un DAC IC (MPC4725) per a això.

Límits coneguts

Limitant la tensió de la unitat a 5V (la tensió de sortida Arduino), es cobreix el rang complet de 0 a 5V per velocitat; el tall està mig tapat (-5V a + 5V); el rang de VCO està parcialment cobert, ja que en Hz / V seria necessària una tensió de 8 V per arribar als 440 Hz A4. Amb un límit de sortida de 5V podem llançar l’oscil·lador fins a la freqüència D4 en Hz / V.

Pas 3: llista de components

Llista de components
Llista de components
Llista de components
Llista de components
Llista de components
Llista de components

Necessiteu:

1X Arduino UNO (o nano)

1X placa DAC MPC4725

Connectors mono 4X 1/8 "o 1/4"

Connector MIDI 1X

Optoacoblador 1X 6N138

Diode 1X 1N4148

Resistència 1X 220 ohm 1/4 W.

Resistència 1X 470 ohm 1/4 W.

Resistència 1X 10K ohm 1/4 W.

Resistència 4X 1K ohm 1/4 W.

Condensador 2X 0,1 uF

Transistor pnp 1X BC547 (en cas de S-trig)

1x caixa ABS (com a mínim 55 x 70 x 100 mm)

… I, òbviament, taulers de fusta o taulers, planxa de soldadura, filferro i cables de soldadura (caldria fer servir 2 metres de 28 AWG).

Fixeu-vos que a les imatges de més amunt el meu prototip munta taps electrolítics de 100 uF, però són massa lents a causa del temps de càrrega de la capacitat. Una capacitat de 0,1 uF és l’elecció correcta.

He utilitzat un connector addicional per subministrar energia al meu arduino; no cal fer suc del microcontrolador directament a través del connector mini USB incorporat.

Pas 4: connexions / esquemes

Connexions / Esquemes
Connexions / Esquemes
Connexions / Esquemes
Connexions / Esquemes
Connexions / Esquemes
Connexions / Esquemes

MIDI IN

El circuit MIDI IN és senzill i està ben descrit a la xarxa. Pren, per exemple, AQUEST excel·lent instructiu a MIDI i Arduino. De tota manera, vaig fer el novè esquema sobre el tema.

Fixeu-vos que he afegit un commutador a l’esquema MIDI IN (commutador 1): això és necessari quan es carrega un nou esbós a Arduino perquè l’opto interfereix amb la línia RX fins i tot sense missatges MIDI entrants. Heu d'obrir el commutador abans de penjar l'esbós o l'IDE no penjarà l'esbós nou.

Finalment, podeu modificar l’esbós per utilitzar una comunicació de programari en sèrie.

DAC, filtre RC, sintetitzador

La connexió per a filtres DAC, RC i Synth (pitch, porta i velocitat) es mostra al diagrama superior. Vaig prendre per referència un panell de pegats Korg MS20, però també ho vaig provar tot en un MS10. La connexió directa del CV de velocitat amb el punt de connexió "guany inicial" VCA no té cap efecte (he de aprofundir aquesta cosa), però si el connecteu al punt de connexió "Total" i pugeu el total de pot externs (MG / T. EXT)), escoltaràs bones variacions de to en funció de la velocitat de la nota.

Els meus esquemes (i el meu prototip també) no fan servir una resistència de limitació de corrent a la sortida del DAC, però sempre és una bona idea col·locar-ne una per garantir una llarga vida als vostres circuits. Es necessitarà una resistència de 220 ohm.

Fixeu-vos que en els esquemes superiors a 100 uF es presenten taps electrolítics, però són massa lents a causa del temps de càrrega de la capacitat. Les tapes no polaritzades de 0,1 uF són l’elecció correcta.

Gate Out

En cas que aneu a seqüenciar un sintetitzador compatible amb senyals V-Trig (activador de tensió), serà suficient una resistència de la sèrie d'1 k ohm per reduir el drenatge de corrent; en cas d'un sintetitzador S-Trig (switch trigger), podeu utilitzar un senzill circuit de commutació PNP (vegeu l'esquema adjunt).

Pas 5: el programari

El programari
El programari

Vaig tractar de mantenir l'esbós el més clar i "llegible" possible.

Vaig treballar en un full de calc simple que he trobat AQUÍ per obtenir una corba de Voltage Vs Note # i utilitzar directament l'equació del microcontrolador. L’equació es mostra al gràfic superior. He utilitzat C2 com a nota de referència per obtenir una relació de nota de tensió Vs compatible amb Arp / Korg (C0 - 0,25 V, C1 - 0,5 V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V, etc.).

Vaig haver de definir alguna variable per jugar amb la finalitat d’obtenir una bona sintonia … Preneu-vos el temps per trobar els valors correctes. Cal un sintonitzador.

Augmentarem la freqüència pwm d’un temporitzador / comptador per reduir l’ondulació de les tensions de sortida (tan fàcil com una línia de codi).

Per mantenir el codi sensible als bytes entrants, el codi depèn en gran mesura de les devolucions de trucada de les funcions.

Teniu la necessitat de compilar les biblioteques "Adafruit_MCP4725.h" de Sparkfun i les biblioteques "MIDI.h" de Forty Seven Effects / Francois Best! (Moltes gràcies a aquestes persones: sense els seus esforços aquest projecte no es realitzaria mai!).

Suposo que teniu IDE Arduino llest al vostre PC i sabeu com carregar un esbós a la vostra placa Arduino.

No sóc un programador a la vida real, així que és molt probable que l'esbós es pugui escriure d'una manera millor. Estic obert a suggeriments (sempre aprenc alguna cosa mirant el codi del codificador;))

Les notes addicionals s’escriuen al codi següent. Instal·leu les dues biblioteques, obriu el codi adjunt al vostre IDE, connecteu el tauler, seleccioneu el tipus de tauler i pengeu-lo.

Pas 6: resolució de problemes

Fins i tot si el projecte és de baix nivell, hi ha un munt de coses que podrien sortir malament. Si teniu problemes mentre intenteu crear el vostre propi quadre MIDI a CV, seguiu aquests passos:

1. Assegureu-vos que Arduino rep correctament missatges MIDI

Comproveu el canal de sortida al qual el teclat o DAW o Sequencer estan enviant missatges MIDI. Arduino escolta el canal 1 per defecte. Pengeu "TEST_MIDI_IN.ino" per llegir un missatge ON entrant.

2. Comproveu de nou els cables

… o fins i tot millor: comproveu-los triple! Conserva el teu temps per això.

3. Comproveu l'adreça i la sortida del DAC

El DAC es podria configurar per rebre dades en una adreça diferent de la que he establert a l'esbós. Comproveu l'adreça executant "I2C_scanner.ino". Si es produeix un error "no s'ha trobat cap dispositiu", comproveu el cablejat del DAC (les entrades SDA i SCL són diferents en diferents plaques Arduino!). Si teniu un oscil·lopi (fins i tot aquests oscil·loscopis digitals de 15 euros són suficients … i divertits de jugar!), Podeu comprovar la sortida del vostre DAC carregant l’exemple del generador d’ona triangular inclòs amb la instal·lació de la biblioteca DAC.

Recordeu que quan es connecti un optoacoplador a l'entrada RX de la vostra placa arduino, no podreu penjar un esbós nou! Col·loqueu un commutador (pot ser un simple pont) davant del pin RX.

La majoria d’aquests esbossos de prova no són meus o almenys es basen en material en línia existent.

Això em sona desentonat !?

Aquest no és un problema real: l'equació derivada per al control Hz / V és "ideal". Alguna deriva del comportament ideal pot augmentar a partir del + 5V que subministreu, no és de 5.000V, del DAC i del propi instrument. Per resoldre-ho, heu d'actuar amb el vostre sintetitzador sintonitzador / afinar el potenciòmetre i "voilà" un control MIDI perfectament afinat;)

Pas 7: enllaços útils

ca.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

Recomanat: