Entender midi clock para programar sequencer

#1 por morelius21 el 13/04/2014
Hola,

Llevo un tiempo intentando entender como programar un timer para que me controle el tempo de un step sequencer. Solo avisar que lo llevo mal. No me aclaro la verdad. Lo de programar el timer ya me espabilaré pero necesito saber que tiempo setearle.

BPM: Número de pulsos en un minuto.

Si quiero tener un tempo de 100 bpm, es decir, 60segundo/100golpes= 0,6s tengo un golpe.

Midi Clock:
Aquí se que:
-hay diferentes resoluciones pero la típica es 96 PPQN = pulsos por cuarto de nota.
-Cada 24 pulsos tengo una negra.

Enonces si tengo 100bpm cada pulso es de 0,6s/24 =0,025s = 25ms.

Entonces tendría que programar una interrupción en el timer cada 25ms. A las 24 interrupciones tendría un paso del sequencer y reinicio el conteo.

Entonces 96ppqn me divide un compás y cada división del compás es de 24ticks si entendido bien.

Por ultimo si tengo un mcu con clock 1Mhz y un timer de 16 bits como seria la formula? si alguien me puede ayudar le seria muy agradecido.

Saludos
Subir
#2 por Mordus el 13/04/2014
Hola Morelius,

Primero decirte que no tengo ni idea de hacer inventos de estos, con lo que no podré ayudarte en absoluto.

Debo hacer una corrección que espero, eso sí, te ayude un poquito:
morelius21 escribió:
-hay diferentes resoluciones pero la típica es 96 PPQN = pulsos por cuarto de nota.
-Cada 24 pulsos tengo una negra.

Incorrecto: "Quarter note" se refiere a una negra, con lo que esa resolución te dará 96 pulsos por negra, o 384 pulsos por compás de 4/4.

Un saludo!! y suerte con el invento!

-Que mi avatar se esté descojonando no significa que yo también lo haga...

-Tanto discrepar me va a matar.

Subir
#3 por morelius21 el 14/04/2014
Hola,

Gracias mordus por la aclaración,eso era bastante importante :oops: !

Ahora voy hacer calculo elemental jaaj

Entonces:

seguimos con los 100bpm.

100bpm x 96 tick = 9600ticks /60s = 160Hz

Calculando el periodo tengo el tiempo de cada ciclo. 1/160Hz = 6,25x10^-3 = 6,25 ms cada tick.

Para demostrar el calculo haciéndolo a al inversa:

6.25ms X 9600 ticks = 60.0000ms que es un 60 s. Obvio no?

Conclusión:

Para saber la freq es:

Freq = (BPM X PPQN)/60s

Entonces cada 96 ticks es decir 96x6.25ms = 600ms tengo una negra a 100bpm,

Estoy bien encaminado?

Saludos
Subir
#4 por Mordus el 14/04/2014
Buenas Morelius ;)

En lo que se refiere al cálculo de numeritos ahora sí que es correcto. Yo hubiera elegido 60 o 120 bpm's para facilitar el cálculo, pero la conclusión obviamente es la misma. A partir de aquí, teniendo ya la relación bpm<-->Hz (en función de la resolución del clock en PPQN), implementar el invento ya queda fuera de mi alcance...
Así que me retiro, y espero que alguien de los asiduos de este subforo "Hazlo tu mismo" te pueda resolver las otras dudas :ook:

Un saludo! y Suerte!

-Que mi avatar se esté descojonando no significa que yo también lo haga...

-Tanto discrepar me va a matar.

Subir
#5 por Farb el 15/04/2014
ok gracias por la ayuda

saludos

SERVICIO TECNICO DE EQUIPOS ELECTRONICOS DE AUDIO

http://www.farb.es

Subir
--26171--
#6 por --26171-- el 15/04/2014
#1

Por la cantidad de anglicismos del texto entiendo que estás aprendiendo el español, ánimo, si eres anglosajón te llevará un tiempo...
Subir
#7 por morelius21 el 15/04/2014
Hola,

La verdad es que soy de Barcelona pero toda la info la encuentro en inglés . :desdentado:

Saludos
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo