midi 文件解析,无法识别的事件类型

2024-01-11

我在尝试解析 MIDI 文件时遇到问题。我正在尝试解析 frets on fire 游戏使用的注释文件(它只使用 midi 文件,所以我认为这无关紧要)如果你们中的任何人熟悉它,我遇到的问题是一般的 midi 问题。我有一个文件,其中有一个名为吉他部分的轨道,十六进制,在十六进制编辑器中查看如下:

4D 54 72 6B 00 00 1E 74 00 FF 03 0B 50 41 52 54 20 47 55 49 54 41 52 A9 20 90 61 40 9A 20 61 00 83 60 63 40 BC

我的程序对此进行了如下解析:

4D M
54 T
72 R
6B K
00 00 尺寸
1E轨道部分
74 -- >
本次活动时间00
FF 事件类型(这是元)
03 元事件类型
0B 数据长度
50 "P"
41 "A"
52 "R"
54 "T"
20 " "
47 "G"
55 "U"
49 "I"
54 "T"
41 "A"
52 "R"
A9 事件时间(可变长度)10101001
20 次事件(长度可变)00100000
90 事件,通道(非元)1001=注释,通道=0000
61 注意有 2 个参数,这是第一个
40 这是第二个
9A可变时间10011010
20个可变时间00100000

这就是我的问题所在,没有事件类型为0x6的事件,因为0x61是01100001,我们必须假设它是非元,因此事件类型应该是6(0110),通道是(0001),但是midi规范不包含此事件的标识。我在此之后添加了一些字节,以防它们在某种程度上相关,但显然此时我的程序到达下一个字节,无法识别该事件并崩溃。
61
00
83
60
63
40
BC

如果有人认为他们可以阐明我的解析逻辑出了问题的地方,我将非常感激,对格式感到抱歉,我想不出更好的方法来说明我的问题。

我一直在使用这个网站:http://www.sonicspot.com/guide/midifiles.html http://www.sonicspot.com/guide/midifiles.html作为参考,到目前为止它还没有让我出错。我认为这可能与着火的烦恼直接相关,但似乎并非如此,因为我下载了游戏的另一个注释文件,并且该文件不包含此事件。

提前致谢。


它被称为运行状态 http://home.roadrunner.com/~jgglatt/tech/midispec/run.htm。如果事件与前一个事件类型相同,则可以消除 MIDI 状态字节。因此,如果计时信息后的第一个字节

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

