python midi_midi文件解析 by python mido

首先要记住,midi文件并不存储声音,只存储指示合成器(电子乐器)如何发声的动作,比如某个时刻以什么力度按下某个音符。

音符note

狭义的音符指C、D、E、F、G、A、B七个(即Do–Re–Mi–Fa–Sol–La–Si)。广义的应该是包括音符与对应的音阶,比如中央C即C4。音符、琴键与它们在midi中编号的关系如下图所示:

在midi信息中的note number从[21, 108]对应着钢琴的88个琴键。

midi channels

通道,最多有16个通道。可以了解为每个通道对应一个物理输出,所以midi最多可以同时控制16种乐器。

midi tracks

音轨,音轨与通道并不是一一对应,而是可以多对多的关系。音轨是逻辑上的划分,比如可以将钢琴的左手演奏放在track 1,右手演奏放在track 2。但是输出时候,都是对应输出到钢琴的通道。你也可以只设置一个track 1,并且在里面记录着不同通道的消息。另外,还经常将track 0用来存储midi的元信息。

event

事件,也叫做消息(在mido库中使用message表示)。包括三种事件meta event,midi event, sysex event。

meta messages

元消息是不会通过物理线路发送给设备的,只是存储在midi文件中。元消息通常用来存储作者、版权、音轨名、乐器名等信息,以及最重要的tempo值(即microseconds per beat)

midi messages

midi消息中最主要的就是note_on, note_off

你可能感兴趣的:(python,midi)