蜂鸣器奏乐

news2024/9/20 0:53:19

一、粗略了解简谱

拍号:如图,“2”表示一个小节有2拍,“4”表示4分音符为一拍

终止线表示歌曲结束

注意:以下音符都按以四分音符为一拍计算拍数

四分音符:

唱一拍

二分音符:

某一个音右边有一个小横线,这个音唱两拍

全音符

某一个音右边有4个小横线,这个音唱四拍

八分音符

下面有一个横线的,这个音唱半拍

十六分音符

某个音下面有两个横线,这个音唱四分之一拍

附点音符

休止符

三连音

明示三连(bushi)

连音线

延音线连接的是相同的音符,功能和“” 一样。演唱圆滑线下面的音符时不能换气

反复记号

反复记号表示唱到反复记号处在唱一遍才结束

想这种的,演唱到第二个反复记号这里再回到第一个反复记号这儿,然后唱到第一个小房子这儿时跳到第二个小房子这儿。也就是说第一个小房子里面的是第一遍唱的,第二个小房子里面的是第二遍唱的。

二、把简谱转成代码

一、确定音阶对印频率

#define STOP 0
#define L_DO 262
#define L_RE 294
#define L_M  330
#define L_FA 349
#define L_SO 392
#define L_LA 440
#define L_SI 494
#define M_DO 523
#define M_RE 587
#define M_M  659
#define M_FA 698
#define M_SO 784
#define M_LA 880
#define M_SI 988
#define H_DO 1046
#define H_RE 1175
#define H_M 1318
#define H_FA 1397
#define H_SO 1568
#define H_LA 1760
#define H_SI 7967

2.乐谱处理

以最简单的歌曲为例:

uint16_t twinkle[] = {
    M_DO,M_DO,M_SO,M_SO,  M_LA,M_LA,M_SO,M_SO, 
    M_FA,M_FA,M_M, M_M,   M_RE,M_RE,M_DO,M_DO,
    M_SO,M_SO,M_FA,M_FA,  M_M, M_M, M_RE,M_RE,
    
    M_SO,M_SO,M_FA,M_FA,  M_M, M_M, M_RE,M_RE,
    M_DO,M_DO,M_SO,M_SO,  M_LA,M_LA,M_SO,M_SO,
    M_FA,M_FA,M_M ,M_M,   M_RE,M_RE,M_DO,M_DO,
};

GUI_Audio au = {
    .freqs = twinkle,
    .length = sizeof(freqs)/sizeof(uint16_t),
    .space = 250
};

如图:space表示一拍间隔,单位毫秒,音频数据存储在数组中。

来个难一点的

uint16_t freqs2[] = {
    STOP,STOP,  STOP,STOP,  M_SO,M_SO,

    M_LA,M_LA,  M_SO,M_SO,  H_DO,H_DO,
    M_SI,M_SI,  M_SI,M_SI,  M_SO,M_SO,
    M_LA,M_LA,  M_SO,M_SO,  H_RE,H_RE,
    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,
    H_SO,H_SO,  H_M, H_M,   H_DO,H_DO,
    M_SI,M_SI,  M_LA,M_LA,  M_LA,M_LA, 
    STOP,STOP,  STOP,STOP,  H_FA,H_FA,
    H_M, H_M,   M_DO,H_DO,  H_RE,H_RE,     

    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,

    M_LA,M_LA,  M_SO,M_SO,  H_DO,H_DO,
    M_SI,M_SI,  M_SI,M_SI,  M_SO,M_SO,
    M_LA,M_LA,  M_SO,M_SO,  H_RE,H_RE,
    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,
    H_SO,H_SO,  H_M, H_M,   H_DO,H_DO,
    M_SI,M_SI,  M_LA,M_LA,  M_LA,M_LA, 
    STOP,STOP,  STOP,STOP,  H_FA,H_FA,
    H_M, H_M,   M_DO,H_DO,  H_RE,H_RE,   

    H_DO,H_DO,  H_DO,H_DO,  M_SO,M_SO,

    H_RE,H_RE,  H_RE,H_RE,  H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   H_DO,H_DO,

    H_RE,H_RE,  H_M, H_M,   H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   M_SO,M_SO,
    H_RE,H_RE,  H_RE,H_RE,  H_FA,H_FA,
    H_M, H_M,   H_M, H_M,   H_DO,H_DO, 
    H_RE,H_RE,  H_DO,H_DO,  M_SI,M_SI,
    H_DO,H_DO,  H_DO,H_DO,  STOP,STOP,
};

GUI_Audio au2 = {
    .freqs = freqs2,
    .length = sizeof(freqs2)/sizeof(uint16_t),
    .space = 250
};

参考:

第二课 认识四分音符_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2092221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenAI GPT3 Search API not working locally

题意:"OpenAI GPT-3 搜索 API 在本地无法工作" 问题背景: I am using the python client for GPT 3 search model on my own Jsonlines files. When I run the code on Google Colab Notebook for test purposes, it works fine and returns …

