我想用我从连接的数字钢琴接收的输入编写一个MIDI文件。我正在使用pygame.midi打开一个输入端口,并使用midiutil编写midi文件。我不能确定的是时间。例如,在addNote(track, channel, pitch, time, duration, volume)
中,我如何知道音符的time
和duration
是什么?读笔记时,我的音高和音量都很好,但其他的我都不知道。。。我试着使用时间戳,但没有用,它把音符放在MIDI文件中很远的地方
那么,如何计算音符的“时间”和“持续时间”
Tags:
time
指示音符在音乐时间中的位置。确切的参数应该是什么在一定程度上取决于Midi文件对象是如何构造的(稍后将详细介绍)实际上,MIDI要求每个音符有两条消息:一条
NOTE On
消息和一条NOTE Off
消息。duration
将指示Note Off
消息相对于便笺开头的发送时间。同样,参数的形成方式取决于文件对象的构造方式从MIDIUtil docs开始:
播放C大调音阶的完整示例
将文件
tempo
(当前时间)与音符的位置(time
)和duration
(根据拍数)相结合,库可以合成在正确时间播放(开始/停止)音符所需的所有midi消息另一个例子
让我们尝试将其应用于以下音乐短语:
首先,把一切都安排好
要在E上添加前半个音符,在G上添加四分之一个音符:
现在,让我们添加其余注释:
相关问题 更多 >
编程相关推荐