录音/制作/创作 吉他 扩声技术 视频技术 作品展示 生活 信息 更多... | 音频应用专卖店

相信万能的音频,肯定有懂MIDI的计算机高手,帮我看看这里面哪三个数据是音高、时...

( 18 )
12
 
[收藏]
-  第 1 页  -

1340
#1 15-10-30 14:17

相信万能的音频,肯定有懂MIDI的计算机高手,帮我看看这里面哪三个数据是音高、时...

相信万能的音频,肯定有懂MIDI的计算机高手,帮我看看这里面哪三部分数据是音高、时值和力度?谢谢了



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

148
#2 15-10-30 15:01
你这是哪里的数据?详细点

680
#3 15-10-30 15:02
真的不认识 ! ! ! 听说他们叫它鬼码...... 

1340
#4 15-10-30 15:08
浮点 发表于 15-10-30 15:01
你这是哪里的数据?详细点

使用ultra edit从MIDI文件提取的。

1340
#5 15-10-30 15:09
lfl 发表于 15-10-30 15:02
真的不认识 ! ! ! 听说他们叫它鬼码...... 

我也不认识,但是我知道所有的音乐信息都在里面,所以希望有高手出现,指点一下。O(∩_∩)O~

4104
#6 15-10-30 15:20
没有上下文,没有运行环境,什么都没有的一堆数字,谁能看出这是什么数据啊

3354
#7 15-10-30 15:36
LZ你想多了

216
#8 15-10-30 15:47
MTHD是文件头  MTrk是Track头   00是delta time   90是Track 1的控制信息 90是note on 80是note off   低四位代表Track编号  

后面是Pitch和Velocity力度信息  ,其他的控制器参数类型和数目会不一样

每一个Event都是以Delta Time开始的  你可以根据SMF的标准来分析这个文件
观众反应
:高手!
:果然有大拿

2068
#9 15-10-30 16:42
你发出一串机器码要来反编译....这完全是在为难人嘛。我相信这论坛里懂这个的绝对不超过10个

1340
#10 15-10-30 17:01
spainfast 发表于 15-10-30 15:47
MTHD是文件头  MTrk是Track头   00是delta time   90是Track 1的控制信息 90是note on 80是note off   低四 ...

感谢提供相关的解释说明,我需要的信息的确包括这些,可是能否举个大概的例子,以一行或者一列做简单的说明,谢谢啦。

1340
#11 15-10-30 17:01
ddyykk_hello 发表于 15-10-30 15:20
没有上下文,没有运行环境,什么都没有的一堆数字,谁能看出这是什么数据啊

我对音频计算机方面不是很懂,所以可能说的有点外行。

1340
#12 15-10-30 17:02

有工作内容需要这方面的,所以才求助。

1340
#13 15-10-30 17:03
qazedr 发表于 15-10-30 16:42
你发出一串机器码要来反编译....这完全是在为难人嘛。我相信这论坛里懂这个的绝对不超过10个

我对音频计算机方面不是很懂,所以可能说的有点外行。

216
#14 15-10-30 18:05
本帖最后由 spainfast 于 15-10-30 18:27 编辑

就拿你这个图作为例子吧

开头的14个字节叫做Head Chunk
开始的四字节 4D 54 68 64是固定的 代表了这是MIDI文件头
后面四个字节00 00 00 06代表头的数据段长有6个字节 也就是紧接下来的6个字节也属于文件头的信息
这六个字节分为三组 第一组表示format类型 有00 01 10三种 分别表示单轨文件、多轨同步和多轨异步
一般默认为01多轨同步, 第二组代表Track的数目,你这个图里面是02代表有两个Tracks,第三组为resolution 分辨率
是指一拍一般是quarter note分割为多少个ticks单位来表示
有两种模式 看最高位是否为1 为0就是默认的ticks分割,为1就是frame分割  这里的最高位为0
0C 00转成10进制就是3072 也就是一个四分音符分割为3072个单位
这个数决定了文件的Delta Time和音符长度的转换

接下来是Track Chunk 也有个固定的四字节头 4D 54 72 6B
接下来4个字节代表了这个Track的数据段长 13代表接下来13个字节的数据都属于这个Track
之后都是Event,每个Event都会以Delta Time开头,这里的00代表Delta Time 00代表事件立刻发生不会有延时
00 FF XX这种形式属于Meta Event,保存了Track的一些字符信息 比如Instrument Name之类的
具体需要查表,比如你这里的00 FF 58 04代表的是Time Signature拍号,后面会跟四个参数

然后以00 FF 2F 结尾  他是Track end事件  

Track 02 也是一样的结构 长度0E 7C  delta time要换算成ticks才能知道表达多长的音符 它是一种变长值表达,
这里是延时DA 76个单位响应90 note-on控制信息 DA 76 高八位的最高位为1 代表接下来的8位也是Delta time的一部分
低八位76 最高位为0 说明这是这个Event的Delta Time的最后一个字节。换算成Ticks 128*90+118=11638
比上之前的3072 大概在延时3.8个四分音符处开始响应note on信息 音符为3A 也就是58 比60=C低两个半音 A# 力度为16
后面的8D 9C 1F也是Delta Time同样的办法换算就能得出延时多久响应80 note off信号 和note-on信号的时间相减就是音符的长度
后面的全都是这种Event   直到以00 FF 2F结尾代表Track结束

观众反应
:大神,牛!!!!十分感谢!

1261
#15 15-10-30 18:37
大神还是有的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

搜索