Generar melodías con PIC

No puedes... al menos no si tu algoritmo no esta enfocado a generar polifonias, (algo como lo que paso con los primeros celulares que tocaban musica, tenias que bajar tonos monofonicos o polifonicos segun el modelo del celular)

Tienes que replantear el algoritmo completamente, para añadir rutinas que sumen las formas de onda de cada tono individual y generen una resultante que es la que se envia al amplificador
 
No puedes... al menos no si tu algoritmo no esta enfocado a generar polifonias, (algo como lo que paso con los primeros celulares que tocaban musica, tenias que bajar tonos monofonicos o polifonicos segun el modelo del celular)

Tienes que replantear el algoritmo completamente, para añadir rutinas que sumen las formas de onda de cada tono individual y generen una resultante que es la que se envia al amplificador

yo presento la misma duda del compañero, es decir, como hacer para que, en caso de que presione la tecla correspondiente a SOL, SI y RE me arroje por la bocina la respectiva armonia? menciono esos 3 tonos pero preguntaria lo mismo si fuera un caso de teclas al azar... sin embargo, no comprendo como hacer eso que mencionaste, habra alguna manera de que nos encamines un poco ? si no es molestia?
 
Última edición:
Al igual que ustedes siempre me salio la interrogante, solo que nunca me puse a hacer un ejercicio para resolverlo...

La solucion que se me ocurrio es generando una base de tiempos estandar usando el timer e interrupciones, Durante cada interrupcion se evalua cada tono y se prende o se apaga un bit de cada puerto por cada tono, es decir si habra 8 tonos a tocar necesitaran 8 pines para cada uno

Luego con un OPAMP configurado como sumador podemos sumar la salida de cada uno de los pines y asi mandar la resultante a una bocina

La otra seria evaluar numericamente cada tono por tiempos y con eso mandar la salida a un DAC solo que requiere mas trabajo matematico del micro..
 
Al igual que ustedes siempre me salio la interrogante, solo que nunca me puse a hacer un ejercicio para resolverlo...

La solucion que se me ocurrio es generando una base de tiempos estandar usando el timer e interrupciones, Durante cada interrupcion se evalua cada tono y se prende o se apaga un bit de cada puerto por cada tono, es decir si habra 8 tonos a tocar necesitaran 8 pines para cada uno

Luego con un OPAMP configurado como sumador podemos sumar la salida de cada uno de los pines y asi mandar la resultante a una bocina

La otra seria evaluar numericamente cada tono por tiempos y con eso mandar la salida a un DAC solo que requiere mas trabajo matematico del micro..

habia considerado tu respuesta del sumador pero en basic me atore con la interrogante de

que la libreria/funcion(?) de Sonido me pide inicializarla a 1 puerto en especifico por ejemplo

Sound_Init(PORTD, 3) siendo el 4bit del puerto D
Sound_Play(880, 5000) y en este caso, solo envia la frecuencia de 880hz en un tiempo de 5 segundos, y solo se utiliza ese puerto en lo que corre del programa para diferentes frecuencias y diferentes salidas de sonido, solo que se envian uno a la vez...

hay manera de configurar varios puertos como salida de sonido, y segun lo que planteas, ocupare 8, un puerto de salida de sonido para cada uno de los tonos que mencionas... ?

hay manera de configurar un puerto de salida de sonido exclusivo para cada "tono" de entrada ? es decir, si voy a tener 8 tonos de entrada mediante switches, tener 8 pines por los cuales van a salir las 8 respectivaas frecuencias... ?
 
Última edición:
Atrás
Arriba