midi 文件解析,无法识别的事件类型 的相关文章

  • 构建一个简单的解析器,能够使用 PyParse 解析不同的日期格式

    我正在构建一个简单的解析器 它接受如下查询 显示 fizi 从 2010 年 1 月 1 日到 2006 年 2 月 11 日的提交 到目前为止我有 class QueryParser object def parser self stmn
  • Parse::RecDescent 语法未按预期工作

    我所能做的就是 STRING PARAMS VARIABLE 和 FUNCNAME FUNCTION 似乎有问题 但我就是看不到它 use strict use Parse RecDescent RD ERRORS 1 Make sure
  • iOS 解析如何通过 URL 下载文件

    我正在将 parse 用于我的聊天应用程序 当我上传文件时 我保留该 url 并将该 url 发送给其他用户 然后其他用户可以通过该 URL 下载文件 这是我上传文件的代码 void uploadBlob NSData blob fileN
  • 将 Java 字符串转换为 sql.Timestamp

    收到以下格式的字符串 YYYY MM DD HH MM SS NNNNNN 时间戳来自 DB2 数据库 我需要将其解析为 java sql Timestamp 并且不丢失任何精度 到目前为止 我一直无法找到现有的代码来解析远至微秒的数据 S
  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 正则表达式,如果模式在引号中则忽略模式

    编写一个非常简单的脚本解析器作为学校项目的一部分 虽然这不是必需的 但我很好奇是否可以仅使用正则表达式来完成 语法类似于 ASP 其中脚本以 结尾 它只支持一个命令 pr 与echo或Response Write相同 现在我正在使用这个正则
  • LL(1) 解析器中 FIRST 和 FOLLOW 集的用途?

    谁能向我解释一下 LL 1 语法中如何使用 FIRST 和 FOLLOW 我知道它们用于语法表构建 但我不明白如何使用 在 LL 1 解析器中 解析器的工作方式是维护一个工作空间 该工作空间最初播种到开始符号 后跟字符串结束标记 通常表示为
  • C 的二进制流解析库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您能推荐一个经过验证的 C 二进制流解析库吗 如果它能像 C 语言所允许的那样具有声明性 那就太好了
  • 自动将 JSON 对象映射到 Ruby 中的实例变量

    我希望能够自动将 JSON 对象解析为实例变量 例如 使用此 JSON require httparty json HTTParty get http api dribbble com players simplebits gt shots
  • 用 C/C++ 编写的通用代码补全框架

    有没有用 C C C 11 编写的框架用于编写代码补全工具 或者也许有一些库允许 Java 或 C 的代码完成 也是用 C 编写的 我正在用 C 编写我的自定义 IDE 用于 Java 而不仅仅是 Java 开发 我想以最好的方式为其添加代
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • Preg在html标签之间匹配php中的文本

    您好 我想在 PHP 中使用 preg match 从 html 文档中解析出以下内容中的 所需文本 p class review Desired text p 通常我会使用 simple html dom 来做这样的事情 但在这种情况下它
  • 在Python中比较字符串的最快方法

    我正在用 Python 编写一个脚本 该脚本将允许用户输入一个字符串 该字符串将是指示脚本执行特定操作的命令 为了便于讨论 我会说我的命令列表是 lock read write request log 现在 我希望用户能够输入 log 一词
  • 使用 Pandas 解析时避免 Excel 的科学记数法舍入

    我有一个自动生成的 Excel 文件 其中偶尔包含非常大的数字 例如135061808695 在 Excel 文件中 当您单击单元格时 它会显示完整的数字135061808695然而 在视觉上 使用自动 常规 格式 数字显示为1 35063
  • .NET 的 C 代码解析器

    有谁知道 NET 的 C 解析器库吗 我打算将 C 代码解析为某种形式的对象图 这样我就可以将其转换为不同的语言 ANTLR 可以做你想做的事 它有一个 C 预处理器和 ANSI C 语法 https github com antlr gr
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if
  • 解析 XML 标签不匹配时出错

