工科生空虚起来真可怕,来转一段Turbo C的代码……
克利福德吧
全部回复
仅看楼主
level 13
formular2 楼主
可能有人已经知道这啥了…还不知道又能看懂C语言的要不要猜猜是啥。调用主板蜂鸣器的毁耳物= =
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
int Tone[7][7] = {{0,0,65,131,262,523,1047},
{0,0,73,147,294,587,1175},
{0,0,82,165,330,659,1319},
{0,0,87,175,349,698,1397},
{0,0,98,196,392,784,1568},
{0,0,110,220,440,880,1760},
{0,0,123,247,494,988,1976}}; /*CDEFGAB*/
int solm,oct,del;
char a[6]={'0'};
int play()
{
int a;
#define TIME 15000
sound(Tone[solm-1][oct+1]);
for (a=1; a<=del; a++)
delay(TIME);
nosound();
}
int main()
{
int play();
int i,j,k;
FILE*fp;
fp = fopen("C:\\turboc2/Play/zxmzf1.txt","r");
while(a[0] != 'q')
{
oct = 4;
del = 8;
for (k=0; k<=5; k++)
a[k] = '0';
fscanf(fp,"%s",&a);
solm = atoi(&a[0]);
for (i=1; i<=5; i++)
{
if(a[i] == '.')
oct++;
else if(a[i] == ',')
oct--;
else if(a[i] == 's')
del = del/2;
else if(a[i] == 'l')
del = del*2;
}
if(a[0] == 'q')
printf("End.\n");
else
{
printf("%d %d %d\n",solm,oct,del);
play();
}
}
getch();
}
----------------------------------------------------------------------------------------------------
以下是C:\\turboc2/Play/zxmzf1.txt 内容:
3 6,s 6,s 1 3 2s 2ss 3ss 2s 1s 2s 1s 6, 3 6,s 6,s 1 3 5s 2ss 3ss 2s 1s 2s 1s 7,s 5,s 3 6,s 6,s 1 3
2s 2ss 3ss 2s 1s 2s 1s 6,s 5,s 3 6,s 6,s 1 3 5s 3s 3 3 0 6, 6,s 5,s 6, 6,s 1s 1 2s 1s
6, 0 1 1s 5,s 1s 2s 3s 5s 5s 3s 2 3 0 6s 6s 6s 5s 3s 3 1s 6,s 6,s 6,s 3s
2 0 3s 3s 5s 3s 2s 3s 2s 1s 6, 5, 6, 0
6, 6,s 5,s 6, 6,s 1s 1 2s 1s
6, 0 1 1s 5,s 1s 2s 3s 5s 5s 3s 2 3 0 6s 6s 6s 5s 3s 3 1s 6,s 6,s 6,s 3s
2 0 3s 3s 5s 3s 2s 3s 2s 1s 6, 5, 6, 0 3s 3s 5s 3s 3s 5s 5s 6s
1.s 6s 5 6 0 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s 3 0 6,s 6s 6s 5s
2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s 3s 5s 3s 2s 1 0
6,s 1s 2s 3s 2s 1s 5,s 3,s 6, 0 6,s 6,s 6, 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s
3 0 6,s 6s 6s 5s 2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s
3s 5s 3s 2s 1 1s 1s 6,s 1s 2s 3s 5s 3s 3s 5s 6l 6l 6s 6ss 6ss 6s 6s
6s 6ss 5ss 3s 2s 2s 2ss 2ss 3s 3ss 5ss 3s 3ss 2ss 1s 1ss 6,ss 6, 6,s 5,s 6, 6,s 1s 2s 3ss 2ss 1s 2s 3 0
6s 5s 3s 2s 5s 3s 2s 1s 1 0 6,ss 1ss 2ss 3ss 2ss 1ss 6,ss 1ss
6, 6,s 5,s 6, 6,s 1s 1 2s 1s
6, 0 1 1s 5,s 1s 2s 3s 5s 5s 3s 2 3 0 6s 6s 6s 5s 3s 3 1s 6,s 6,s 6,s 3s
2 0 3s 3s 5s 3s 2s 3s 2s 1s 6, 5, 6, 0 3s 3s 5s 3s 3s 5s 5s 6s
1.s 6s 5 6 0 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s 3 0 6,s 6s 6s 5s
2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s 3s 5s 3s 2s 1 0
6,s 1s 2s 3s 2s 1s 5,s 3,s 6, 0 6,s 6,s 6, 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s
3 0 6,s 6s 6s 5s 2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s
3s 5s 3s 2s 1 1s 1s 6,s 1s 2s 3s 5s 3s 3s 5s 6l 6l
1.s 1.ss 1.ss 6s 6ss 6ss 5s 5ss 5ss 3s 3ss 3ss 2s 3ss 2ss 1s 6,ss 5,ss 6,ss 5,ss 1ss 2ss 3ss 5ss 6ss 2.ss 1. 0l 1s 2s
3 0 3 5s 3s 6 0 6s 1s 5s 3s 2 2s 2ss 2ss 2s 2s 1s 2s 3 3s 3ss 3ss 3s 2ss 1ss 7,s 1ss 2ss 3 0 3 5s 3s
1. 6 6 6s 1s 2 5 5 6 7 0 7 0
6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s 3 0 6,s 6s 6s 5s
2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s 3s 5s 3s 2s 1 0
6,s 1s 2s 3s 2s 1s 5,s 3,s 6, 0 6,s 6,s 6, 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s
3 0 6,s 6s 6s 5s 2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s
3s 5s 3s 2s 1 1s 1s 6,s 1s 2s 3s 5s 3s 3s 5s 6l 6 0
6 0 3s 5s 3s 5s 3 6,s 6,ss 6,ss
1 6,s 3ss 6,ss 1s 1ss 1ss 2s 1ss 2ss 3 0 3 6s 6ss 6ss 5 2s 2ss 2ss 3 0
3ss 2ss 1ss 6,ss 3,ss 2,ss 3,ss 5,ss 1 6,s 6,ss 6,ss 2 5,s 5,ss 5,ss 3, 5,s 5,ss 5,ss 1 0 6, 1s 1ss 6,ss
3s 3ss 3ss 2s 2ss 3ss 6l 6 0
6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s 3 0 6,s 6s 6s 5s
2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s 3s 5s 3s 2s 1 0
6,s 1s 2s 3s 2s 1s 5,s 3,s 6, 0 6,s 6,s 6, 6, 6,s 5,s 6, 1 2s 3ss 2ss 1s 2s
3 0 6,s 6s 6s 5s 2s 3ss 2ss 1s 2s 3 0 3s 3s 3 1s 6,s 6,s 1s 2 5,s 5,s
3s 5s 3s 2s 1 1s 1s 6,s 1s 2s 3s 5s 3s 3s 5s 6l 6l
q
2012年05月21日 16点05分 1
level 13
formular2 楼主
播放效果



