TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: rachelies en 30 de Junio de 2010, 04:48:43

Título: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 30 de Junio de 2010, 04:48:43
Hola:
Estoy tratando de construir un controlador Midi para controlar el Virtual Dj (para los que no entiendan, un software para mezclar música). Todo ello lo hago con un pic, el cual tiene que hacer 2 funciones: enviar datos y recibir datos.
La parte de enviar los datos ya funciona perfectamente, es decir, las teclas y todo lo que controla al software.
Pero lo que quiero hacer, es que el software envíe datos hacia el pic, como por ejemplo, los leds, el display con el nombre de las canciones, etc... Esto segundo se puede hacer utilizando el VDJscript  http://www.virtualdj.com/wiki/ControllerDefinitionHID.html (http://www.virtualdj.com/wiki/ControllerDefinitionHID.html)
Si alguien se quiere animar a unirse al proyecto estaría muy agradecido. Todavía no se como utilizar el VDJscript ni como enviar los datos hacia el pic.
Un saludo y muchas gracias.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 03 de Julio de 2010, 09:29:37
¿Nadie se anima?
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BEXTIXTOX en 05 de Agosto de 2010, 13:36:05

apuntame en la lista
me gusta la electronica y tambien ago algunos mixes en EL  VIRTUAL DJ

estoy trabajando con la comunicacion USB que seria buena para tu proyecto
pues taraba buena velocidad
PERO aun lo consigo dominarla al 100% estoy a un 65% de avance


sobre el VDJscript no se nada de este (o esto) en el transcurso del dia investigare aver que avances puedo tener


otra cosa estoy utilizando un programa que se llama LABVIEW que es en el que recivo datos en la PC del mundo exterior por medio de USB y He visto algunos ejemplos que lo interfasan con EXCEL y desconosco aun si pueda aser una interfas con algun otro programa


mi correo es  robertiko_07@hotmail.com


saludos...
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 05 de Agosto de 2010, 13:50:19
Muy interesante la idea!

No entiendo bien lo que lograste? La comunicación es USB? Las interfaces comerciales no son caras, no? Es con fines educacionales?
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 05 de Agosto de 2010, 14:01:14
Hola, explicaré un poco más:
El controlador consta de 2 "controladores", al estilo de dos cdj1000 de pionner o algo por el estilo, pero sin los cd, no se si me explico. Bueno, pues uno de ellos lo llamo A y al otro B. El A se comunica con el PC por medio de USB, utilizo un pic 18F2455, y es la comunicación mediante MIDI por USB para el software a controlar. Con el Traktor funciona perfectamente, envía y recibe información, pero con el Virtual Dj, al utilizar los VDJScripts, algo me falla, pero bueno, si con el Traktor funciona ya es suficiente.
Por otro lado, el controlador B  es igual que el A, pero va conectado al A, no al PC, y consta de un pic 16F873A. Le envía la información al A por medio de I2C, y el A se encarga de enviar por USB la información de ambos. Entre el A y el B hay comunicación I2C.

Ahora mismo estoy estancado en esta comunicación I2C. El A lee 1 byte perfectamente de B por I2C en las pruebas, pero en la realidad tengo que leer 3bytes del B y aqui es donde me falla, porque no se que hago mal que no hace la comunicación.
En el master, el A, tengo el siguiente codigo para leer los bytes:
Código: [Seleccionar]
                                      i2c_start();
i2c_write(0x0A+1);
tempoB1=i2c_read();
TB1=i2c_read();
TB2=i2c_read(0);
i2c_stop();
En la interrupción del esclavo, el B, tengo lo siguiente:
Código: [Seleccionar]
#INT_SSP
void ssp_interrupt()
{
state=i2c_isr_state();
if(state==0x80){
i2c_write(buffer[0x00]);
i2c_write(buffer[0x01]);
i2c_write(buffer[0x02]);
}
return;
}
Esto es lo que me falla por el momento.
¿Alguna idea? Un saludo y gracias
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 05 de Agosto de 2010, 14:48:49
Por qué I2C?

A es master y B esclavo? O es multimaster lo que usás?

Si hay un master y un esclavo, SPI es mucho más sencillo y rápido...

