标题: [原创] 音名 音符号 频率查找程序
liveliu





板凳勋章:善思、踊言者——反方  
UID 106
精华 3
积分 182
帖子 143
沙子 97 粒
贡献 163 Hz
声望 6 dB
阅读权限
注册 2007-12-27
发表于 2007-12-29 17:32  资料  短消息  加为好友  添加 liveliu 为MSN好友 通过MSN和 liveliu 交谈
音名 音符号 频率查找程序

这两天才发现程老师建的网站,也想来凑凑热闹,增加点人气!(嘿嘿) 一时没想好留点什么在上面,后看程老师贴个音名音符号频率对照表,于是想起写个小程序给它变的智能点(呵呵 其实也没多大用 就是写着玩的),顺便也练习一下我那荒废已久的C语言(不写不知道啊,发现都忘差不多!)先写这么多吧,我写的程序如果还可以优化的话或是还有什么问题的话 大家多留言 多发贴 让程老师的这里人兵兴盛 呵呵!

#include "stdio.h"
#include "conio.h"
#include "string.h"
struct freq{
    char note[4];
    int number;
    float freq;
};
main()
{
    int i,n;
    char *inote[3],*comand[2]={"QUT","CLN"};
    char *note[88]={"A0","A2","A4","A6","A#0","A#2","A#4","A#6","B0","B2","B4","B6","C1","C3","C5","C7","C#1","C#3","C#5","C#7",
    "D1","D3","D5","D7","D#1","D#3","D#5","D#7","E1","E3","E5","E7","F1","F3","F5","F7","F#1","F#3","F#5","F#7",
    "G1","G3","G5","G7","G#1","G#3","G#5","G#7","A1","A3","A5","A7","A#1","A#3","A#5","A#7","B1","B3","B5","B7",
    "C2","C4","C6","C8","C#2","C#4","C#6","D2","D4","D6","D#2","D#4","D#6","E2","E4","E6","F2","F4","F6","F#2","F#4",
    "F#6","G2","G4","G6","G#2","G#4","G#6"};
    struct freq lib[88]={
{"A0" ,21, 27.50},{"A2", 45, 110.0},{"A4", 69, 440.0},{"A6" ,93, 1760},
{"A#0", 22, 29.14},{"A#2", 46 ,116.5},{"A#4" ,70, 466.2},{"A#6",94, 1865},
{"B0", 23, 30.87} ,{"B2", 47 ,123.5 },{"B4", 71, 493.9 },{"B6", 95 ,1976},
{"C1" ,24, 32.70} ,{"C3", 48, 130.8} ,{"C5", 72 ,523.2 },{"C7", 96, 2093},
{"C#1",25 ,34.65}, {"C#3",49,138.6},{"C#5",73,554.4 },{"C#7",97,2217},
{"D1", 26 ,36.71}, {"D3" ,50 ,146.8} ,{"D5", 74 ,587.3 },{"D7" ,98 ,2349},
{"D#1", 27, 38.89 },{"D#3", 51, 155.6}, {"D#5", 75, 622.2} ,{"D#7" ,99 ,2489},
{"E1" ,28 ,41.20 },{"E3" ,52 ,164.8} ,{"E5", 76, 659.3 },{"E7" ,100, 2637 },
{"F1" ,29, 43.65 },{"F3", 53, 174.6} ,{"F5", 77 ,698.5}, {"F7" ,101 ,2794} ,
{"F#1" ,30, 46.25 },{"F#3", 54 ,185.0 },{"F#5", 78 ,740.0},{"F#7",102, 2960} ,
{"G1",31,49.00 },{"G3",55 ,196.0 },{"G5",79,784.0 },{"G7",103,3136},
{"G#1" ,32, 51.91},{ "G#3",56,207.6}, {"G#5" ,80 ,830.6} ,{"G#7", 104, 3322},
{"A1",33 ,55.00}, {"A3", 57, 220.0} ,{"A5", 81 ,880.0 },{"A7" ,105 ,3520 },
{"A#1",34, 58.27},{"A#3", 58 ,233.1},{"A#5", 82, 932.3}, {"A#7", 106 ,3729},
{"B1",56,1.74},{"B3" ,59 ,246.9},{"B5", 83 ,987.8},{"B7",107,3951},
{"C2", 36, 65.41}, {"C4", 60, 261.6},{"C6", 84, 1046},{"C8", 108, 4186},
{"C#2" ,37, 69.30}, {"C#4" ,61, 277.2}, {"C#6", 85, 1109},{"D2", 38, 73.42} ,
{"D4", 62, 293.7 },{"D6", 86, 1175 }, {"D#2" ,39 ,77.78}, {"D#4" ,63, 311.1},
{"D#6", 87 ,1245},{"E2", 40 ,82.41} ,{"E4", 64 ,329.6 },{"E6", 88, 1319},
{"F2",41,87.31} ,{"F4",65,349.2 },{"F6",89,1397},{"F#2",42,92.5},
{"F#4", 66,370.0 },{"F#6", 90 ,1480}, {"G2" ,43,98.00} ,{"G4",67, 392.0 },
{"G6",91 ,1568},{"G#2" ,44 ,103.8}, {"G#4", 68 ,415.3} ,{"G#6", 92 ,1661} } ;
    printf("*****************************************************\n");
    printf("* quit = qut                                        *\n");
    printf("*                                                   *\n");
    printf("* clear= cln                                        *\n");
    printf("*                                                   *\n");
    printf("*                                        by liveliu *\n");
    printf("*****************************************************\n");
    printf("Please input note:\n");
    loop1:
    scanf("%s",inote);
    strupr(inote);
    if(strlen(inote)>3){
            printf("input error\n");
            goto loop1;
        }
    else if(strcmp(inote,comand[0])==0){
            return 0;
        }
    else if(strcmp(inote,comand[1])==0){
            clrscr();
            goto loop1;
        }
    else{
    for(n=0;n<89;n++){
        i=strcmp(inote,note[n]);
            if(i==0){
                printf("note:%s\nnumber:%d\nfreq:%4.2f\n",lib[n].note,lib[n].number,lib[n].freq);
                goto loop1;
            }

        }
    }
    printf("No this note in lib\n");
    goto loop1;
}
注:Windows下用什么Turbo C 之类的编译一下就行,苹果下在终端下输入$gcc -o xxx xxx.c(如果你安装了xcord集成开发工具的话 就有gcc了),其他类Unix操作系统都同苹果终端下一样(如果安装了gcc)

