MIDI通信协议-数据字节:找到中央C(音名:C4)
MIDI通信协议 之 MIDI数据字节:找到中央C(音名:C4)
- 背景
- 找到中央C
引用自维基百科
由符合基本音阶的音程结构所构成的音列的音高位置,就叫作调。
调的命名建立在主音的基础上,如由7个自然音级从C开始按顺序排列的是就C调。
不同的调一般用乐谱开头谱号后标明的调号来区别,不同的调运用到音乐作品中的具体形式就是各种调式。
【修订记录】
1、20210810,修订声音值的错误
2、20210813,修订规律说明
背景
MIDI协议将任意一个旋律乐器音色的音域划分为128级,范围∈[0,127],声音的频率分布遵守十二平均律。主要的听觉区别在于基音频率的不同。例如,A4=440Hz(当前的国际约定),A3=220Hz(,这两个音相差一个八度)。
找到中央C
那么,我们要如何找到中央C(音名:C4)呢?
1、测音用的是钢琴调音APP;然后操作MIDI乐器(MIDI软、硬音源)播放声音,当APP内显示声音为C4时,记录下MIDI音高数值。试听音色为平台钢琴。
测得:Pitch_C4 = 60
2、切换其他音色,重复进行测试。
测得:大多数旋律乐器音色的C4都是60。
然后,根据自然大调的音阶,有如下代码:
#define B3 59#define C4 60 //中央C
#define D4 62
#define E4 64
#define F4 65
#define G4 67
#define A4 69 //A4-频率440Hz
#define B4 71#define C5 72
这样的声音分布,对应的是钢琴键盘上 以中央C为第一音的自然大调,音程为:全全半全全全半。
MIDI通信协议-数据字节:找到中央C(音名:C4)相关推荐
- MIDI通信协议-数据字节:GM1打击乐器音色库(带乐器中文名称)
/*General MIDI Level 1 打击乐器对照表在MIDI通道10上,下列每一种打击乐都能发出一种独特的音色.GM1打击乐只包含下列这些乐器.只要支持GM标准就一定支持这些乐器.虽然一些厂 ...
- MIDI通信协议(翻译)
MIDI通信协议 概述 MIDI命令字节 MIDI通道 MIDI数据字节 原文:https://blog.csdn.net/weixin_43572492/article/details/849666 ...
- node 16位 转24位_C代码实现16位和32位数据字节序转换
点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 每天给自己一个存在的意识,这样才会有一颗认真的心. 文 章 导 读 今天给大家用C代码实现下大小端字节序的转换代码,感谢的小伙伴可以拿下来撸一 ...
- 串口数据字节位的理解
# STM32F4xx系列的MCU的UART数据字节组成如下图 # 发送数据做如下图示,data byte MSB 与 Parity 重合 # 先刨去 Parity bit,分析 LSB ~ MSB ...
- 序列化解决方案,就是采用二进制通信协议(数据报文格式)
前言 所谓的序列化解决方案,就是对象和二进制互相转换的解决方案. 为什么要采用二进制呢?这里有几个点要理解清楚. 1.应用程序里的数据是对象 2.网络传输的过程中一直是二进制 不管有没有进行对象和二进 ...
- 旺季选品逻辑:用数据思维找到潜力爆款
年末旺季来临,如果利用数据思维找到潜在爆款?深耕亚马逊精品品类.拥有大爆选品实操及培训经验的Jungle Scout 资深培训专家Lancy Ye ,结合最新的消费趋势以及调研数据为大家讲解多维度选品 ...
- Matlab中使用实时编辑器任务清理杂乱数据并找到极值
目录 填充缺失数据 填充离群值 平滑处理数据 找到极值 生成代码 可以使用实时编辑器任务序列以交互方式预处理数据,在每个步骤可视化数据.此示例使用四项任务来清理有缺失值和离群值的含噪数据,以便识别局 ...
- c语言中什么运算符可以求出数据字节数,C语言的数据类型及其运算符
一.数据类型 (一).变量与常量 1.变量 (1).定义:其值在其作用域内可以改变的量称为变量.一个变量应该有一个名字,在内存中占据一一定的存储空间.变量在使用前必须要定义,每个变量都有自己的地址.变 ...
- 服务器数据通信协议,数据通信协议规程.doc
数据通信协议规程 PAGE PAGE 19 数据通信协议规程 篇一:多机通信协议规范波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于其内部有较大的行缓冲区,所以可以按高达24 ...
最新文章
- uploadhandler.php,WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
- HTML5本地存储IndexedDB基础使用
- C# WinForm中 获得当前鼠标所在控件 或 将窗体中鼠标所在控件名显示在窗体标题上...
- LINQ系列:LINQ to ADO.NET概述
- JAVA多线程之先行发生原则
- C#LeetCode刷题-二分查找​​​​​​​
- 中国联通自主5G手机品牌U-MAGIC首款旗舰产品将于3月28日发布
- 「CSDN 2020年度博客之星」总榜单在此揭晓
- 32muduo_net库源码分析(八)
- android wchar t 中文,Android没有真正的wchar_t吗?
- C# Asp.net 制作一个windows服务
- git操作时:遇到提示Unable to create ‘D:/xxx/.git/index.lock‘: File exists.的解决办法解决方案
- xposed框架在分机安装失败_pokemon go 和 虚拟gps
- 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
- 1一10到时的英文单词_1英语(1到10的英语单词)
- 鸿蒙系统的诗,苏轼诗词介绍 苏轼《,奥特曼名字大全,鸿蒙系统年底问世,,江城子》有哪几首词?...
- css涟漪光圈扩散_CSS3动画之:水波涟漪般的定位样式
- 机器学习 —— 周志华
- 【EARLIER/EARLIEST函数】引用不存在的更早的行上下文 报错解决
- 【正点原子Linux连载】第四十一章 嵌入式Linux LED驱动开发实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0