文件上传漏洞详解(持续更新…)

第一关 步骤一,打开第一关先点击浏览上传一个jpg格式的图片 步骤二,打开BP修改jpg为php然后放包 步骤三,右键打开图像 成功解析 步骤四,打开蚁剑 第一关还是蛮简单的 第二关 步骤一,打开第二关先点击浏览上传一个j…

leetcode637. 二叉树的层平均值,广度优先搜索BFS

leetcode637. 二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。…

跑通llama-factory

1.在ubuntu下安装环境 git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e “.[torch,metrics]” pip install --no-deps -e . 在本地windows,打开http://0.0.0.0:7863/,总是显示无法打开界面。 之后在…

!!学习整理知识模块——关于【如何本地搭建Whisper语音识别模型】/请按需收藏!!

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

经验风险最小化和极大似然估计的关系

一、经验风险定义 给定一个训练数据集 T { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T{(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},模型f(X)关于训练数据集的平均损失称为经验风险(Empirical…

冻死你都觉得简单

小说大纲 标题:《学霸的豪门对决》 背景设定: 两个家族在商业界拥有举足轻重的地位,但因为历史原因,两家长期处于竞争状态。主角们在顶级私立学校就读,既是学霸也是家族的继承人。 主要人物: 男主角&a…

【前端开发必备小技巧】前端代码规范Vue篇

文章目录 🟢 前端代码规范🟢 一、前端代码规范Vue篇👉1、Vue编码基础👉1.1、组件规范👉1.2、模板中使用简单的表达式👉1.3、指令都使用缩写形式👉1.4、 标签顺序保持一致👉1.5、必须…

<数据集>车辆识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:3002张 标注数量(xml文件个数):3002 标注数量(txt文件个数):3002 标注类别数:21 标注类别名称:[ambulance, army vehicle, auto rickshaw, bicycle, bus, car, garba…

互联网平台大模型网络架构设计

字节跳动:大模型网络实践分享 自2019年起,字节跳动公司便开始着手白盒项目。2020年,推出了首款接入交换机——25G型号,随后逐步实现软硬件的自主研发。在当前一代产品中,已经实现了100G接入、25.6T400G互联&#xff0c…

SprinBoot+Vue实验室考勤管理小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…

信息学奥赛一本通/openjudge Crossing River

题目 一本通题目入口 openjudge题目入口 (注:由于一本通题面描述的可能有些欠缺,所以这里的题面采用openjudge英文翻译后的题面) 题目分析 首先我们来看样例,为什么样例的结果是17呢?首先观察,“5”和“…

node环境安装、vue-cli搭建过程、element-UI搭建使用过程

vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速 前端项目架…

Spark-Job启动、Stage划分

一、上下文 《Spark-driver和executor启动过程》详细分析了driver和executor的启动,此时资源已经给我们分配好了,且Application也已经注册完成。下面我们就来看看Spark是如何启动job并根据DAG来划分Stage的 二、Job启动 Spark RDD中的算子分为Transfo…

leetcode算法题之 K 个一组翻转链表

照我说这道题其实是披着困难皮的中等题目,问题如下: 题目地址 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍…

深入解析多商户商城系统源码:如何开发直播商城小程序?

本篇文章,小编将深入解析多商户商城系统源码的关键技术,并详细探讨如何基于这些源码开发一个功能完善的直播商城小程序。 一、多商户商城系统源码的核心构架 多商户商城系统源码的核心在于其能够支持多个商户独立运营,但同时又在一个统一的平…

(转载)内存分配器101——写一个简单的内存分配器

文章目录 前提正文Malloc()free()calloc()realloc() 前提 之前学习过手写一个简单的内存分配器,原文是英文的,当初学习的时候便将英文翻译为中文的,方便阅读,当然和原文相比少了点味道。今天整理资料的时候看到了自己的翻译&…

为什么越来越多的助贷中介公司做债务重组?

大家有没有注意到个现象?现在越来越多的助贷中介公司和专门做债务重组的公司一起“合作”了。有的是接了单转手给重组公司,有的则是亲自下场,用自有资金做起了重组的事情。为什么会这样呢?好端端的贷款中介不做,偏要蹚…

RabbitMQ练习(Remote procedure call (RPC))

1、RabbitMQ教程 《RabbitMQ Tutorials》https://www.rabbitmq.com/tutorials 2、环境准备 参考:《RabbitMQ练习(Hello World)》。 确保RabbitMQ、Sender、Receiver容器正常安装和启动。 rootk0test1:~# docker run -it --rm --name rab…

前端内存泄露案例与解决方案

什么是内存泄漏? 内存泄露(Memory Leaks):是指应用程序已经不再需要的内存,由于某种原因未返回给操作系统或者空闲内存池(Pool of Free Memory)。 内存泄露可能带来的问题:变慢、卡…