Volviendo a lo del I2C, me parece que en el i2c_read() si querés seguir leyendo bytes tenés que hacer i2c_read(ACK) para indicarle que esperás más bytes. Al menos así era con la memorias si mal no recuerdo. Nunca comuniqué 2 uC por I2C.

Saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 05 de Agosto de 2010, 14:54:46
Me interesa mucho el proyecto, podrías compartir lo que has hecho? Siempre quise tener mi propias Denon caseras. Hace más de 10 años que dejé de ser DJ...

Saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 05 de Agosto de 2010, 16:24:38
Todavia estoy haciendo pruebas y tengo todo en unas placas de pruebas. Lo que puedo es ir poniendo ejemplos de como hago cada cosa (USB, midi, teclado....)
Hoy ya no tengo mas tiempo, así que mañana seguimos con el asunto.
Saludos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: todopic en 05 de Agosto de 2010, 20:06:15
Hola, muy bueno tu proyecto... yo tengo la BCD2000 de behringer para controlar en VD, lo que se pueda espiar, avisame y "lo espiamos" je je

Norberto
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 06 de Agosto de 2010, 09:07:47
Hola BrunoF.
Uso el I2C porque hay un maestro (el A), pero luego habrá varios esclavos. Un esclavo es el B, pero hay por lo menos un par de expansores de salidas, porque necesito varias salidas para los leds, y estos van en I2C, y con SPI solo podría utilizar un esclavo ¿o me equivoco? Nunca he utilizado SPI.
Además, tambien habria la posibilidad de añadir un display a cada controlador,  y tambien me comunicaria por I2C. De momento en las pruebas estoy en velocidad lenta, y no veo que haya problemas de retardo. En cuando lo tenga un poco dominado lo de la comunicación, lo pasaré a velocidad rapida.
Una duda que tengo: ¿Se pueden comunicar 2 PIC por USB?

Por otro lado, TODOPIC, se tendra en cuenta lo de la BCD2000 por si hay que espiar algo, jejejje. Muchas gracias
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 06 de Agosto de 2010, 09:28:41
Empezaré a poner algo de lo que voy haciendo. Lo primero, creo que es la comunicación USB, y que el PC nos reconozca el PIC como un dispositivo MIDI. Yo lo estoy haciendo como MIDI, que he visto otros muchos proyectos que lo hacen como joystick y lo convierten a midi por software en el PC, pero creo con MIDI ofrece muchas mas posibilidades.

Para el USB por MIDI hace falta un USB_Desciptor para ello. Hay varias paginas que explican las caracteristicas que tiene que tener. Yo utilizo el codigo que pongo aqui en el archivo midi7.h Ya no se ni de donde lo he sacado... En el se dice al PC que numero de salidas y entradas MIDI tenemos y el resto de caracteristicas que hacen que reconozca el PIC como dispositivo MIDI. De esta forma no hacen falta drivers ni nada.

Para el PIC del controlador A, utilizo un PIC 18F2455 con un cristal de 20Mhz, y lo configuro para poder utilizar el USB todo ello con estas lineas en el encabezado:

Código: [Seleccionar]
#include <18F2455.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN      //~~~ 20MHZ OSCILLATOR CONFIGS ~~~//
#use delay(clock=48000000)

#DEFINE USB_HID_DEVICE     FALSE
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for IN bulk/interrupt transfers
#define USB_EP2_RX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    64  //size to allocate for the tx endpoint 1 buffer
#define USB_EP2_RX_SIZE    64   //size to allocate for the rx endpoint 1 buffer

#include <pic18_usb.h>
#include <.\include\midi7.h>   //USB Configuration and Device descriptors for this UBS device
#include <usb.c>           //handles usb setup tokens and get descriptor reports

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

Lo del Use RS232 lo he visto en todos los los ejemplos y no se si hace falta para el usb o no. Cuando lo tenga todo mas o menos pulido lo quitaré.

