http://www.lawebdelprogramador.com RESPUESTA A LA PREGUNTA 14844 - C/Visual C Aquí te envío un programa que hice que realiza algunas funciones de sonido con el speaker, y las notas y duración correspondientes. SOUND.C /* Este archivo de c¢digo fuente C brinda constantes de frecuencias de las notas musicales para el speaker de la PC y la duraci¢n de las figuras musicales a 60 Beat/s y 120 Beat/s. PRECAUCION: No compilar, ni ejecutar, ni enlazar ya que no tiene funci¢n main() */ #if !defined (__SOUND_C) #define __SOUND_C #include typedef const float duracion; enum BEAT_PS_60 { REDONDA_PUNTILLO_60_BPS=6000, REDONDA_60_BPS=4000, BLANCA_PUNTILLO_60_BPS=3000, BLANCA_60_BPS=2000, NEGRA_PUNTILLO_60_BPS=1500, NEGRA_60_BPS=1000, CORCHEA_PUNTILLO_60_BPS=750, CORCHEA_60_BPS=500, SEMICORCHEA_PUNTILLO_60_BPS=375, SEMICORCHEA_60_BPS=250, FUSA_60_BPS=125 }; duracion FUSA_PUNTILLO_60_BPS=187.5; duracion SEMIFUSA_PUNTILLO_60_BPS=93.75; duracion SEMIFUSA_60_BPS=62.5; enum BEAT_PS_120 { REDONDA_PUNTILLO_120_BPS=3000, REDONDA_120_BPS=2000, BLANCA_PUNTILLO_120_BPS=1500, BLANCA_120_BPS=1000, NEGRA_PUNTILLO_120_BPS=750, NEGRA_120_BPS=500, CORCHEA_PUNTILLO_120_BPS=375, CORCHEA_120_BPS=250, SEMICORCHEA_120_BPS=125 }; duracion SEMICORCHEA_PUNTILLO_120_BPS=187.5; duracion FUSA_PUNTILLO_120_BPS=93.75; duracion FUSA_120_BPS=62.5; duracion SEMIFUSA_PUNTILLO_120_BPS=46.875; duracion SEMIFUSA_120_BPS=31.25; /*======== Nuevo tipo nota definido como const float ========*/ typedef const float nota; /*======== Constantes de frecuencia de las notas ========*/ /*Silencio*/ nota silencio=0.0; /*Primer octava grave con #*/ nota la_primer_octava=27.5; nota la_sostenido_primer_octava=29.135; nota si_primer_octava=30.863; /*Segunda octava grave con b*/ nota do_segunda_octava=32.703; nota re_bemol_segunda_octava=34.648; nota re_segunda_octava=36.708; nota mi_bemol_segunda_octava=38.891; nota mi_segunda_octava=41.203; nota fa_segunda_octava=43.654; nota sol_bemol_segunda_octava=46.249; nota sol_segunda_octava=48.999; nota la_bemol_segunda_octava=51.913; nota la_segunda_octava=55.0; nota si_bemol_segunda_octava=58.270; nota si_segunda_octava=61.735; /*Tercera octava grave con #*/ nota do_tercera_octava=65.406; nota do_sostenido_tercera_octava=69.269; nota re_tercera_octava=73.16; nota re_sostenido_tercera_octava=77.782; nota mi_tercera_octava=82.407; nota fa_tercera_octava=87.307; nota fa_sostenido_tercera_octava=92.499; nota sol_tercera_octava=97.999; nota sol_sostenido_tercera_octava=103.83; nota la_tercera_octava=110.0; nota la_sostenido_tercera_octava=116.54; nota si_tercera_octava=123.47; /*Cuarta octava grave con b*/ nota do_cuarta_octava=130.81; nota re_bemol_cuarta_octava=138.59; nota re_cuarta_octava=146.83; nota mi_bemol_cuarta_octava=155.56; nota mi_cuarta_octava=164.81; nota fa_cuarta_octava=174.61; nota sol_bemol_cuarta_octava=185.0; nota sol_cuarta_octava=196.0; nota la_bemol_cuarta_octava=207.65; nota la_cuarta_octava=220.0; nota si_bemol_cuarta_octava=233.08; nota si_cuarta_octava=246.94; /*Octava central con #*/ nota do_central=261.63; nota do_sostenido_central=277.18; nota re_central=293.66; nota re_sostenido_central=311.13; nota mi_central=329.63; nota fa_central=349.23; nota fa_sostenido_central=369.99; nota sol_central=392.0; nota sol_sostenido_central=415.30; nota la_central=440.0; nota la_sostenido_central=466.16; nota si_central=493.88; /*Sexta octava aguda con b*/ nota do_sexta_octava=523.25; nota re_bemol_sexta_octava=554.37; nota re_sexta_octava=587.33; nota mi_bemol_sexta_octava=622.25; nota mi_sexta_octava=659.26; nota fa_sexta_octava=698.46; nota sol_bemol_sexta_octava=739.99; nota sol_sexta_octava=783.99; nota la_bemol_sexta_octava=830.61; nota la_sexta_octava=880.0; nota si_bemol_sexta_octava=932.33; nota si_sexta_octava=987.77; /*S‚ptima octava aguda con #*/ nota do_septima_octava=1046.5; nota do_sostenido_septima_octava=1108.7; nota re_septima_octava=1174.7; nota re_sostenido_septima_octava=1244.5; nota mi_septima_octava=1318.5; nota fa_septima_octava=1396.9; nota fa_sostenido_septima_octava=1480.0; nota sol_septima_octava=1568.0; nota sol_sostenido_septima_octava=1661.2; nota la_septima_octava=1760.0; nota la_sostenido_septima_octava=1864.7; nota si_septima_octava=1975.5; /*8va octava aguda con b*/ nota do_octava_octava=2093.0; nota re_bemol_octava_octava=2217.5; nota re_octava_octava=2349.3; nota mi_bemol_octava_octava=2489.0; nota mi_octava_octava=2637.0; nota fa_octava_octava=2793.0; nota sol_bemol_octava_octava=2960.0; nota sol_octava_octava=3136.0; nota la_bemol_octava_octava=3322.4; nota la_octava_octava=3520.0; nota si_bemol_octava_octava=3729.3; nota si_octava_octava=3951.1; /*9na octava aguda con #*/ nota do_novena_octava=4186.0; /* Funci¢n que toma por par metros la nota y la duraci¢n */ void music(nota hz,int ms); void music(nota hz,int ms) { sound(hz); delay(ms); nosound(); } DEFAULTS.C #if !defined (__SOUND_C) #include "sound.c" #endif void twinkle_little_star(int vel) { if(vel==1) { music(la_central,NEGRA_60_BPS); music(la_central,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,BLANCA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(si_central,NEGRA_60_BPS); music(si_central,NEGRA_60_BPS); music(la_central,BLANCA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(si_central,BLANCA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(si_central,BLANCA_60_BPS); music(la_central,NEGRA_60_BPS); music(la_central,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,BLANCA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(si_central,NEGRA_60_BPS); music(si_central,NEGRA_60_BPS); music(la_central,BLANCA_60_BPS); } else { if(vel==2) { music(la_central,NEGRA_120_BPS); music(la_central,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,BLANCA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,NEGRA_120_BPS); music(si_central,NEGRA_120_BPS); music(la_central,BLANCA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,BLANCA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,BLANCA_120_BPS); music(la_central,NEGRA_120_BPS); music(la_central,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,BLANCA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,NEGRA_120_BPS); music(si_central,NEGRA_120_BPS); music(la_central,BLANCA_120_BPS); } } } void allegro() { music(la_sexta_octava,NEGRA_120_BPS); music(la_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(la_bemol_sexta_octava,CORCHEA_120_BPS); music(la_sexta_octava,CORCHEA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,CORCHEA_120_BPS); music(la_central,CORCHEA_120_BPS); music(si_central,CORCHEA_120_BPS); music(re_bemol_sexta_octava,CORCHEA_120_BPS); music(la_central,BLANCA_120_BPS); music(la_sexta_octava,NEGRA_120_BPS); music(la_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(la_bemol_sexta_octava,CORCHEA_120_BPS); music(la_sexta_octava,CORCHEA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,CORCHEA_120_BPS); music(la_central,CORCHEA_120_BPS); music(si_central,CORCHEA_120_BPS); music(re_bemol_sexta_octava,CORCHEA_120_BPS); music(la_central,BLANCA_120_BPS); /*Dolce*/ music(silencio,NEGRA_120_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(la_central,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(la_central,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(la_bemol_sexta_octava,NEGRA_60_BPS); music(la_sexta_octava,NEGRA_60_BPS); music(sol_bemol_sexta_octava,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(re_bemol_sexta_octava,NEGRA_60_BPS); music(si_central,BLANCA_PUNTILLO_60_BPS); music(silencio,NEGRA_120_BPS); /*A tempo*/ music(la_sexta_octava,NEGRA_120_BPS); music(la_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(la_bemol_sexta_octava,CORCHEA_120_BPS); music(la_sexta_octava,CORCHEA_120_BPS); music(sol_bemol_sexta_octava,CORCHEA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(mi_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(re_bemol_sexta_octava,NEGRA_120_BPS); music(si_central,CORCHEA_120_BPS); music(la_central,CORCHEA_120_BPS); music(si_central,CORCHEA_120_BPS); music(re_bemol_sexta_octava,CORCHEA_120_BPS); music(la_central,BLANCA_120_BPS); } /*INCOMPLETO*/ void minuet_3_bach() { music(re_sexta_octava,NEGRA_60_BPS); music(sol_central,CORCHEA_60_BPS); music(la_central,CORCHEA_60_BPS); music(si_central,CORCHEA_60_BPS); music(do_sexta_octava,CORCHEA_60_BPS); music(re_sexta_octava,NEGRA_60_BPS); music(sol_central,NEGRA_60_BPS); music(sol_central,NEGRA_60_BPS); music(mi_sexta_octava,NEGRA_60_BPS); music(do_sexta_octava,CORCHEA_60_BPS); music(re_sexta_octava,CORCHEA_60_BPS); music(mi_sexta_octava,CORCHEA_60_BPS); music(sol_bemol_sexta_octava,CORCHEA_60_BPS); music(sol_sexta_octava,NEGRA_60_BPS); music(sol_central,NEGRA_60_BPS); music(sol_central,NEGRA_60_BPS); music(do_sexta_octava,NEGRA_60_BPS); music(re_sexta_octava,CORCHEA_60_BPS); music(do_sexta_octava,CORCHEA_60_BPS); music(si_central,CORCHEA_60_BPS); music(la_central,CORCHEA_60_BPS); }