Linux c语言 beep,用Beep()函数来实现c语言编写歌曲
用Beep()函数来实现c语言编写歌曲Beep()函数是一个可以控制扬声器发出提示音的函数,包含在windows.h内.实际上,所有用到Sleep()函数的地方,都可以用这个,待后面细细说来。
要准备什么?一首歌的所有音符所对应的音高,音值。
将这些信息转换为音符频率,持续时间
怎样做?首先,让我们知道,什么是音音是由于物体的震动而产生的.在自然界中能为我们人的听觉所感受的音是非常多的,但并不是所有的音都可以作为音乐的材料.在音乐中所使用的音,是人们在长期的生产斗争和阶级斗争中为了表现自己的生活和思想感情而特意挑选出来的.这些音被组成为一个固定的体系,用来表现音乐思想和塑造音乐形象.
音有高低,强弱,长短,音色等四种性质.
音的高低是由于物体在一定时间内振动次数(频率)而决定的.振动的次数多,音则高;振动次数少,音则低.
音的长短是由于音的延续时间的不同而决定的.音的延续时间长,音则长;音的延续时间短,音则短.
音的强弱是由于振幅(音的振动范围的幅度)的大小而决定的.振幅大,音则强;振幅小,音则弱.
音色则由于发音体的性质,形状及其泛音的多少等而不同.
音的以上四种性质,在音乐表现中都是非常重要的,但音的高低和长短则具有更为重大的意义.试以《社会主义好》这首歌为例,不管你用人声来演唱或用乐器来演奏,用小声唱或是大声唱,虽然音的强弱以音色都有了变化,仍然很容易辨认出这支旋律.但是,假如将这首歌的音高或音值加以改变的话,则音乐形象就会立即受到严重的破坏.因此,不管创作也好,演奏演唱也好,对音高和音值应加以特别的注意.
-->>引用自《音乐理论基础》李重光编,第1页在上面提到的四种性质中,无可置疑,最重要的是音高和音值,这正是Beep函数的两个参数.
准备曲谱,这里我不会做赘述,这个是与编程本身相差甚远的知识面,需要扒谱的基础.扒谱可以获取音高,bpm,演奏节拍的学习的信息,学起来也不难,这里推荐,b站善哉君的金坷垃制作技术的P2,P3的一些内容.转为机器可以看懂的程序.#include#include#define K 0//这个频率0,就是不响,作为空拍 //以下的所有表示音符的符号均来自fl studio 14 的fl keys的标注,或许和一般钢琴的标注不一样 。 //只有三个八度的音高频率 ,因为一般人声可以达到的频率大概都会落在这些里面 #define C4 523#define C#4 554#define D4 588#define D#4 623#define E4 660#define F4 700#define F#4 742#define G4 786#define G#4 833#define A4 884#define A#4 936#define B4 992#define C5 1046#define C#5 1108#define D5 1176#define D#5 1246#define E5 1320#define F5 1400#define F#5 1484#define G5 1572#define G#5 1666#define A5 1768#define A#5 1872#define B5 1984#define C6 2092#define C#6 2216#define D6 2352#define D#6 2492#define E6 2640#define F6 2800#define F#6 2968#define G6 3144#define G#6 3332#define A6 3536#define A#6 3744#define B6 3968#define P 125 //折合bpm==120,原bpm为105,此处取了个近似值 typedef struct{int frequency;int duration;
}PU;//以下谱子,正是《社会主义好》的一段 PU t[]={B5,1,B5,2,B5,1,D6,2,B5,5,A5,2,G5,1,E5,2,G5,1,A5,2,B5,2,K,5,B5,1,B5,2,B5,1,D6,2,E6,4,D6,3,E5,1,E5,2,E5,1,G5,2,A5,2,K,5,B5,3,A5,1,G5,3,G5,2,E5,1,D5,3,B5,2,D6,1,B5,2,A5,1,G5,2,A5,1,G5,2,A5,2,B5,3,E5,3,G5,1,D5,2,K,5,B5,2,D6,1,B5,1,D6,2,E6,3,E6,2,D6,1,E6,5,B5,2,A5,3,B5,1,E6,3,D6,3,B5,3,A5,3,K,1,E6,2,D6,1,B5,2,A5,1,G5,4,K,3,E6,2,D6,1,B5,2,A5,1,G5,4,};int main(){ int i; //结构体数组的长度sizeof(t)/sizeof(PU)得到,总结构体数组大小 / 单个结构体大小
for (i=0; i
Beep(t[i].frequency,t[i].duration*P);
}以此类推,你可以搞出来自己想要的曲子,只需要改变谱子,bpm相关的部分,是不是不难呢?
至于为什么它可以一定程度上取代Sleep(),想必也不用我多说,直接用起来吧.
打开App,阅读手记
Linux c语言 beep,用Beep()函数来实现c语言编写歌曲相关推荐
- c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举
数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- C语言过河问题主函数,c,c++_C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因?,c,c++,算法 - phpStudy...
C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因? 这是原题目,后面附上我的代码,刚刚接触DFS,不是很熟练,求教育--谢谢!!!TUT 这是题目,我大概概括一下 用'※'和 ...
- c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc
C语言函数大全-s开头-完整版 C语言函数大全(s开头) 函数名: sbrk 功能: 改变数据段空间位置 用法: char *sbrk(int incr); 程序例: #include#include ...
- c语言第七章函数选择答案,C语言选择题及答案
C语言选择题及答案 21.执行下面的程序后,a的值为( ). main() { int a,b; for(a=1,b=1;a<=10;a++) { if(b%3==l) { b+=3; cont ...
- python语言中不用来定义函数的关键字_Python 语言中用来定义函数的关键字是
Python 语言中用来定义函数的关键字是 答:def 调查问卷采集是数据采集人员通过设计具有针对性的问卷,采用方式进行信息采集 答:以上都是 中国大学MOOC: 突出重点,必须以解决问题为目标.也就 ...
- 不懂函数能学c语言吗,不会函数能学C语言吗
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 反正中学数学这方面基本浪费时间,花几分钟给你们点补课方向. 0.关于数学中函数的定义的演变,没搞过数学史的基本都没什么有效的认识,找英文喂鸡百科 Hist ...
- R语言对数线性模型loglm函数_用R语言进行数据分析:常规和广义线性模型
用R语言进行数据分析:常规和广义线性模型 线性模型 对于常规的多重模型(multiple model)拟合,最基本的函数是lm(). 下面是调用它的方式的一种改进版: >fitted.model ...
- c语言中的正切函数怎么用,C语言中正切的相关函数总结
C语言tan()函数:正切函数头文件: #include tan() 函数用来求给定值的正切值,其原型为: double tan(double x); [参数]x 为给定的弧度值. [返回值]返回 x ...
- 学习c语言必须要会函数吗,学习C语言必须要知道的那些事儿
学习好C语言,首先我们要知道我们应该学习哪些内容,要系统的学习,然后才可以针对性的,有计划,有步骤的学习,不能今天学习这个,明天学习那个,杂乱无章,这样知识也行不行体系,很难学好,下面为小伙伴们梳理一 ...
- C语言怎么实现atan2函数,实例讲解C语言atan和atan2函数
http://anony3721.blog.163.com/blog/static/51197420114962425307/ 使用时需要预包含#include (1)atan(x) 不包括角度的象限 ...
最新文章
- Center OS 离线安装Mysql5.7
- android 自定义span_Android – 为ClickSpan设置自定义可绘制背景
- 超图iServer版本安装和使用入门图解
- package.json、tsconfig.json、node_modules
- 应用市场高速下载以及网页端调起APP页面研究与实现
- 《Office 365开发入门指南》上市说明和读者服务
- 网易校园招聘历年经典面试题汇总:前端 岗
- USACO 6.1.3 Cow XOR
- 安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程
- css+div导航条样式
- 读书日当天冲上销量榜Top1和Top3,来听听携程人写书背后的故事
- ubuntu 安装 sublime
- 【购买ipad 2021记录:Apple官网线上下单,直营店线下取货】
- 微信小程序的图片上传及图片预览功能
- 黑马程序员—-C语言入门十重奏之十renascence
- Laravel 5.5 Eloquent ORM - 快速入门
- 2022-4-7 基于单片机的篮球记分器(LCD1602)(公众号:风吹摇铃 奔赴星海)
- GroovyGrails
- 数字校园建设方案技术建议书
- 客户需要生成中文拼音代码,分享PHP生成代码
热门文章
- JasperReport框架制作PDF报表
- 【待解决的难题】在网页端下载淘宝直播视频
- 输出某区间内的水仙花数
- 基于Java毕业设计疫情状态下的图书馆座位预约系统源码+系统+mysql+lw文档+部署软件
- 学区房和学位房的区别-查查吧深圳学区房地图
- 系统分析师考试---2022年上半年
- 黄金分割线在UI设计中的应用
- linux电视软件如何安装程序,在ubuntu 7.04中安装影视制作软件jahshaka
- Cannot download sources Sources not found for
- 2008游戏服务器系统下,Linux系统下玩经典游戏 CS1.5服务器架设