En el main del programa colocamos usb_init_cs(); y
Código: [Seleccionar]
while (TRUE) {
       usb_task();
}
y al conectar el pic al PC nos tendria que salir en el panel de contol, dispositivos de audio midi, como un dipositivo de audio usb
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 06 de Agosto de 2010, 11:40:59
Hola BrunoF.
Uso el I2C porque hay un maestro (el A), pero luego habrá varios esclavos. Un esclavo es el B, pero hay por lo menos un par de expansores de salidas, porque necesito varias salidas para los leds, y estos van en I2C, y con SPI solo podría utilizar un esclavo ¿o me equivoco? Nunca he utilizado SPI.
Además, tambien habria la posibilidad de añadir un display a cada controlador,  y tambien me comunicaria por I2C. De momento en las pruebas estoy en velocidad lenta, y no veo que haya problemas de retardo. En cuando lo tenga un poco dominado lo de la comunicación, lo pasaré a velocidad rapida.
Una duda que tengo: ¿Se pueden comunicar 2 PIC por USB?

Por otro lado, TODOPIC, se tendra en cuenta lo de la BCD2000 por si hay que espiar algo, jejejje. Muchas gracias

El SPI es multiesclavo. El problema es que, tecnicamente, hace falta 1 linea individual adicional por cada esclavo que agregues. Si es así, entonces I2C es mejor.

Sólo se pueden comunicar 2 PICs por USB si uno tiene la capacidad de ser Device(casi todos los que tienen USB la tienen) y otro Host u OTG(solo algunos de los mas nuevos PICs la tienen).

Saludos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: willynovi en 06 de Agosto de 2010, 13:41:24
rachelies, si te quieres hacer el dispositivo USB-MIDI te recomiendo que te leas la documentión que viene al caso para esta aplicación y la consigues en http://www.usb.org/developers/devclass_docs/midi10.pdf

Yo con esto no he trabajado, si con el HID, y si como dices que se puede usar un joystick y luego con un soft emular un MIDI pues seria mucho mas facil, ademas de que existen varios ejemplos de joystick, incluso si me dices que necesitas te modifico uno de los que tengo con las entradas que necesites. Pensando en usar un 18F2550 puedes tener 8 ejes hasta de 10 bits (creo que en otro hilo he mencionado algunos mas) y unos cuantos botones. Si necesitas mas entradas lo que puedes hacer es hacerte una placa identica y ya duplicas todo.

No se si tu aplicación tambien necesitaría salidas como los MIDI tienen.

Saludos, Willy
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 06 de Agosto de 2010, 14:33:53
Por HID fue como empecé, pero es mas facil en midi, que el Traktor lo reconoce sin problemas, y es más fácil a la hora de enviar los leds, los bpm, etc... desde el PC al controlador. Me funciona perfectamente el Midi.
Sobre como hacerlo con joystick y hid hay mucho en otros foros. Yo voy a hacerlo con midi porque a mi me parece mejor, y porque así abrimos otra puerta más. De esta forma se parece más a la forma de trabajar los controladores "de verdad".

El problema que tengo ahora es que no consigo leer desde el A 3bytes por i2c del B. Simulando en el proteus funciona, pero cuando lo monto y con la secuencia de i2c siguiente no funciona:
Código: [Seleccionar]
                       i2c_start();
i2c_write(0x0A+1);
tempoB1=i2c_read();
TB1=i2c_read();
output_high(PIN_A1);
TB2=i2c_read(0);
i2c_stop();
output_high(PIN_A2);

El primer read lo hace, el TB1 tambien, el TB2 también, pero es como si no hiciese el Stop, porque el led que tengo en el A2 ya no se enciende.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 06 de Agosto de 2010, 14:54:32
Probaste lo que te dije del ACK en uno de los mensajes previos?
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 06 de Agosto de 2010, 14:56:30
Si dentro del i2c_read() no pones nada significa ACK por defecto, y si pones i2c_read(0), significa que ya no quieres más datos. Creo que por ahi no viene el problema, no se. Mañana seguiré probando, que ahora me tengo que ir a trabajar, que estos días trabajo por la noche.
Un saludo.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 06 de Agosto de 2010, 15:30:40
Entonces perdona la ignorancia, cuando tuve que usar I2C lo hice en assembler, y tuve que hacer la librería de cero. No recordaba que el CCS realizaba el ACK  por defecto. Habrá que leer el datasheet. Seguro allí menciona cómo enviar 1 o más bytes de uno a otro.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 07 de Agosto de 2010, 13:44:53
¡¡Ya he conseguido solucionar lo del I2C!!
El problema estaba en el esclavo. Esto es lo valido en la rutina de interrupcion:
Código: [Seleccionar]
#INT_SSP
void ssp_interrupt()
{
state=i2c_isr_state();
if(state>=0x80){
i2c_write(buffer[0x00]);
i2c_write(buffer[0x01]);
i2c_write(buffer[0x02]);
}
return;
}
El valor de "state" para solicitar datos es 0x80 al principio, pero cuando va a leer se va incrementando, por eso la condicion tiene que ser mayor o igual que 0x80, no igual a 0x80 como aparece en muchos sitios, que solo se cumple cuando lees un solo byte.

