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)相关推荐

  1. MIDI通信协议-数据字节:GM1打击乐器音色库(带乐器中文名称)

    /*General MIDI Level 1 打击乐器对照表在MIDI通道10上,下列每一种打击乐都能发出一种独特的音色.GM1打击乐只包含下列这些乐器.只要支持GM标准就一定支持这些乐器.虽然一些厂 ...

  2. MIDI通信协议(翻译)

    MIDI通信协议 概述 MIDI命令字节 MIDI通道 MIDI数据字节 原文:https://blog.csdn.net/weixin_43572492/article/details/849666 ...

  3. node 16位 转24位_C代码实现16位和32位数据字节序转换

    点击上方公众号名称关注,获得更多内容 ✎ 编 者 悟 语 每天给自己一个存在的意识,这样才会有一颗认真的心. 文 章 导 读 今天给大家用C代码实现下大小端字节序的转换代码,感谢的小伙伴可以拿下来撸一 ...

  4. 串口数据字节位的理解

    # STM32F4xx系列的MCU的UART数据字节组成如下图 # 发送数据做如下图示,data byte MSB 与 Parity 重合 # 先刨去 Parity bit,分析 LSB ~ MSB ...

  5. 序列化解决方案,就是采用二进制通信协议(数据报文格式)

    前言 所谓的序列化解决方案,就是对象和二进制互相转换的解决方案. 为什么要采用二进制呢?这里有几个点要理解清楚. 1.应用程序里的数据是对象 2.网络传输的过程中一直是二进制 不管有没有进行对象和二进 ...

  6. 旺季选品逻辑:用数据思维找到潜力爆款

    年末旺季来临,如果利用数据思维找到潜在爆款?深耕亚马逊精品品类.拥有大爆选品实操及培训经验的Jungle Scout 资深培训专家Lancy Ye ,结合最新的消费趋势以及调研数据为大家讲解多维度选品 ...

  7. Matlab中使用实时编辑器任务清理杂乱数据并找到极值

    目录 填充缺失数据 填充离群值 平滑处理数据 找到极值 生成代码 ​可以使用实时编辑器任务序列以交互方式预处理数据,在每个步骤可视化数据.此示例使用四项任务来清理有缺失值和离群值的含噪数据,以便识别局 ...

  8. c语言中什么运算符可以求出数据字节数,C语言的数据类型及其运算符

    一.数据类型 (一).变量与常量 1.变量 (1).定义:其值在其作用域内可以改变的量称为变量.一个变量应该有一个名字,在内存中占据一一定的存储空间.变量在使用前必须要定义,每个变量都有自己的地址.变 ...

  9. 服务器数据通信协议,数据通信协议规程.doc

    数据通信协议规程 PAGE PAGE 19 数据通信协议规程 篇一:多机通信协议规范波特率受到限制,所以,一般的串行打印机工作在110波特率,点针式打印机由于其内部有较大的行缓冲区,所以可以按高达24 ...

最新文章

  1. uploadhandler.php,WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
  2. HTML5本地存储IndexedDB基础使用
  3. C# WinForm中 获得当前鼠标所在控件 或 将窗体中鼠标所在控件名显示在窗体标题上...
  4. LINQ系列:LINQ to ADO.NET概述
  5. JAVA多线程之先行发生原则
  6. C#LeetCode刷题-二分查找​​​​​​​
  7. 中国联通自主5G手机品牌U-MAGIC首款旗舰产品将于3月28日发布
  8. 「CSDN 2020年度博客之星」总榜单在此揭晓
  9. 32muduo_net库源码分析(八)
  10. android wchar t 中文,Android没有真正的wchar_t吗?
  11. C# Asp.net 制作一个windows服务
  12. git操作时:遇到提示Unable to create ‘D:/xxx/.git/index.lock‘: File exists.的解决办法解决方案
  13. xposed框架在分机安装失败_pokemon go 和 虚拟gps
  14. 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
  15. 1一10到时的英文单词_1英语(1到10的英语单词)
  16. 鸿蒙系统的诗,苏轼诗词介绍 苏轼《,奥特曼名字大全,鸿蒙系统年底问世,,江城子》有哪几首词?...
  17. css涟漪光圈扩散_CSS3动画之:水波涟漪般的定位样式
  18. 机器学习 —— 周志华
  19. 【EARLIER/EARLIEST函数】引用不存在的更早的行上下文 报错解决
  20. 【正点原子Linux连载】第四十一章 嵌入式Linux LED驱动开发实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

热门文章

  1. 微信机器人_微信聊天消息记录拦截分析
  2. 容灾恢复 | 记一次K8S集群中etcd数据快照的备份恢复实践
  3. 关于数据分析复购率与回购率的定义
  4. c++灵魂科普(1)
  5. 微信文章如何增加阅读率
  6. Excel批量选中表格中所有图片
  7. 前端HTML CSS JavaScipt JQuery
  8. codeblock找不到pthread
  9. Python实现学生管理系统(功能全面)
  10. Android OpenGL ES视频渲染(一)GLSurfaceView