elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 05:56  

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  metronomo en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: metronomo en c  (Leído 605 veces)
pabloide22

Desconectado Desconectado

Mensajes: 8


Ver Perfil
metronomo en c
« en: 22 Marzo 2010, 12:53 »

bueno pues como el nombre indica estoi haciendo un metronomo en c, pero tengo un problema, para marcar el tempo utilizo \a, pero necesito otro sonido para cuando acabe un compas, nose un sonido mas fuerte o mas agudo. el caso es que e leido algo de la libreria dos.h que tiene unas funciones para reproducir distintos pitidos, pero no me funcionan las funciones que veo.


En línea
do-while


Desconectado Desconectado

Mensajes: 581


Cuando me afeito, recuerdo porque me dejo barba.


Ver Perfil
Re: metronomo en c
« Respuesta #1 en: 22 Marzo 2010, 15:59 »

Buenas!

Con dos.h, utiliza las funciones delay(milisegundos) y sound(frecuencia). Supongo que utilizaras un compilador de Borland. Yo hace mucho que lo desinstale, pero si no llegas a oir el sonido que le indicas, es posible que tengas que repartir el delay entre el tiempo que esperas entre las partes del compas y la duracion del sonido que marca cada parte, de forma que la suma te de el tempo total.

ej:

60 negras por minuto y un compas de 4x4.

60 negras por 60s * 1000ms/1s = 60 negras por 60000 ms

60000ms/60 negras = 1000ms/negra

entonces es posible que en el codigo tengas que poner algo asi
Código
 
unsigned long i=0;
 
while(1)
{
   i++;
 
   if(i%4) //si no hemos llegado al cuarto tiempo
   {
       delay(995);
       sound(440); //marcamos con la
       delay(5);
       nosound();
   }
   else
   {
       delay(995);
       sound(880); //una nota mas aguda para el cuarto tiempo.
       delay(5);
       nosound();
   }
}
 

Aunque no tengo donde compilarlo, creo que funcionara. La eleccion de las frecuencias... la que mas te guste. :D

Si como he dicho antes estas utilizando un compilador de borland, si viene con IDE, haz click derecho sobre el codigo (si es un proyecto, sobre el proyecto), escoge target expert y en target model escoges una de las modalidades de DOS.

Espero que te sirva. ¡Saludos!

PD: La parte de while(1) la puedes retocar un poco. Supongo que tambien tendras conio.h. Utiliza un combinacion de kbhit y getch() para detectar el valor de alguna tecla que indique el final del bucle...


« Última modificación: 22 Marzo 2010, 16:06 por do-while » En línea

¡¡¡Feliz año nuevo!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines