我一直在用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.使设备以某种方式将数据发送到不同频道的音序器。