# giradiscos midi



## alogic (Mar 9, 2007)

holas a todos y gracias de antemano . Vengo a exprimir información y ayuda si es posible. regalo abrazos.   
estoy  aprendiendo por mi cuenta y aunque me voy defendiendo con mis libritos llega un punto donde me quedo pillao , la programacion de los pic . 

estoy haciendo un cacharro que se me ha ocurrido ,algo que ya existe , pero que me ayudaria mucho programarlo para aprender . en si parece bastante sencillo cosa que para mi no lo es
  Es un proyecto derivado de la pagina http://www.ucapps.de/  este es un giradiscos midi lo mas parecido que he tocado a sido final scrach, este ademas de un programa usa hardware en total el hard +platos es un tiron de orejas bien guapo y no quiero manejar  tracktor si no cualquier secuenciador hard  o soft .

aqui hice  con agujeritos en un disco, un codigo binario para que el dac0801 variase la tension con multiplos de 8 que no utilizan los ultimos 3 bits pero por muy justos que ponga los taladritos siempre hay un punto en el que todos los receptores d infrarrojo se quedan a cero, y da errores  






esto es para controlar uno de los potes con un giradiscos


así pense en un 9º receptor de infrarrojos  que le dijese a la motherboard cuando debia leer  las entradas y con 8 receptores podemos determiar 256 posiciones  en una vuelta,  solo que yo no tengo ni idea de como progarmar una core para que en funcion de loque lea ,de un dato u otro a la salida midi
esto tambien se puede hacer con un encoder digital de 8 bits , pero los  que pueden aguantar mucho tiempo son muy caros.

y ande conecto ese otro receptor el que indica cuando se puede leer el dato podria hacerlo a cualquiera que no este ocupada ,supongo,pues sera en el programa donde haya que indicarlo,que se ha conectado . el iniciarse a programar algo así habria que empezar por pensar en alguna interrupcion de reset que volviera al punto de inicio y otra que empezase a contar desde el punto donde se le programa

me imagino fijandome en los secuenciadores que tengo , todos ellos pueden secuenciar 256 frases de 256 divisiones cada una .el codigo de bpm deben ser trenes de 8 bits ,el primero indica la posicion dentro de la frase y el segundo a cual frase se refiere . esto es una suposicion pues no encuentro nada referente
así pues os dejo aqui el dibujo del circuito y si sabe alguien como funciona toy muy interesado  Grin




aqui os dejo las primeras ideas que tuve, daros cuenta que si no cuento el desarrollo no se si me vais a entender

despues localice la norma midi 1.0 la cual ayuda mucho 
reloj midi timming clock
es un byte que se repite constantemente segun el bpm F8=11111000 (me falta saber cuantas veces ha de enviar este pulso por segundo )
start - FA=11111010
cue - FB=11111011
stop - FC=11111100
active sensing - este se envia cada tercio de segundo para comprobar fallos de   conexion FE=11111110

el programa deberia ser relativamente "sencillo" , cuando el motor arranca , hace girar  el disco con los agujeritos, de forma que los receptores de infrarrojo envian a la core el codigo binario ascendente , ademas de un noveno bite que manda al pic la orden de cuando debe o no leer el dato mientras entran de forma ascendente.Asi cada vez que el pic reconozca  que se ha cambiado de posicion , envia el byte f8=11111000 por la salida midi.
hasta aqui tenemos un interruptor que le dice al pic que mueva el motor y que ademas saque por el midi la orden start fa=11111010 al mismo tiempo, se piensa en otro de stop ,que para el motor y a su vez que saca por el midi FC=11111100.(stop) y ha de dejar de mandar ordenes de timming.
     Despues de esto el motor hace girar el codificado que el pic lo interpreta como datos ascendentes y cada vez que un dato es mayor que el anterior el pic envia por el midi F8=11111000 la señal de timming(para esto necesitaria saber cuantos datos envia por segundo a una velocidad x en bpm.ej:4 a 129 bpm) así  el play va  a la velocidad que valla el motor
 Se presenta el problema de que tiene que reconocer el dato mas alto de la tabla para que sepa que el siguiente que es 0 y continue adelante aun introduciendo un valor menor 

    Ahora el problema es que yo no he puesto el disco codificado sobre un eje de motor, si no que esta "casi" loco sobre otra polea que  si que va fijada por una correa al eje del motor ,como sería un disco sobre la alfombrilla lo que da la posibildad de pararlo ,adelantarlo ... pero y los reyes del escratch que paran por casa, cualquiera que pase le va a querer dar marcha atras  Huh Huh Huh Huh en la regla midi1.0 no hablan de poder programar puntos de cue seria tan sencillo como que saltase tantos puntos hacia atras segun los pasos que se le haya dado al binario
 enviandole esta orden ,cue-FB=11111011 ,el secuenciador comienza en la ultima posicion donde se pulso play   

