您的位置:

c语言音乐编写,c语言音乐函数

本文目录一览:

如何用c语言编写歌曲

我们知道,音乐是音高和音长的有序组合,设计微机音乐最重要的就是如何定义音高和音长,以及如何让扬声器发出指定的音符。下面给出音符与频率的关系表。C语言提供的三个函数sound( )、nosound( )和clock( )可以很方便地解决上述的问题。sound( )函数可以用指定频率打开PC机扬声器直到用nosound( )函数来关闭它; clock( )函数正好用来控制发声时间,而且它不受PC机主频高低的影响。下面这段程序可使微机发出c调1的声音。

音符与频率关系表

音符 c d e f g a b

1 2 3 4 5 6 7

频率 262 294 330 349 392 440 494

音符 c d e f g a b

1 2 3 4 5 6 7

频率 523 587 659 698 784 880 988

音符 c d e f g a b

1 2 3 4 5 6 7

频率 1047 1175 1319 1397 2568 1760 1976

#includestdio.h

#includedos.h

void pause(int);

void sound1(int,int);

void main(void)

{

int i,freq,speed=5;

int time=4*speed;

char *qm="iddgwwwQQgfff dddfghhhggg ddgwwwqqgfff\

ddffhjqqqqq wpggjhgddgqq hhqwwqjjjggg\

ddgwwwqqqgfff ddffhjqqqqqq";/*定义歌曲*/

while (*qm++ !='\0'){

i=1;

switch(*qm){

case 'k':

time=1*speed; i=0;

break;

case 'i':

time=6*speed; i=0;

break;

case 'o':

time=10*speed; i=0;

break;

case 'p':

pause(time); i=0;

break;

case 'a':

freq=523;

break;

case 's':

freq=587;

break;

case 'd':

freq=659;

break;

case 'f':

freq=698;

break;

case 'g':

freq=784;

break;

case 'h':

freq=880;

break;

case 'j':

freq=988;

break;

case 'z':

freq=262;

break;

case 'X':

freq=294;

break;

case 'c':

freq=330;

break;

case 'v':

freq=349;

break;

case 'b':

freq=392;

break;

case 'n':

freq=440;

break;

case 'm':

freq=494;

break;

case 'q':

freq=1047;

break;

case 'w':

freq=1175;

break;

case 'e':

freq=1319;

break;

case 'r':

freq=1397;

break;

case 't':

freq=2568;

break;

case 'y':

freq=1760;

break;

case 'u':

freq=1976;

break;

default:

i=0;

break;

}

if(i)

sound1(freq,time);

}

}

void sound1(int freq,int time) /*freq为频率,time为持续时间*/

{

union{

long divisor;

unsigned char c[2];

}count;

unsigned char ch;

count.divisor=1193280/freq; /* 1193280 是系统时钟速率*/

outp(67,182);

outp(66,count.c[0]);

outp(66,count.c[1]);

ch=inp(97);

outp(97,ch|3);

pause(time);

outp(97,ch);

}

void pause(int time)

{

int t1,t2;

union REGS in,out;

in.h.ah=0X2c;

int86(0X21,in,out); /* 取当前时间*/

t1=t2=100*out.h.dh+out.h.dl; /*out.h.dh 为秒值,out.h.dl 为1/100 秒值*/

while(t2-t1time)

{

int86(0X21,in,out);

t2=100*out.h.dh+out.h.dl;

if (t2t1)t2+=6000; /* 增加一分钟*/

}

}

用C语言怎么编写音乐播放器?

一.在程序中直接播放声音文件

在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.W***文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。

二.将声音文件加入到程序中

在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.W***文件的声音播放。要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件。

具体步骤入下:

1.获得包含资源的模块句柄:

HMODULE hmod=AfxGetResourceHandle();

2.检索资源块信息:

HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));

3. 装载资源数据并加锁:

HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);

LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);

4.播放声音文件:

sndPlaySound(lpMemSound,SND_MEMORY));

5.释放资源句柄:

FreeResource(hGlobalMem);

如何用c语言编辑音乐?

无法使用c语言编辑音乐

编辑音乐的都是汇编之类的低级语言

高级语言没有和音乐有关的指令

[其中VB能播放音乐完全是因为用了汇编做出来的控件起的作用]

用c语言编写音乐播放器

我想楼主实际上是想编写一个我们平常所看到的app,应用软件之类的程序。最开始学编程,我想每个人都有这样的疑问,为什么我写的只是,一个黑框框。实际上,一般情况下,一般情况下,没有人用C语言编写那种图形化界面的软件。因为实在是开发效率太低了,也就是要写的代码太多了,也没有多大意义。C语言是面向过程的语言。所以一般只是用于编写底层之类的程序。而我们实际应用于编写那种图形化界面的软件,一般用的都是使用的面向对象的语言,就是Java,c#,这之类的语言。如果楼主,是想要快速能够写那种软件的话,楼主应该学C#,学c一般都只是为了入门,一般除了特殊的领域之外,基本上都是用的C#这之类的面向对象语言。