|
发表于 2021-3-3 13:45:01
|
显示全部楼层
try this one:
import javax.sound.midi.*;
class Test
{
public static void main(String[] args)
{
try
{
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
Sequence seq = new Sequence(Sequence.PPQ, 4);
Track track = seq.createTrack();
for (int i = 5; i < 61; i++)
{
track.add(makeEvent(144, 1, i, 100, i));
track.add(makeEvent(128, 1, i, 100, i + 2));
} // end loop
sequencer.setSequence(seq);
sequencer.setTempoInBPM(220);
sequencer.start();
quitProgram(sequencer);
}
catch (Exception ex)
{
ex.printStackTrace();
}
} // end main
public static void quitProgram(Sequencer sequencer)
{
while(sequencer.isRunning())
{
System.out.println("isRunning");
}
System.exit(0);
}
public static MidiEvent makeEvent(int comd, int chan, int one, int two,
int tick)
{
MidiEvent event = null;
try
{
ShortMessage a = new ShortMessage();
a.setMessage(comd, chan, one, two);
event = new MidiEvent(a, tick);
}
catch (Exception e)
{
e.printStackTrace();
}
return event;
}
}
|
|