Controlador MIDI por USB con PIC para Virtual Dj

Muy bueno compañero! lo que me parece una terrible boludez es que android 2.3 no traiga sliders verticales por defecto... no se que estaban pensando cuando lo hicieron :D
 
Muy buenas gente.. hace mese que vengo siguiendo el tema.
Paso a contarles, mi intencion es hacer un teclado controlador (un organo musicalmente hablando, pero que solo maneje señales midi, si tienen idea de musica sabran a lo que me refiero).
El tema es que estoy haciendo todo virtualmente a travez de Proteus en windows xp.
Pero no logro que windows instale los drivers del pic.
Cargue al pic el descriptor que dejaron en post anteriores, al encender el pic lo detecta como "usb audio device" pero cuando instala los drivers me informa que ha ocurrido un error y el dispositivo no queda instalado correctamente.
Talvez necesite algo mas que solo el pic y el cristal para que windows lo reconozca??

Si alguno a incursionado en este proyecto usando el proteus agradeceria que me dieran una mano
 
La idea es hacerlo de 7 octavas, aunque con 5 no se precisaría mas.
Sigo sin poder hacer que la pc me reconozca el pic como dispositivo midi a través del proteus.
Seguiré investigando a ver si puedo solucionar, es que no quiero comprar el pic y todos los elementos y encontrarme conque no me funcione de todas maneras.
 
La idea es hacerlo de 7 octavas, aunque con 5 no se precisaría mas.
Sigo sin poder hacer que la pc me reconozca el pic como dispositivo midi a través del proteus.
Seguiré investigando a ver si puedo solucionar, es que no quiero comprar el pic y todos los elementos y encontrarme conque no me funcione de todas maneras.

Compra el PIC y anímate, que no pierdes mucho y seguro que te funciona, es muy fácil.
La verdad es que en proteus no probé el midi, pero con el pic me funcionó a la primera.
Un saludo
 
Gente los felicito estoy muy orgulloso de pertencer al foro y poder leer lo que han hecho. En breve comenzare la fabricacion de un controlador midi. mi idea es hacer algo que permita el control total del traktor y no necesitar ni mouse ni teclado para una MAC y una PC. Estare subiendo los resultados y agradezco toda la info para tener un ppunto de partida!! Saludos a todos!!!
 
Me alegro que te guste, fuanlasserre. No se decirte si el descriptor midi tambien funciona en MAC, pero estaría bien probarlo. Por lo demás, ¡¡ánimo!! que no es dificil y se puede hacer todo lo que quieras.
Un saludo
 
aquí les dejo un ejemplo que baje que es el MIDI y un programa que no termine al final. La idea era que solo enviara cuando había un cambio en las teclas presionadas por eso el “ if (bit_test(estado_p,i)==0 && bit_test(botones_2,i) != bit_test(botones,i)){” la idea era almacenar un estado y después compararlo si las teclas presionadas eran las mismas pues que no enviara nada por USB.
 

Adjuntos

  • MIDI usb pic 18f4550.zip
    262.3 KB · Visitas: 102
Hola gente muy buenos días.
me presento.. tengo 18años y soy estudiante de una escuela técnica, siempre me gusto la tecnologia y de chico desarmaba todo para ver como funciona. este es mi ultimo año de la secundaria y empezamos a ver programación en asembler para pic´s el que estamos viendo es el 16f84.
Utilizamos Mplab
El año pasado realice una pedalera midi con un arduino y un par de censores ultrasonicos la cual se conectaba a la compu, te lo reconocía automáticamente como dispositivo midi y lo vinculábamos con un soft de música llamado Guitar rig.

Este año decidí avanzar y en vez de utilizar arduino, empece a meterme mas con los microcontroladores por mi cuenta.
Este foro me facilito muchísimas cosas y cuanto mas investigaba mas ganas tenia de armar algo.
Me puse como objetivo hacer una controladora midi para Vdj o traktor por supuesto quiero empezar desde abajo.
ayer me compre un pic 18F4550 alguno componentes para que funcione y otros para armarme un JDM.
También termine de armar todo el JDM y lo probé para ver si funcionaba cosa que anduvo de primera. y hoy busque algunos ejemplos para empezar.
Logre prender un led y que parpade. esto me ayudo a configurar el mplab y el jdm para poder compilar un programa y grabarlo al pic

Ahora quiero empezar con CCS ya que por lo que vi en este tema hay bastantes ejemplos.
Lo primero que quiero hacer es poner un boton en una entrada digital, que mande por midi a la compu y que modifique algo en el VDJ o el traktor.

Me lei todas las publicaciones anteriores pero ya mucho empiezan con cosas complicadas como 10 botones, 2 pontenciometros etc y se me mezcla el codigo.
Después quiero conectar un potenciometro y modificar algo analógico en el programa.

Alguna recomendación o ayuda?
Se que para que la compu me reconozca el pic como dispositivo midi tengo que poner la librería midi7.h que ya la descargue.
pero después no c de que manera enviar los datos con código y de que manera le asigno lo que quiero modificar a en el VDJ.

muchas gracias y muy bueno el foro
 
No recuerdo bien el tema de cada código en ccs, pero yo en lo que es USB HID explique bien como se hace cada cosa por separado, el tema de las jogwheels, botones, pulsadores,potenciometros y hasta las luces de los botones y demas...
Pero lo que te recomiendo es que estudies primero sobre los pics y sus perifericos como son los convertidores adc, modulos ccp, usb. Y una vez que aprendas a caminar empeza a correr :D ah y al asm no le des mucha bola, para cosas complejas estan los lenguajes de alto nivel ;)
 
