MIDI通道轨相关

时间:2014-06-17 00:35:16

标签: java midi

我一直在用JAVA MIDI工作,我偶然发现了一个问题。 我使用Receiver,Transmitter方法连接MIDI设备   使用音序器的MPD,然后将音序器链接到Java合成器。

我设法在不同的轨道上记录设备中的数据,例如:

track [0]有一些Midi事件

track [1]有一些Midi事件等。

问题是因为当录音开始播放时,如果音轨改变声音,所有音轨都会使用相同的音轨PROGRAM_CHANGE所有音轨都会改变为该声音。我猜想MIDI设备只使用1声道:声道1传输声音数据到音序器,当音序器将数据写入音轨时,都有相同的通道,所以我不能用不同的乐器演奏音轨。     “Record_Enable”仅适用于通道1(仅在那里我从设备获取数据到定序器)。 我认为有2个解决方案,但我不知道如何实现它们。

1.更改每个曲目的频道。

因此track [0]在通道0上有所有MIDI事件。

track [1]包含通道1等所有MIDI事件

2.使设备以某种方式将数据发送到不同频道的音序器。

1 个答案:

答案 0 :(得分:1)

要更改活动消息的频道,请使用setMessage与不同的channel参数。 对轨道中的所有事件执行此操作。