如何用c++发出音乐

如何用c++播放音乐?

c++作为每一个OIer的日常伙伴,打久了,不免有些乏味和疲倦

那么,我们是否可以让没有音响的电脑播放音乐呢?

答案是可以的。

Beep( A , B )函数

其中A代表 音调 ,B 代表发声的长短(毫秒)

下面给出一个示范

#include<bits/stdc++.h>
#include <windows.h>
#define n1 532 // do  1音
#define D 250  //定义 D 为 1拍
int  main(){
  Beep( n1 , D ) ;
  return 0 ;
}

这就是 do 音。是不是很简单呢?

但是我们要注意,Beep() 并不在万能头文件中,而是存在 windows 库中。后面要用的 Sleep() 函数也是如此。

在理解了 Beep() 函数后 , 我们来了解一下 Sleep() 函数。

Sleep( A ) , A表示暂停时间(毫秒)

#include<bits/stdc++.h>
#include <windows.h>
#define n1 532 // do  1音
#define D 250  //定义 D 为 1拍
int  main(){
  Beep( n1 , D ) ;
  Sleep( D );
  Beep( n1 , D ) ;
  return 0 ;
}

运行后发现 两个 do 音之间有了时间间隔

了解寄出后,我们可以自定义一些基础乐理的快捷方式,给出基础板子(不用谢,给个赞就行

#define l1 262
#define l2 294
#define l3 330
#define l4 349
#define l5 392
#define l6 440
#define l7 493

#define n1 532
#define n2 588
#define n3 660
#define n4 698
#define n5 784
#define n6 880
#define n7 988

#define h1 1046
#define h2 1175
#define h3 1319
#define h4 1397
#define h5 1568
#define h6 1760
#define h7 1976

#define A 1600*1.25 //四拍
#define B 800*1.25  //两拍
#define C 400*1.25  //一拍
#define D 200*1.25	//半拍
#define E 100*1.25	//1/4拍
#define F 50*1.25	//1/8拍

#define S(i) Sleep(i)

最后献上由本人(ssw02)亲自编写的

《恋爱循环》

#include<bits/stdc++.h>
#include <windows.h>

//作者 ssw02 
#define l1 262
#define l2 294
#define l3 330
#define l4 349
#define l5 392
#define l6 440
#define l7 493

#define n1 532
#define n2 588
#define n3 660
#define n4 698
#define n5 784
#define n6 880
#define n7 988

#define h1 1046
#define h2 1175
#define h3 1319
#define h4 1397
#define h5 1568
#define h6 1760
#define h7 1976

#define A 1600*1.25 //四拍
#define B 800*1.25  //两拍
#define C 400*1.25  //一拍
#define D 200*1.25	//半拍
#define E 100*1.25	//1/4拍
#define F 50*1.25	//1/8拍

#define S(i) Sleep(i)
#define wq( i , j ) Beep( i , j )

int  main(){
	wq(n3,D);wq(n4,D);wq(n3,D);wq(n4,D);wq(n5,C);wq(n3,D);wq(n4,D);

	wq(n3,D);wq(n4,D);wq(n5,C);wq(n5,D);wq(n4,D);wq(n3,D);wq(n4,D);

	wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);
	wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);

	wq(n1,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);wq(n3,C);S(C);
	//-----------------------------------------作者 ssw02 -----
	//----------C1----D0.5---------------------------------------2
	wq(n3,D);wq(n4,D);wq(n3,D);wq(n4,D);wq(n5,C);wq(n3,D);wq(n4,D);

	wq(n3,D);wq(n4,D);wq(n5,C);wq(n5,D);wq(n4,D);wq(n3,D);wq(n4,D);

	wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(l6,D);
	wq(n3,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(n2,D);

	wq(n1,E);wq(n1,D);wq(n1,D);wq(n1,E);wq(n3,D);wq(n3,C);S(C);
	//-----------------------------------------作者 ssw02 -----
	//----------C1----D0.5---------------------------------------3
	wq(n5,C);wq(n3,C);wq(n2,C);wq(n3,D);wq(n3,D);

	wq(n2,D);wq(n1,D);wq(n2,D);wq(n3,B);wq(n3,D);

	wq(n6,C);wq(n3,C);wq(n2,C);wq(n1,D);wq(n1,D);

	wq(n1,D);wq(n2,D);wq(n3,D);wq(n2,C);S(C);S(D);
	//-----------------------------------------作者 ssw02 -----
	//----------C1----D0.5---------------------------------------4
	wq(n5,C);wq(n3,C);wq(n2,C);wq(n3,D);wq(n3,D);

	wq(n2,D);wq(n1,D);wq(n2,D);wq(n3,B);wq(n3,D);

	wq(n6,C);wq(n3,C);wq(n1,C);wq(n3,C);

	wq(n1,C);S(C);S(C);S(D);wq(n1,E);wq(l5,E);
	//----------------------------------------作者 ssw02 -----1
	//----------C1----D0.5---------------------------------------4
	wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);

	wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n3,E);S(D);wq(n1,E);wq(l5,E);

	wq(l6,375);wq(l6,D);wq(l6,E);wq(n5,D);wq(n1,375);wq(n1,D);wq(n1,E);wq(n2,D);

	wq(n1,375);wq(n1,E);S(E);wq(n1,E);wq(l6,D);wq(n3,C);S(D);wq(n1,E);wq(l5,E);

	wq(l6,375);wq(l6,375);wq(l5,D);wq(n1,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);

	wq(l6,375);wq(l6,375);wq(l5,D);wq(n3,375);wq(n1,E);S(D);wq(n1,E);wq(l5,E);

	wq(l6,375);wq(l6,D);wq(l6,E);wq(n5,D);wq(n1,375);wq(n1,D);wq(n1,E);wq(n2,D);

	wq(n1,375);wq(n1,D);wq(n3,375);wq(n1,C);S(C);


}

谢谢观赏,如果你喜欢我的文章,请大力点赞!!

posted @ 2019-02-17 12:05  蓝银杏-SSW  阅读(4798)  评论(0编辑  收藏  举报
//结束