Hola gmazz94.
Si quieres te voy ayudando yo a empezar. Para hacer lo primero, con un botón enviar un comando al virtualdj, o traktor por midi es muy fácil. Mi controlador lo hice en CCS, así que es así como te puedo ayudar.
Primero haz el código para que detecte cuando presionas el botón, que eso lo puedes hacer a tu gusto. Después, para enviar esto en midi hay dos posibilidades: Enviar un "note_on" cuando presionas, y un "note_off" cuando sueltas, o la segunda posibilidad, que es como yo lo hago, que es enviar en cada modificación un "note_on" y variando el volumen, "0x7F" para enviar un "1", y volumen "0x00", para un "0".
¿Dificil?, jejej, verás que en la práctica no.
Yo he creado una matriz de 4 bytes llamada "envia" para meter los datos a enviar, declarandola así:
Código:
unsigned char envia[4];
Una vez hayas detectado el cambio en el botón, metes esto en la matriz:
Código:
envia[1]=0x90;
envia[0]=envia[1]>>4;
envia[2]=0x00;
envia[3]=0x7F;
usb_put_packet(1,envia,4,USB_DTS_TOGGLE);
Traduciendo esto:
envia[1] es el comando "note_on", que está especificado en el estandar midi-usb que es así, 0x90. En algún sitio leí, pero no se donde, que antes del comando, tienes que enviarlo intercambiando los nibbles, es decir, en "envia[0]" habría que enviar 0x09, por eso la operación que ves más arriba.
Después, "envia[2]" lleva el número de nota, que va de 0x00 a 0x7F. Cada botón tiene que tener asignada una nota diferente, por lo que podrías tener 128 botones. En realidad se pueden enviar muchos más, porque hay más canales midi, y se podrían enviar 128 en cada uno de ellos, pero eso ya es más complejo.
Y al final, en "envia[3]" se mete el valor del volumen de nota, que asignamos para los botones 0x7F para cuando envias un "1", y 0x00 para un "0".
Para enviar solamente botones, "envia[0]" y "envia[1]" serían siempre iguales, y solo se cambiaria "envia[2]" que haría referencia al numero de boton, y "envia[3]" para el estado del botón. Y siempre que cambie un botón para enviarlo, después de cambiar las variables, colocas
Código:
usb_put_packet(1,envia,4,USB_DTS_TOGGLE);
y listo, para empezar ya tienes.
Échale un ojo y luego seguimos con más dudas.
Un saludo.
 
Hola rachelies, hola fernandoae
muchas gracias por las recomendaciones y la explicación del codigo, me ayudo a entender bastante.
Ahora se bien como tengo que hacer lo de la coneccion midi. en estos días voy a estar probando haber si puedo hacer que funcione.
si tengo alguna duda pregunto.
muchas gracias.
 
hola chicos, llevo siguiendo este post desde hace unos días , yo tengo una mesa midi de hércules para virtual dj , pero el problema que los job son sin movimiento, y me gustaría que funcionara de esta forma como se ve en el vídeo que adjunto al post, que el job no suena cuando lo mueves, sino al revés, cuando lo tocar o lo paras ya que el job esta en movimiento como si fuera un vinilo ,,, seguiré investigando.

 
Se llaman JOG no job, job es trabajo ;)
Esas no son dificiles de hacer... se pueden hacer táctiles para que funcionen solamente cuando las tocás o motorizadas como las del video.. cuando me haga un tiempito voy a ver como es el asunto, saludos.
 
Ok fernandoae, gracias por la corrección amigo , la ideal que sea en movimiento como las del vídeo para los dj que utilizan el scrach vale la pena, las normales sin movimiento traen un sensor óptico con unas barras para crear el lógico 1 y 0. yo seguiré también buscando haber que se encuentra ;) un saludo ¡¡
 
Atrás
Arriba