Ahora sabiendo como deberia de funcionar falta  programarlo .........
alguien sabe como continuar o alguna otra pagina web o libro donde expliquen mas sobre midi
+datos+datos+datos+datos+datos+datos+datos+datos+datos+datos+datos




aqui tenes un bosquejo de lo que estoy haciendo , con un motor

el convertir de digital a analogico y de analogico a digital es por que el 0800 tiene entrada de clock ,la patilla 11 ,asi este cambiara de dato cada vez que se ilumine el fotorreceptor numero 9.
estoy usando un motor cc de 7.5v a unos 2 amperios , para accionar el motor hay que hacer que se encienda el led que esta conectado al regulador pwm , asi el multivibrador 74c221 hace encender y apagar al irf830 y el motor varia la velocidad segun el condensador y el pote , que seguramente sea un deslizante para emular los de un giradisco
supongo que el conectar el adc0800 al las entradas del din no influira en su funcionamiento aunque si la programacion
deberia ser mas facil de programar si se conecta directamente a la puerta a del pic y no se ponen potenciometros ,aunque le daria mucho mas juego
acepto todo tipo de criticas constructivas y mas todavia ayuda para programar




pues aqui teneis el circuito y creo que casi todo , el inconveniente es el pcb de eagle que parece ser que al ser una version    pues que no lo podreis abrir asi como asi pero vamos que no es na hacerlo , en la web de http://www.ucapps.de/ tienen todos los esquemas de los modulos core dout din y el regulador de velocidad del motor son tres lineas y cuatro componentes 
por si acaso alguien puede abrirlo os dejo el archivin ahí y aqui en dxf por si lo quereis pasar con eagle power tools u otro programa http://midiprojects.googlepages.com/conaindindoutcore.plc.dxf


de nuevo muchas gracias y cualquier critica constructiva es bien recibida
si alguien está interesado en el proyecto me puede localizar en alogic.on@gmail.com


----------



## DJ_Glenn (Mar 22, 2007)

Hola, el proyecto está mucho más que interesante. Sería genial poder manejar un secuenciador o un reproductor de mp3 con un dispositivo que simule un plato giradiscos.

La idea del pitch se entendió... lo que no entendí bien fue lo del bpm... lo que necesitas es una variación proporcional de la velocidad. Y si lo que quieres es conocer el bpm para acompazar dos temas, mejor aprendé a usar las orejas... es más divertido... a veces te hace dar miedo...

Hace unos 4 años comenzé a montar un control remoto para conectar al puerto de impresora. Tenía CUE, Play/Pause, contador de BMP a base de golpes con el dedo...(cómo el de american dj dcd-pro 300), acceso directo a 99 tracks...

Pero nunca lo terminé... más, lo desarmé para hacer otras cosas y nunca guardé documentación.

A decir verdad... era solo una botonera conectada al puerto de impresora... todo estaba en el software que hice en visual basic.

Lo que me frustró fue no saber como hacer el control de pitch en el dispositivo (el soft usaba el control activemovie, que si tenía variación del tono) y como mostrar información en un display (duración de la pista, etc).

No se de pics... así que cualquier información extra me vendría de 10


----------

