# Controlador MIDI



## Coma (Jun 29, 2006)

Hola.

Bueno, estoy tratando de armarme un controlador MIDI para controlar software de mi PC. Tuve un teclado MIDI prestado con el que experimenté un poco y digamos que la parte de software lka tengo más resuelta. La idea final sería armar una pedalera, ya que toco la guitarra y mi intención  es cambiar de efectos y demás.

El problema es que no encontré demasiados circuitos para hacer siquiera un generador bien básico de notas MIDI ni nada. Después de mucho buscar lo mejor que encontré es esto:

http://www.zicweb.com/scripts/jmp.php?i=1085&lg=us

Mis conocimientos de electrónica son muy básicos, pero tengo conocidos que me pueden dar una mano. Independientemente de este circuito, mi duda es si existen circuitos más sencillos para generar señales MIDI. A través de software podría eventualmente convertir las notas generadas en otro tipo de eventos. Digamos, no creo que sea necesario hacer semejante controlador para algo que puedo resolver simplemente con 4, 2 ó hasta 1 sencilla nota.

Supongo que busqué mal o no se qué, pero: existe algo así como un generador de notas MIDI bien simple y básico? Que activando un interruptor emita un C4 y punto bastaría en un principio.

Desde ya muchas gracias y disculpen si es el foro equivocado (no se si ponerlo acá o en informática).


----------



## Peblo (Jul 26, 2006)

Hola, mira, realmente encontre tu post y no lo podia creer, estoy buscando lo mismo que vos, va, yo lo que quiero hacer es directamente el hardware, armar un controlador midi, ya que comprar uno ronda los 300 dolares (en argentina) y ensima es usado. Imagino que lo que vos queres es hacer los cambios de programa por la pc, eso simplemente lo podes hacer con programas como el cakewalk, el guitar pro, el cubase, con esos mandas los cambios de programa dando las notas que vos decis.
Respecto de este que posteaste, probaste alo, te sirvio andubo????
Gracias, y en lo que pueda, te ayudare!


----------



## thamaphyr (May 5, 2010)

Adecir verdad, yo estoy tratando de hacer lomismo, pero lo voy a crear para mi bateria, aunque me estoy dando cuenta que es unicamente seguir el protocolo MIDI, yo si tengo conocimientos en programacion, y segun leyendo en wikipedia es seguir enviar esa trama de datos segun lo que uno desee hacer, si me sale lo posteare, aunque me inquieta la velocidad de transferencia, porque ahi dice que debe ser de 31250 BPS y la unica que veo cercana por hiperterminal es 38500 BPS, y no hay mas opciones, no se si funcione, si alguien tiene mejor idea o ya lo ha hecho, seria genial, yo solo necesito un boton que actue como trigguer y ejecute una accion.


----------



## tecnogirl (May 6, 2010)

Holas...
Ya revisaron los temas que hay en el Foro sobre el tema a ver que les sirve? (Buscador-> "MIDI").. supongo que si...
Les recomiendo un tema en el que participé: https://www.forosdeelectronica.com/f11/teclado-darle-sonido-mediante-midi-u-otro-sistema-24307/
y que se perfilo una solucion, un Arduino que hace de pedalera... Leanlo y comenten

Thamaphyr comenta lo de la velocidad y si es una limitante y no se puede modificar: en comunicaciones seriales, son las BPS que deben ser, pero si quieren ensayar... y en MIDI usan esa velocidad.

El enlace de Coma es interesante y se parece a la version que les comento del Arduino. La subo como material de referencia.

Se me ocurre que "emulen" la pedalera con una PC con tarjeta de sonido y salida MIDI, enviandole datos a otra PC que corra un programa sintetizador MIDI. Asi pueden depurar el software. Lo siguiente seria saltar a un microcontrolador.

Saludos


----------



## thamaphyr (May 6, 2010)

entiendo lo que quieres decir con el arduino, me parece muy buena opcion, pero creo que tambien puedo hacer eso con una DEMOQE, la cuestion es unicamente de familiarizarme con la plataforma software, antes creo que es facil con el arduino porque en esas paginas esta como hacerlo, pero la cuestion es que ahorita no dispongo de ese hardware, y segun veo es costoso. 
Creo que es posible hacerlo con un micro, lo estoy mirando como, ademas quisiera es meterme con el protocolo MIDI para entenderlo, hay controladores MIDI por USB que por ahi es donde quisiera meterme, pero no tengo informacion de como trabajan. Me imagino utilizan la velocidad MIDI y con ese protocolo, sin embargo es lo unico que se.
Programar el micro para que transmita a esa velocidad no es problema, voy a mirar con otro software puede ser matlab que creo que tiene la facilidad de leer a esa velocidad. Sera empezar por ahi a ver que me sale. Pero si tienes mas info de como hacerlo porfa agradeceria porque es lo unico que se hasta el momento. 

Un saludo y gracias por la info del arduino, no lo conocia y me parece super.

