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数 ...
随机推荐
- shell定时统计Nginx下access.log的PV并发送给API保存到数据库
1,统计PV和IP 统计当天的PV(Page View) cat access.log | sed -n /`date "+%d\/%b\/%Y"`/p |wc -l 统计某一天的 ...
- Elasticsearch 映射操作
一.创建 语法: PUT /索引库名称/_mapping/类型名称 { "properties": { "字段名": { "type": 类 ...
- linux操作之ntsysv
命令nysysv , 提示Command nod found 先在命令行输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin: ...
- 网站漏洞检测之WordPress 5.0.0 系统修复方案
2019年正月刚开始,WordPress最新版本存在远程代码注入获取SHELL漏洞,该网站漏洞影响的版本是wordpress5.0.0,漏洞的产生是因为image模块导致的,因为代码里可以进行获取目录 ...
- Python 爬虫 (三)
#对第一章的百度翻译封装的函数进行更新 1 from urllib import request, parse from urllib.error import HTTPError, URLError ...
- Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
这个题是dp, dp[i]代表以i开始的符合要求的字符串数 j是我们列举出的i之后一个字符串的开始地址,这里的C是组合数 dp[i] += C(j - i - 1, A[i]] )* dp[j]; # ...
- 为什么我要放弃javaScript数据结构与算法(第八章)—— 树
之前介绍了一些顺序数据结构,介绍的第一个非顺序数据结构是散列表.本章才会学习另一种非顺序数据结构--树,它对于存储需要快速寻找的数据非常有用. 本章内容 树的相关术语 创建树数据结构 树的遍历 添加和 ...
- Caliburn.Micro 项目文档(翻译):Screens, Conductors and Composition
原文地址(项目说明文档):[Documentation Screens, Conductors and Composition]http://caliburnmicro.codeplex.com/w ...
- 【LG1975】[国家集训队]排队
[LG1975][国家集训队]排队 题面 洛谷 题解 又是一个偏序问题 显然\(CDQ\) 交换操作不好弄怎么办? 可以看成两次删除两次插入 排序问题要注意一下 代码 #include <ios ...
- 调用bash的时候出现curl command not found
调用bash的时候出现curl command not found 解决办法: apt-get install curl