Ahora mediré los tiempos que tarda en hacer una lectura completa.

Un saludo a todos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: chichepic en 08 de Agosto de 2010, 14:06:15
Hola,te felicito por tu proyecto!
Yo logrè hacer algo similar...un Controlador Midi_Usb de 32 Potes,Teclas y Leds , con los modulos expansores de MidiBox
aca esta el link.
http://midibox.org/forums/topic/12840-controlador-midi-usb-compatible-con-midiboxcore-18f2550ok/?s=366da373d1bd359826f87540897d3df3
por que necesitas 2 PIC ? no entiendo bien la idea gral.
espero tener mas noticias de tu proyecto, saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 08 de Agosto de 2010, 16:15:05
Hola:
Lo del midibox lo habia mirado, pero preferia algo con el código más accesible y que entendiese mejor para poder hacer todas las modificaciones que quisiera, y poder adaptarlo a mis necesidades. Por eso lo fui haciendo todo a mi manera.
Utilizo 2 pic porque estoy construyendo 2 controladores por separado, como si fuesen 2 cdj por ejemplo, para colocar uno a cada lado de la mesa de mezclas.
Así con 2 pic, puedo unir un controlador a otro por solo 2 cables, porque para enviar de uno a otro toda la informacion y botones...harian falta montones de cables.
Lo que quiero hacer son 2 controladores como el de la foto (pero sin el CD), unir uno de ellos (el B) al otro (el A), el A se comunica con el VirtualDj o Traktor por USB, el sonido de la tarjeta de sonido de cada canal lo meto a la mesa de mezclas externa y listo.
A la vez, el software envia los leds y demas informacion al controlador A por USB, este la gestiona, y la envia al B o lo que haga falta.
(http://masqueaudio.com/imagftp/im1577Pioneer%20CDJ-1000%20MK3%20Frente%20800x600.jpg)
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: chichepic en 08 de Agosto de 2010, 17:18:06
Mira que yo no utilize el MIOS (codigo de midibox) hice mi propio codigo compilado con PROTON...donde el Pic se comunica con los modulos ADIN ,DIN y DOUT de midibox,que son solo expansores de entradas y salidas ( 4* 4051,74hc565,74hc165)
los modulos digitales (teclas y led) se comunican con el Pic via SPI,lo que esto te permite tenerlos de forma fisica alejado del PIC,que seria tu segunda bandeja,pero no se que distancia de cableado permite el SPI ,con el analogico de seguro que no porque vas a tener mucho ruido.
Lo que intentaria en tu caso, es trabajar con la USART para la comunicacion de los 2 PICs,la data midi que envias via USB la podes enviar simultaneamente por el serial al otro pic y viceversa.
saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 09 de Agosto de 2010, 09:14:54
Hola chichepic

Nunca he utilizado SPI, pero el I2C a poco mas de 5cm ya falla. Lo que he utilizado es un I2C bus extender, y a un par de metros funcina perfectamente (y llega mucho mas lejos aun)
La USART a maxima velocidad llega a 115.2kbps,  el I2C en modo rapido, a 400, por lo que creo que sea mejor el i2c para comunicarse entre circuitos en este caso.
Saludos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: willynovi en 09 de Agosto de 2010, 10:49:11
por lo que entiendo estas haciendo dos dispositivos identicos, pero uno esclavo del otro? En ese caso como sería la aplicación, cuando usas uno no puedes usar el otro? O la idea es que los dos DJs, en cualquier momento pueden mezclar música independientemente de cual mexcladora uses?

En ese caso, el soft que usas, el VirtualDJ creo que es, no te permite conectar dos dispositivos USB? Entoces lo que harias es tener dos consolas mezcladoras iguales ambas conectadas a la PC. En este caso no necesitarias la comunicacion I2C o serie entre los PIC.

Disculpa los términos que utilizo, quizas no sean los especificos de los DJs, pero espero que hayas entendido mi idea.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 09 de Agosto de 2010, 11:11:55
Si, eso sería otra opcion, utilizar 2 USB, aunque no estoy seguro al 100% que el soft permita enchufar 2, pero supongo que si, pero así practico el I2C que nunca habia utilizado.
En cuanto funcione todo bien, si el software permite 2 usb, supongo que lo haré así, que es mucho mas rapido y no habra retardos. Es que de momento, y para las funciones básicas, el I2C es más que suficiente velocidad, pero si lo quiero ampliar un poco más, añadir displays y demas....se va a hacer lento.
Tiempo al tiempo... de momento sigo probando cosas.
Un saludo a todos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: BrunoF en 09 de Agosto de 2010, 11:21:03
5 cm nomás? Pusistel las resistencias pull up correspondientes exigidas por el protocolo I2C?

Saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj
Publicado por: rachelies en 09 de Agosto de 2010, 16:04:20
Si si, con resistencias y todo. Quien dice 5cm dice 10...pero vamos, que no llega mucho más allá. Según las especificaciones del pic, la capacidad máxima de la línea no puede superar 400pF. También dependerá lo bien que se haga el cableado y más condiciones, pero a mi no me funcionaba a 2metros sin tener que usar el bus-adapter.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 09 de Agosto de 2010, 18:13:24
Si mal no recuerdo,en la ultima version del Traktor te permite varios dispositivos USB,te lo enumera como Disp. de Audio USB (2),sino puedes usar el Midi Yoke que es un mezclador midi de Midi_Ox , si es una maquina vieja podes mandar midi por el serial.
Subo una fotos viejas del cacharro que armè,saludos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 09 de Agosto de 2010, 18:15:22
una por dentro
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: willynovi en 09 de Agosto de 2010, 19:33:42
herramoentas indispensble al momento de soldar toda esa maraña de cables, TERMO y MATE nunca pueden faltar  :mrgreen:

La segunda foto realmente es la que esperaba de entrada  :D

Volviendo al tema, creo que si  el soft te permite 2 o mas dispositivos, es por donde tendrias que ir, y no usando comunicación entre los dos pic.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 10 de Agosto de 2010, 02:57:00
OK, esta misma mañana me pongo manos a la obra para montar un par de placas de prueba simulando 2 controladores aver que dice el Traktor, jejejej.
Nada más que lo monte y pruebe, comentaré.
Chichepic, me gusta tu controlador, pero verlo por dentro ahora mismo que me he levantado de la cama...me da estrés, jajajaj
Está muy bien, pero lo que yo estoy montando es mucho mas simple (o eso creo)
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 10 de Agosto de 2010, 08:40:05
He conectado 2 placas al Traktor, y si que funciona, pero hay un problema, y es que una misma nota midi enviada desde uno u otro controlador la interpreta como el mismo comando, sin diferenciar de que controlador viene.
Esto no tiene porque ser un problema, ya que puedo hacer que cada controlador envíe unas notas diferentes en uno y en otro, pero a lo que tengo miedo es a la hora de enviar los leds desde el traktor a cada controlador. Será la siguiente prueba que haga, la de enviar algún led del programa para ver si llega al controlador que tiene que ser.
Saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 10 de Agosto de 2010, 09:51:10
Hola rachelies,me alegro que te guste.Antes que nada,no habia visto tu Descriptor y codigo,lo probe en un 18f2550 y funciona ok! justo que estoy haciendo mis primeras aplicaciones en C ! creo que te voy a molestar con algunas preguntitas del lenguaje.
Con respecto a lo que mencionas,los soft te van a identificar la misma nota provenga de donde sea,para eso estan los 16 canales midi,lo unico que tienes que hacer es setear uno de los controladores en canal 2 y listo.
No entiendo por que tienes que enviar midi desde el Traktor los controladores?
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 10 de Agosto de 2010, 10:28:40
Envio midi desde el Traktor al controlador para encender y apagar los leds de los botones, para que me envíe los BPM de la cancion de cada plato, etc...
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 10 de Agosto de 2010, 11:27:02
He probado a enviar los leds desde el traktor, y codificando cada uno en una nota diferente para cada controlador tambien funciona correctamente. Así que decidido, me olvido del I2C ya y hago 2 por USB.
Ahora tengo que ponerme con el encoder del jogwhel
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 10 de Agosto de 2010, 12:45:02
Joya,se està poniendo bueno !
Te preguntaba porque yo controlo los leds desde el Pic en simultaneo con el envio del evento midi,algunos estan estan en modo Pulsador y otros en Toogle.Como es que los manejas desde el Traktor? me das mas detalles?algun ejemplo de como lees el midi en C ? gracias.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 10 de Agosto de 2010, 15:56:04
Ya entiendo lo que dices de los leds, pero hay veces que con ciertas funciones el play parpadea, o cuando colocas los puntos Cue...por eso prefiero coger los leds del traktor. Te explico como va:
Igual que haces en el traktor para seleccionar los pulsadores, también puedes configurarlo como salida, y le dices la nota que quieres enviar para ese led. Yo tengo una lista con el numero en hexadecimal al que corresponde cada nota.
Despues, por USB recibes el paquete de datos en el pic, donde el segundo byte te indica la nota, y el tercero el estado (OFF=0; ON=7F). En el programa haces una rutina para detectar que nota se recibe y asignar el valor a una salida que pones a 1 o 0 para encender y apagar un led. Asi de facil.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 10 de Agosto de 2010, 17:06:33
Si,"lo sospeche desde un principio" , alguna vez pense en hacerlo asi.Tenes razon,me fije que el Traktor tiene un "Add Out" y se puede poner el evento que uno quiera,muy bueno! lo interesante de ese metodo es que si se modifica el soft,por eje con el mouse,el controlador lo manifiesta! quiza un poco de rollo a la hora del seteo...paciencia.
Se vienen los encoders.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: willynovi en 10 de Agosto de 2010, 23:25:28
para los encoders he visto que utilizan discos rigidos viejos ya que tienen el motor de pasos y con unos amplificadores en las bobinas puedes tener la señal de los pulsos.

HDDJ - Turning an old hard disk drive into a rotary (http://www.instructables.com/id/HDDJ-Turning-an-old-hard-disk-drive-into-a-rotary/)
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 11 de Agosto de 2010, 09:34:13
Yo tengo un par de discos duros, pero tenia pensado colocar unos fotodiodos y hacer unas aspas dibujadas en negro para simular los pulsos.
Lo del amplificador y lo que comentas nunca lo he visto. Lo buscaré, gracias  :wink:
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: willynovi en 11 de Agosto de 2010, 10:49:40
claro lo del encoder es mas simple y puedes acomodar la cantidad de pulsos por vuelta que necesites.
Lo del disco rígido lo veo sencillo porque ya tienes la mecánica hecha.
Incluso ahora que lo veo un poco mas el tema, tambien se podría usar el viejo motor de una disquetera de 5 1/4 que quedará mucho mejor a la vista. Habria que teniendo una a mano identificar cuales son las bobinas. En casa deberia tener varias de estas, luego me fijo si se puede hacer algo.

(http://heli.xbot.es/fd/fd5_5.jpg)
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 12 de Agosto de 2010, 00:09:38
En principio no necesito que giren los motores, solamente necesito contruir un encoder. tengo que buscar alguna referencia de led infrarrojo y de fototransistor, a poder ser, el fototransistor con encapsulado de 5mm como el led, que así entran perfectamente en una ranura que traen los discos. Estos días tengo poco tiempo para dedicar al proyecto...
Saludos
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: willynovi en 12 de Agosto de 2010, 08:21:36
si buscas algo muy pequeño puedes recuperar el par de led y fototransistor de un mouse de los de bola, no se si ya te habia comentado esto, yo los he usado y andan muy bien, incluso hasta podrias usar la rueda ranurada.
Si no tambien puedes usar un CNY70 que ya vienen preparados para lo que necesitas, si lo que quieres hacer es por reflexion.

Claro no te digo que el motor gire, lo haces girar tu con el dedo  ;-)
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 21 de Agosto de 2010, 14:28:54
El lunes hago el pedido de unos leds de infrarrojos y unos fototransistores. Los discos duros que tengo tienen una ranura en la parte inferior donde encajan perfentamtente 5 leds de 5mm, parece hecho para esto, jejejeje, y dibujaré las marcas negras en la parte inferior del disco. En cuanto lo tenga iré poniendo fotos si os interesa.
Saludos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: largo3 en 22 de Agosto de 2010, 07:02:57
saludos, muy interesante tu proyecto. Creo que cuando willynovi se refiere a
"para los encoders he visto que utilizan discos rigidos viejos ya que tienen el motor de pasos y con unos amplificadores en las bobinas puedes tener la señal de los pulsos"
Este es el diagrama que se puede usar.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: alogic.on en 22 de Agosto de 2010, 07:51:40
hola, mirate el que hice (http://www.todopic.com.ar/foros/index.php?topic=18800.msg146034#msg146034) a ver si hay algo que te pueda servir, no utiliza usb pero por midi anda de lujo

Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 22 de Agosto de 2010, 08:41:02
Interesante esto del encoder de este modo. Aver si tengo tiempo de probarlo antes de pedir los fototransistores. Tengo una duda:
En el esquema este aparecen 2 bobinas: ¿Son dos de las bobinas del motor?

Alogic, enhorabuena por tu proyecto, y gracias, le echaré un vistazo nada más que pueda a ver que me vale, jejeje
Un saludo a todos.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: willynovi en 22 de Agosto de 2010, 10:36:56
si las bobinas esas son los bobinados del motor.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: largo3 en 22 de Agosto de 2010, 17:39:09
Correcto, esas son las bobinas del motor.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: djmarkus en 09 de Septiembre de 2010, 02:44:22
hola que tal me llamo marcos este es mi correo marcosdinella@gmail.com , interesante tu proyecto ando pensando hacer algo haci pero el problema que se me presneta es como generar el efecto jog whell o scratch verdad en el virtual dj , en mi caso uso un joystick para manejarlo y utilizo los analogicops para hacer scrtach me gustaria saber como lo has hecho vos , desde ya agardesci tu tiempo . un abrazo y adelante con el proyecto
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: snorkman en 14 de Febrero de 2011, 21:41:48
hola viejo que buen thread que abriste, por lo q leo ya lo tenes casi cocinado al tema del controlador....yo sabiendo poco y nada de micros estube 3 años hasta que entendi el protocolo MIDI y ya llevo o hecho 2 controladores comunicandome con un PIC16F877 mediante el conector MIDI de 5 pines.
Mi idea ahora es hacer algo mas pro, quiero tambien mudar todo a USB ya tengo todo cocinado la parte A/D y de botones, te recomiendo que uses el traktor es lo mas pro ,facil de mapear y versatil.

Mi pregunta es y a ver si me explico

Si antes por ejemplo mandaba el evento "Hserout (0x90,0x45,0x33)"
es decir

0x90= el "9" indica el evento de NOTE ON Y EL "0" quiere decir que se toca la nota en el canal 1
0x45= el numero "45" representa la nota MIDDLE C
0x33= el numero "33" es la velocidad con que se toca la nota

lo que no logro entender es ¿cual es la sentencia que tengo que usar en CCS para mandar esos 3 bytes pero por USB? me explico? :?


Sera que alguien puede colaborar con algun codigo de ejemplo bien simple donde se configure el HID como un joystick por favor?
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: facudelrojo en 25 de Abril de 2011, 15:04:37
Hola gente del foro, tengo ganas de hacer algo como lo que desarrollaron aca para la universidad. El tema es que lo tengo que programar en ASM para 8051. Una de las cosas que debo tener si o si en el proyecto es usar el protocolo RS232, que lo podria pasar a USB con integrado. El tema es que no entiendo nada de MIDI. Alguien me podria pasar algo de documentacion de como hacer para que windows me lo reconosca como un dispositivo USB-MIDI, como debo mandar los datos al USB (formato de los datos para que los interprete como midi, comandos disponibles en midi, secuencia de lectura y escritura de un MIDI, o cualquier cosa que necesite para lograr la comunicacion). No pido codigo en ASM, sino un poco de documentacion para entederlo y poder progrmarlo yo. Les agradeceré cualquier ayuda. Desde ya muchas gracias al que me de una mano.

PD: Si tiene algun pdf o algun documento, mandenmelo al mail que figura en mi perfil
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 26 de Abril de 2011, 21:54:38
Hola  "facudelrojo" ,de mi experiencia con Midi te sugiero primero determines còmo vas a comunicar Midi con la maquina,claro que si es via Usb no hay problema pero si quieres entender el protocolo autentico  (baud rate 31250) con su tradicional ficha redonda de 5 pines debes utilizar alguna interface (Midi-Usb,son economicas) o si tienes una maquina medio vieja puedes hacer lo que se ve en la foto..
aqui hay mas detalles y puedes ver un codigo de Midi via Usb:   http://www.todopic.com.ar/foros/index.php?topic=34087.0
Descargate el Midi-OX para monitorear los eventos !
saludos!
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: facudelrojo en 26 de Abril de 2011, 22:33:43
Hola chichepic, gracias por el link lo voy a leer. El tema de hacerlo por usb es por que como condición obligatoria debe usar RS232 en el proyecto y como se que con un IC lo covertis a USB, me pareció buena idea usarlo ya que vi que se hicieron implementaciones con este puerto y ademas me ofrecería la facilidad de probarlo a medida que lo voy haciendo con mi notebook. Ahora me voy a poner a ver el link que me pasaste. Saludos y gracias nuevamente.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: facudelrojo en 26 de Abril de 2011, 23:26:51
Una pregunta chichepic, el USB descriptor es para que windows lo reconozca al PIC como USB/MIDI ?? Si es asi creo q estoy en problemas, ya que mi microcontrolador es un ATMEL que solo tiene RS232 y lo debo programar en ASM :S por obligación de la materia de la facultad.

La idea es la siguiente, tengo un micro con salida a RS232, lo conecto a un integrado que lo transforme a USB. Entonces es factible hacer que windows lo reconozca como un dispositivo midi??

- Los comandos midi, son genericos?? ya que los necesito para controlar el Virtual DJ o el Tracktor. Como los debo mandar, hay alguna secuencia, driagrama de tiempos o algo asi??

Te parece que te siga preguntando en el hilo de tu Caoss??, asi ademas se va nutriendo de info tecnica respecto a MIDI
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: chichepic en 27 de Abril de 2011, 19:38:00
Si,el Descriptor es para eso. Tendrias que tratar de enviar Midi con ese ATMEL en ASM  y luego ver lo del Usb.
aca hay un link que te puede servir .. (ASM) http://www.todopic.com.ar/foros/index.php?topic=2593.0
y algo mas .. http://midibox.org/forums/topic/14930-tesis-sobre-midi/
Si es "generico", el Midi no solo se utiliza para Soft de Audio,tambien para Video,DMX,etc...
postea donde prefieras...por mi no hay problema ..
suerte!
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: facudelrojo en 28 de Abril de 2011, 00:50:57
Muchisimas gracias chichepic, el primer enlace lo habia visto pero el segundo no y creo que es mas acertado para lo que necesito. Voy a ver si hay un IC de MIDI a USB, ya que por lo que vi mediante soft a travez del RS232 y una serie de componentes puedo transformarlo en un puerto MIDI. Vos conoces algun IC que haga esto?? igualmente ahora mismo lo voy a buscar. Sino lo voy a hacer MIDI y cuando pruebe que la electronica y la comunicacion MIDI funciona en una PC de escritorio me compro un adaptador comercial.
Título: Re: Controlador MIDI por USB con PIC para Virtual Dj o Traktor
Publicado por: rachelies en 27 de Febrero de 2012, 11:55:30
Viendo que hay gente que se ha puesto en contacto a través de email para continuar con el proyecto, animo a que se planteen las dudas en este hilo o en este otro foro donde también trataba sobre el tema:
http://www.forosdeelectronica.com/f24/controlador-midi-usb-pic-virtual-dj-39371/
Un saludo