Saben, creo que la verdad estoy confundiendo informacion. 

El protocolo MIDI es una cosa, por donde se pueden generar varios sonidos standard, pero la forma como se conecta es al punto en el que voy. Los conectores MIDI los he visto con un DB15 y sus terminarles son los redondos, pero es que no se si es que usan otra forma para comunicarse o no se como, he visto controladores por USB pero no se si esos tambien usan el protocolo MIDI. y si no lo usan entonces que hacen para funcionar. La verdad si quiero saber como hacer una comunicacion por USB y poder tener la capacidad de hacer un controlador para ejecutar sonidos de un software puede ser reason, pues creo que necesito entender eso, y no se por donde empezar


----------



## tecnogirl (May 7, 2010)

thamaphyr dijo:


> .... El protocolo MIDI es una cosa, por donde se pueden generar varios sonidos standard, pero la forma como se conecta es al punto en el que voy. Los conectores MIDI los he visto con un DB15 y sus terminarles son los redondos...


 
MIDI es un protocolo serial como lo es RS232C, pensado para intercambiar datos entre instrumentos musicales, por ello no es raro que se lo asocie para aplicaciones de musica, pero.... quiza te sorprendera saber que, no solo sirve para musica, se puede hacer para controlar dispositivos!!, imaginate una red de dispositivos comunicados entre si mediante MIDI. 

Sobre el conector, en un principio se uso el DIN (el redondo) pero, cuando el MIDI se incorporó a algunas tarjetas de audio, se opto por integrarlo al DB15 pero las señales se conservan. Ahora se dio el salto a la interfaz USB, para estar a la moda.

Saludos


----------



## thamaphyr (Sep 26, 2010)

tecnogirl dijo:


> Sobre el conector, en un principio se uso el DIN (el redondo) pero, cuando el MIDI se incorporó a algunas tarjetas de audio, se opto por integrarlo al DB15 pero las señales se conservan. Ahora se dio el salto a la interfaz USB, para estar a la moda.
> 
> Saludos



Pero se sigue entonces utilizando la misma velocidad de transferencia y el mismo protocolo cuando se paso de DB15 a USB?


----------



## algp (Sep 26, 2010)

El DB15 se usa solo en algunas tarjetas de sonido de PC que tienen interface MIDI. Los instrumentos musicales con MIDI no usan DB15. Para conectar una tarjeta de sonido a un dispositivo MIDI se requiere un circuito externo con algunos optoacopladores. y pocas cosas mas.

Personalmente es un buen tiempo que no he vuelto a leer cosas sobre el tema de MIDI. Por lo que veo en wikipedia en ingles hay algo de informacion sobre MIDI en USB:
http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#USB

( La info que hay en wikipedia en español es mucho menor )

Si te interesa leer mas supongo que aca podras encontrar mas cosas:
http://www.midi.org/techspecs/index.php


----------



## Meliklos (Sep 28, 2010)

thamaphyr dijo:


> Pero se sigue entonces utilizando la misma velocidad de transferencia y el mismo protocolo cuando se paso de DB15 a USB?



actualmente USB es mas veloz! hasta los teclado electrónicos viene ya con USB y no con las entradas MIDI como eran anteriormente

el cable midi tenia en una punta las fichas MIDI que iban al instrumento y del otro lado el DB15 que iba a la compu, como hoy dia se trabaja con Notebooks y Laptops, se adapto a USB (en ambos lados del cable)


----------



## Calasonido (Jul 10, 2014)

*Respuesta: Controlador MIDI*

La comunicación es Serial  en bloques de 10bits. 8 de los bits son el mensaje midi y 2 son para control de paridad, corriente y reporte de error y utiliza solo 2 conductores. 
Por un conductor corren los 8bits de datos y por el otro los 2bit de transmisión.
La velocidad de transmisión es de 3125 palabras en serie (Words) por segundo.
Un mensaje MIDI tiene 10 bits transmitidos por cada byte. La transmisión de un mensaje de 3 bytes dura aproximadamente 1 milisegundo. Debido a que MIDI se transmite en forma serial, es muy probable que dos o más eventos musicales que ocurran simultaneamente al ser enviados uno detrás de otro, no se reproduzcan exactamente en el mismo instante en el receptor. Sin embargo esto es lo suficientemente rápido como para que esos eventos se perciban como simultáneos.
si varios sonidos independientes llegan a nuestro cerebro en un intervalo inferior a 50 ms éste los fusiona y los interpreta como uno sólo.


----------



## agustin8199 (Sep 21, 2014)

hola no me quiero ir de tema pero me gustaria que me verifiquen este codigo de arduino ,
mi duda esta en la parte de la velocidad que se envian los datos midi , para no usar un programa emulador de midi y poder usar el usb de arduino 
les dejo tambien la pagina donde se encuentra el codigo original
http://louisjeckel.com/arduino/

disculpen si me esprece mal y ante todo GRACIAS


----------

