文章目录

  • 前言
  • 一、FF 58 04 拍号
  • 二、音符开指令
  • 三、音符关指令
  • 四、音轨结束标志

前言

在博客 【BLE MIDI】MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI 文件头长度 | MIDI 文件格式 | MIDI 轨道个数 | 基本时间 ) 分析了 MIDI 文件的前 0 ~ 13 个字节 ;

4D 54 68 64 00 00 00 06 00 00 00 01 01 E0

在博客 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 中 , 分析了轨道中的如下选中信息 ,

4D 54 72 6B 00 00 00 25 00

【BLE MIDI】MIDI 文件格式分析 ( FF 03 轨道名称 | FF 51 03 四分音符时长 ) 博客分析了 轨道名称 , 以及 四分音符时长 指令 ;

一、FF 58 04 拍号


FF 58 04 04 02 18 08 : 39 ~ 45 字节 , 拍子记号 ;

FF 58 04 是拍子记号的标志 ;

04 02 18 08 分别表示 :

  • 04 : 拍子记号的分子 ;
  • 02 : 拍子记号分母标志 , 这里的值是 2 的次幂值 , 如当前设置的值是 2 , 则拍子记号的分母是 22=42^2 = 422=4 , 分母是 4 ;
  • 18 : 每个 MIDI 时钟包含的 tick 数 ; 标准值是 24 , 一般不会改变 ;
  • 08 : 每 24 个 MIDI 时钟 , 对应的 32 分音符的数目 ; 标准值是 8 , 一般不会改变 ;

后面的 00 是 delta-time , 与下一个 midi 事件间隔的 tick 数 ;

delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;

二、音符开指令


90 3C 64 : 47 ~ 49 字节 , 音符开指令 ;

90 是音符开标志 ;

3C 是音符音高 60 , 取值范围 0 ~ 127 ;

64 是音符的力度值 , 取值范围 0 ~ 127 ;

后面的 8E 7E 是 delta-time , 与后面的指令间隔的 tick 数 ;

delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;

三、音符关指令


80 3C 40 : 52 ~ 54 字节 , 音符关指令 ;

80 是音符开标志 ;

3C 是音符音高 60 , 取值范围 0 ~ 127 ;

40 是音符的力度值 , 取值范围 0 ~ 127 ;

后面的 00 是 delta-time , 与后面的指令间隔的 tick 数 ;

delta-time 参考 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 ) 四、delta-time 间隔 博客章节 ;

四、音轨结束标志


FF 2F 00 : 56 ~ 58 字节 , 音轨结束标识 ;

至此 , 整个 midi 文件解析完毕 ;

