MIDI 中的长音符

问题描述 投票:0回答:1

我正在创建一个程序来创建 MIDI 文件,但我对长音符的声音有疑问。如果我记短笔记(例如,持续时间小于 480 个刻度),那么没有问题,但如果我想记更长的笔记,那么它消失的速度会比应有的快

我以为它是这样做的:

midiTrack.insertEvent(new PitchBend((long) startTick, 0, 0, 64));
midiTrack.insertNote(0, pitch, 80, (long) startTick, duration);
midiTrack.insertEvent(new Controller(startTick + duration, 0, 0, 0));

但这并没有带来结果,尽管在现成的示例中发生了类似的情况。 itchBend 函数接受以下参数 PitchBend(tick, channel, lsb, msb) insertNote 函数接受以下参数 insertNote(channel,pitch,velocity,tick,duration)

java midi
1个回答
0
投票

您的评论是正确的:

发现声音的最长持续时间很可能直接取决于所选的程序

但我有一个小修正:“取决于你用来从 MIDI 产生声音的合成器”。程序会影响您从合成器中获得的声音。 MIDI 不是音频,如果没有任何产生声音的设备(合成器),您就无法从 MIDI 获取声音。如何处理音符完全取决于合成器。

如果您使用的是 Windows,您可能会使用默认合成器 - Microsoft GS Wavetable Synth。但您可以尝试另一种,看看声音会有多么不同。

© www.soinside.com 2019 - 2024. All rights reserved.