顶部
C文C纹A





板凳勋章:善思、踊言者——正方  
UID 86
精华 0
积分 132
帖子 126
沙子 126 粒
贡献 126 Hz
声望 2 dB
阅读权限
注册 2007-12-17
发表于 2007-12-29 19:56  资料  短消息  加为好友 
看不懂..........不过还是要PF楼主一下,厉害啊!!!

顶部
CYB


是~程伊兵~不是~程一兵



UID 1
精华 1
积分 1251
帖子 841
沙子 1249 粒
贡献 1248 Hz
声望 1 dB
阅读权限
注册 2007-8-8
来自 北京
发表于 2007-12-29 20:08  资料  主页 短消息  加为好友 
哈哈,热烈欢迎,果然厉害的说





程伊兵-声音(CYB-Sound.com)
顶部
daiyongbing





UID 3344
精华 0
积分 109
帖子 24
沙子 187 粒
贡献 109 Hz
声望 0 dB
阅读权限
注册 2009-4-20
来自 湖南岳阳
发表于 2009-12-18 20:49  资料  短消息  加为好友 
c语言确实够复杂,眼都是花的了

顶部
 



当前时区 GMT+8, 现在时间是 2010-9-9 04:19
京ICP备07039177号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.041356 second(s), 9 queries

清除 Cookies - 联系我们 - 程伊兵-声音(CYB-Sound.com) - Archiver