【BLE MIDI】MIDI 文件格式分析 ( FF 58 04 拍号 | 音符开指令 | 音符关指令 | 音轨结束标志 )相关推荐

  1. 【BLE MIDI】MIDI 文件格式分析 ( FF 03 轨道名称 | FF 51 03 四分音符时长 )

    文章目录 前言 一.FF 03 轨道名称 二.FF 51 03 四分音符时长 前言 在博客 [BLE MIDI]MIDI 文件格式分析 ( MIDI 文件头解析 | MIDI 文件头标识 | MIDI ...

  2. 【BLE MIDI】MIDI 文件格式分析总结 ★★★

    文章目录 一.MIDI 文件简介 二.MIDI 文件头解析 1.MIDI 文件头标识 2.MIDI 文件头长度 3.MIDI 文件格式 4.MIDI 轨道个数 5.基本时间 三.MIDI 轨道分析 四 ...

  3. 【BLE MIDI】MIDI 文件格式分析 ( MIDI 轨道分析 | MIDI 轨道头 | MIDI 轨道长度 | delta-time 间隔 )

    文章目录 前言 一.MIDI 轨道分析 二.MIDI 轨道头 三.MIDI 轨道长度 四.delta-time 间隔 前言 上一篇博客 [BLE MIDI]MIDI 文件格式分析 ( MIDI 文件头 ...

  4. 【BLE MIDI】MIDI 时间标志分析 ( 音符速度设置事件 | 拍号设置事件 | 基本时间 - 每个四分音符有多少 tick 或 pulse | 节拍时值计算 | 小节时值计算 )

    文章目录 一.从 MIDI 文件中可以获取的信息 1.音符速度设置事件 2.拍号设置事件 3.文件头基本时间 二.节拍时值计算 三.小节时值计算 一.从 MIDI 文件中可以获取的信息 MIDI 时间 ...

  5. MIDI文件格式分析(补充和勘误)

    MIDI文件格式分析(补充和勘误) 本文是对<MIDI文件格式分析>博客链接的一点补充: 原文复制 vim编辑二进制文件的方法 文中制作的midi文件内容和改动 原文复制 MIDI文件属于 ...

  6. MIDI 文件格式分析

    MIDI 文件属于二进制文件,这种文件一般都有如下基本结构: 文件头+数据描述 文件头一般包括文件的类型,因为 Midi 文件仅以.mid 为扩展名的就有 0 类和 1 类两种,而大家熟悉的位 图文件 ...

  7. MIDI文件格式分析

    MIDI文件属于二进制文件,这种文件一般都有如下基本结构: 文件头+数据描述 文件头一般包括文件的类型,因为Midi文件仅以.mid为扩展名的就有0类和1类两种,而大家熟悉的位图文件的格式就更多了,所 ...

  8. MIDI二进制文件格式简析

    MIDI二进制文件格式简析 本文主要参考自Official MIDI Specifications Chunks 每个MIDI文件由一系列chunk组成,每个chunk的前四个字节为魔数(magic ...

  9. 【数据压缩】WAV文件和AVI文件格式分析

    一.WAV文件和AVI文件格式简介 WAV的英文全称是Waveform Audio File Format ,它采用 RIFF (Resource Interchange File Format)文件 ...

最新文章

  1. Javascript使用三大家族和事件来DIY动画效果相关笔记(一)
  2. java压缩流的用法_Java对压缩包的操作(解压缩)
  3. U盘的挂载和卸载(也可以查看指令篇)
  4. 全局组、域本地组、通用组到底有什么区别?它们之间的关系如何?
  5. C++编程思想:C++string
  6. PAT甲级题解-1100. Mars Numbers (20)-字符串处理
  7. hdu 1542 Atlantis (线段树+扫描线)
  8. 《Android开发秘籍(第2版)》——第1.4节Android设备间的硬件差异
  9. 视频+课件| 视觉引导系列课程-绪论
  10. android源码学习之源码编译并nexus s真机刷机
  11. 【Python游戏】Python实现一个简易版本的阴阳师游戏 | 附带源码
  12. 19.丑数(UVa136)
  13. 运用HTML5进行文字排版详解
  14. 计算机网络ping用法,新手入门:ping命令的用法解释
  15. 利用shell脚本,实现腾讯云DNSPod进行DDNS动态域名解析ipv6地址
  16. 【机器学习PAI实践十一】机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码
  17. 凸显计算机学院特色的剧本,高职院校非计算机专业计算机课程的教学改进策略探析 - 计算机教育论文大全 - 小品台词 - 中国国际剧本网...
  18. JAVA的IO/NIO?
  19. WEB Workers 介绍
  20. 飞机下滑波束导引系统设计

热门文章

  1. oracle启动服务和监听命令
  2. Tempter of the Bone(DFS + 奇偶剪枝,好题)
  3. phpmyadmin 安装
  4. 美国物流管理协会更名标志全球物流进入供应链时代
  5. 【Android Studio快捷键】之导入对应包声明(import packages)
  6. Eclipse+Tomcat7.0+MySQL 连接池设置
  7. HDOJ 1069 Monkey and Banana
  8. 探讨PHP获取checkbox值
  9. 21.使用委托表达回调
  10. MySQL中实现Oracle里面 rank()over ( PARTITION BY ORDER BY) 分类分组功能