2012年05月21日 16点05分 2
level 13
formular2 楼主
2012年05月21日 16点05分 3
level 10
[啊!]
2012年05月21日 18点05分 5
level 10
作者居然还是伊利诺大学的。
拿D大调卡农和民族风相比,我还是宁可听后者。因为后者无论用什么乐器奏出来都不可能更难听了。。。
2012年05月21日 20点05分 6
level 10
越发觉得CS就是比我们EE犀利。。
呵呵,开玩笑的。
2012年05月21日 20点05分 7
level 11
看了代码觉得太恶毒了…
2012年05月21日 23点05分 8
level 11
c那个是方波的吧,matlab用正弦波就好多了,方波单音还能听和弦就悲剧了~~
想起以前fpga课上一屋子各种走调音乐就头晕…
2012年05月22日 01点05分 9
level 13
formular2 楼主
matlab版是伊利诺的,C版的是同样空虚的国内学生跟的。
2012年05月22日 01点05分 10
level 13
formular2 楼主
matlab版我也可以把源码贴出来,有处理过混音。
2012年05月22日 01点05分 11
level 10
方波?那放到频域里不是N多噪音?
2012年05月22日 01点05分 12
level 11
我见过写另外一个歌的matlab代码,每个音开头结尾都做了减弱效果
2012年05月22日 01点05分 13
level 11
所以很难听。。。
2012年05月22日 01点05分 14
level 11
翻了半天校内分享找着之前看的网址了,http://vichare.net/2011/matlab-playlxg-m/
这个音符的处理有倍频的和弦,还有音符轮廓的一个系数函数~
2012年05月22日 01点05分 15
level 12
虽不明,但觉厉。
2012年05月23日 20点05分 16
level 12
很强悍
2012年05月24日 09点05分 17
level 10
怎么好像说的我能听懂一点点的意思呢。。唉
2012年05月26日 14点05分 18
1