c语言乐曲演奏——《千本樱》
这个程序着实花费了我好长的时间,我本身对音乐一窍不通,先是跟着girl friend学习了简谱,根据c调44拍的《千本樱》写下了下面的程序。
#include<stdio.h>
#include<dos.h>
void mysound(unsigned int freq,int times)
{
int i;
union
{
int divisor;
char c[];
} count;
char bits;
count.divisor=/freq;
outportb(0x43,0xb6);
outportb(0x42,count.c[]);
outportb(0x42,count.c[]);
bits=inportb(0x61);
outportb(0x61,bits|);
for(i=; i<times; i++)
delay();
outport(0x61,bits&0xfc);
outportb(0x61,bits);
}
int main()
{
int freq[]= {,,,,,,,};
int song[]= {,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,, ,,,,,,,,
,,,,,,-,,
,,,,,,,,
,,,,,, ,,,,,,,,
,,,,,,-,,
,,,,,,,,
,,,,,, ,,,,
,,,-,-,-,-,
-,,-,,,
,,,,,, ,,,,
,,,-,-,-,-,,
,,,,,
,,,,, ,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,, ,,,,,,,
,,,,,,,
,,,,
,,,,,,, ,,,,,,
,,,,
,,,, };
float div[]= {,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,, ,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,,,,,,,
,,,,,,, ,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,, ,,,,,,,,
,,,,,,,,
,,,,,,,,
,,,,,, ,,,,
,,,,,,,
,,,,,
,,,,,, ,,,,
,,,,,,,,
,,,,,
,,,,, ,,,,,,,
,,,,,,,
,,,,,,,
,,,,,,, ,,,,,,,
,,,,,,,
,,,,
,,,,,,, ,,,,,,
,,,,
,,,, };
unsigned int f;
int times,i;
for(i=; song[]; i++)
{
if(song[i]<)
f=freq[-song[i]]/;
else if(song[i]>)
f=freq[song[i]%]*;
else if(song[i]==)
f=;
else
f=freq[song[i]];
times=/div[i];
mysound(f,times);
}
return ;
}
再附上两首简单音乐的代码:
int song[]={ ,,,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,
,,,,, };
float div[]={ ,,,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,,,
,,,,,,
,,,,,,
,,,,,,
,,,,,
,,,,,,
,,,,,
,,,,, };
int song[]= {
,,,,,,,
,,,,,
,,,,,,,
,,,,, ,,,,,
,,,,,
,,,,,,
,,,,,
,,,,,, ,,,,,
,,,,,,-,
,,-,,
,,,,,,
,,,,
,,, };
float div[]= {
,,,,,,,
,,,,,
,,,,,,,
,,,,, ,,,,,
,,,,,
,,,,,,
,,,,,
,,,,,, ,,,,,
,,,,,,,
,,,,
,,,,,,
,,,,
,,,
};
c语言乐曲演奏——《千本樱》的更多相关文章
- VHDL 乐曲演奏电路设计
前言 无源蜂鸣器在直流信号下不会响,需要方波驱动.输入不同频率的方波会发出不同音调的声音,方波的幅值决定了声音的响度. 目标 乐曲发生电路在节拍(4Hz)的控制下根据乐谱产生合适的分频系数.分频器根据 ...
- LeCun自曝使用C语言23年之久,2年前才上手Python,还曾短暂尝试Lua!
程序员圈子的流行风潮,过几年就怀旧风走一波. 这不,最近Twitter上刮起了一阵编程语言使用历史的风潮. 连图灵奖得主.CNN之父-- Yann LeCun 也参与进来了. 他自曝使用C语言时间最长 ...
- [转]MIDI常识20条
原文链接:http://www.midifan.com/modulearticle-detailview-488.htm Keyboard杂志老资格编辑Jim Aikin在纪念MIDI诞生20的时候发 ...
- [日常]蒟蒻的高一生活 Week 1~3
博主在三周前成功晋级为高中生OwO终于不再是假的HZOIer感受一波HZ的真正生活...(然而实际上级部不少监督一直没启动23333) (然而三周过去好多事情都忘了QAQ瞎写好了(逃)) Week 1 ...
- P2614 计算器弹琴
题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilibili.com/vide ...
- 洛谷 P2614 计算器弹琴
P2614 计算器弹琴 题目描述 总所周知,计算器可以拿来干很多它本不应该干的事情,比如写作文.(参看洛谷P2549) 小A发现了一个计算器的另一个隐藏功能——弹琴. http://www.bilib ...
- Javascript规范
本文地址: http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语 ...
- 引爆你的Javascript代码进化
转自:http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语言的理 ...
- 选择Asp for javascript,非.net。
写Web类型的程序我使用过的服务器端语言有C#和Python.PHP稍Copy过几段代码,Asp很早听说过.C#我主要用来写Web服务比较多,C#这种强类型语言写Web不太爽,特别构造复杂的JSON数 ...
随机推荐
- 复习宝典之Maven项目管理
查看更多宝典,请点击<金三银四,你的专属面试宝典> 第二章:Maven项目管理 Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配 ...
- js新开窗口避免浏览器拦截解决方案
Ajax回调函数中,打开新窗口解决方案 var w = window.open(); $.post("GetHomToTestPaper", {homeworkName:homew ...
- 常用关于时间的一些设置。获取当前时间后30天;判断时间段一年内;Date转String,String转Date
//获取当前时间后30天(之前也可),天数不限可修改1 var data = new Date(); var date1 = newe Date(date); date2 = date1.se ...
- 开发和调试第一个 LLVM Pass
1. 下载和编译 LLVM LLVM 下载地址 http://releases.llvm.org/download.html,目前最新版是 6.0.0,下载完成之后,执行 tar 解压 llvm 包: ...
- Python学习 :正则表达式
正则表达式 python 使用正则表达式(re)来进行匹配引擎搜索 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串” 关于正则表达式 ...
- python教程(二)·条件语句
条件语句一般用来判断给定的条件是否成立,根据结果来执行不同的代码,也就是说,有了条件语句,才可以根据不同的情况做不同的事,从而控制程序的流程. 布尔类型 前面说到数据类型的时候,其中有一种叫 &quo ...
- 我和Python的Py交易》》》》》》 命名空间的小弟作用域
命名空间的小弟作用域 在这要明确一个观点,在Python中万物皆对象,而变量指向的就是对象. 变量可以是 类名,函数名,储存数据的变量…… 对象可以是 类 ,被封装的一段代码(函数),数据…… 命名 ...
- ant-design form
表单配置 示例代码 import { Form } from 'antd'; const FormItem = Form.Item; class NormalLoginForm extends Rea ...
- 关于Json.dumos中的ensure_ascii
在使用json,dumps时,当需要输出中文时,需要在后面添加 ensure_ascii = Fasle 因为json.dumps 序列化时,默认对中文使用的是 ascii 编码,添加后才能输出中文 ...
- P2664 树上游戏
P2664 树上游戏 https://www.luogu.org/problemnew/show/P2664 分析: 点分治. 首先关于答案的统计转化成计算每个颜色的贡献. 1.计算从根出发的路径的答 ...