Я использую следующий код для воспроизведения миди-файла, но не могу найти список используемых инструментов:
try
{
Sequence sequence=MidiSystem.getSequence(file); // From file
int trackNumber=0;
for (Track track : sequence.getTracks())
{
trackNumber++;
System.out.println("Track "+trackNumber+": size = "+track.size());
System.out.println();
for (int i=0;i<track.size();i++)
{
MidiEvent event=track.get(i);
System.out.print("@"+event.getTick()+" ");
if (message instanceof ShortMessage)
{
ShortMessage sm=(ShortMessage)message;
System.out.print("Channel: "+sm.getChannel()+" "+new String(sm.getMessage())+" | ");
}
else Out("Other message: "+message.getClass());
}
System.out.println();
}
Sequencer sequencer=MidiSystem.getSequencer();
sequencer.open();
sequencer.setSequence(sequence);
sequencer.start();
}
catch (Exception e) { e.printStackTrace(); }
Я провел некоторый поиск, есть похожие вопросы, но ни на один из них нет прямых ответов, я просто хочу список инструментов, используемых в файле, таких как Piano, drum ... Я знаю, что информация скрыта в сообщениях [ может быть, называется "программа" ?! ], но я просто не могу его найти.