随机推荐

  • 如何将 varchar 转换/转换为日期?

    我有一个数据类型的日期列varchar mm dd yyyy 在 MySQL 5 1 中 如何将其转换为 DATE 这是我到目前为止所拥有的 SELECT id date FROM tableName WHERE CAST SUBSTRIN
  • 画布圆圈看起来模糊

    这是对一些过时或不同问题的更新 例如 画布上的绘图和线条一样模糊 https stackoverflow com questions 8696631 canvas drawings like lines are blurry 如何修复 HT
  • 如何防止我的应用程序出现多个实例

    我发现了 Visual Basic 中的一个错误 在实践中 完成我的应用程序后 单击正常启动的可执行文件 但如果我再次单击可执行文件 exe 会莫名其妙地打开第二个窗口 不必要地启动两个进程 我想知道是否有一种方法 也许在某些设置中 仅当您
  • Google Sheet 插件 onInstall() 和 onOpen() 不起作用

    我正在尝试为 Google Sheets 创建一个附加组件 但运行时出现问题 该附加组件使用以下命令在 附加组件 菜单中创建附加菜单onOpen Google Drive API 的功能 但它不这样做onInstall 所以我被告知添加以下
  • Chrome 的词典自动完成扩展? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试用谷歌搜索这个 但我没有任何运气 chrome 有拼写自动完成扩展吗 就像在 Eclipse 中输入时一样 System out pri 然后
  • WSDL 函数具有相同的名称。如何选择呢?

    我将提供程序 wsdl 与 SoapClient 一起使用 但是当我使用命令 getFunctions 时 我得到如下内容 method1Rsp service method1Req parameters method2Rsp servic
  • Django 和动态生成的图像

    我的 Django 应用程序中有一个视图 它使用 PIL 自动创建图像 将其存储在 Nginx 媒体服务器中 并返回一个带有指向其 url 的 img 标签的 html 模板 这工作正常 但我注意到一个问题 我每访问此视图 5 次 其中就有
  • 在主题内扩展 Magento 小部件布局

    我使用 Magento 2 的内置目录产品列表小部件将特色产品小部件添加到网站的主页 我希望做的是扩展在中找到的小部件的布局文件vendor magento module catolog widget etc widget xml这样我就可
  • 对于简单到中等复杂度的新项目,我应该选择 MvvmLight 还是 MvvmCross? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我试图找到 MVVMlight 和 MVVMCrossthose 框架之间的主要区别 我计划为 Android 和 Windows Phone
  • 如何将树的结果传递或通过管道传输到Powershell?

    如何通过文件数组找到tree 有人居住吗 posh gt posh gt tree Get Item Directory home nicholas powershell Mode LastWriteTime Length Name d 2
  • css 文件中字体的相对文件路径

    我有一个在标题中引用的样式表 除了以下特定代码之外 所有 css 都可以在其中运行 font face font family icomoon src url fonts icomoon eot hsw0h3 src url fonts i
  • NSDateFormatter 具有自定义格式的相对日期格式

    所以我的目的是列出如下所示的日期 Today August 28 Tomorrow August 29 Friday August 30 etc 问题是我似乎只能如此接近 When I setDoesRelativeDateFormatti
  • Google_Service_OAuth2 是 PHP 中的“未定义类型”

    我正在尝试使用 Google Sign in 登录 但它显示 Google Service OAuth2 为未定义类型 我找到了这个堆栈帖子 Google Service Oauth2 未定义 https stackoverflow com
  • Spark 中的分区和分桶有什么区别?

    我尝试优化两个 Spark 数据帧之间的联接查询 我们称它们为 df1 df2 在公共列 SaleId 上联接 df1非常小 5M 所以我在spark集群的节点之间广播它 df2 非常大 200M 行 所以我尝试通过 SaleId 对其进行
  • BERT 中 NER 的正确格式化数据应该是什么样子?

    我正在使用 Huggingface 的transformers库并希望使用 BERT 执行 NER 我试图找到一个明确的示例 说明如何使用 BERT 正确格式化 NER 的数据 从我发现的论文和评论中 我并不完全清楚 假设我们有以下句子和标
  • 修改C++函数中指针指向的位置

    我一直在修改指针的指针上陷入困境 问题是我不明白为什么我的代码有效 我想做的是修改函数中指针指向的位置 然后在我的主函数中访问该值 我尝试了很多次 这是我让它发挥作用的唯一方法 include
  • Hadoop Nodemanager 和 Resourcemanager 未启动

    我正在尝试在 Ubuntu 13 10 64 位上设置最新的 Hadoop 2 2 单节点集群 操作系统是全新安装的 我尝试过使用 java 6 64 位和 java 7 64 位 按照以下步骤操作后this http raseshmori
  • PHP - Strtotime - 添加时间

    我有这个变量 timestamp strftime Y m d h M S a time 我只是想增加三个小时并重复它 我已经看到了可以执行 60 60 3 方法或硬编码 3 小时 的方法 它可以理解这些单词 获得这个结果的最佳方法是什么
  • 在 ASP.NET Web API 控制器的 nunit 测试中实例化新的 System.Web.Http.OData.Query.ODataQueryOptions

    我有一个 ASP NET MVC4 Web API 项目 其中包含 ApiController 继承控制器 该控制器接受 ODataQueryOptions 参数作为其输入之一 我正在使用 NUnit 和 Moq 来测试该项目 这使我能够从
  • midi 文件解析,无法识别的事件类型

    我在尝试解析 MIDI 文件时遇到问题 我正在尝试解析 frets on fire 游戏使用的注释文件 它只使用 midi 文件 所以我认为这无关紧要 如果你们中的任何人熟悉它 我遇到的问题是一般的 midi 问题 我有一个文件 其中有一个