#java #midi #javax.sound.midi
#java #midi #javax.sound.midi
Вопрос:
Как я могу изменить инструменты в Midi? Я могу изменить значение канала до 9, после чего он скажет «Канал вне диапазона», который является всем пианино. Как я могу изменить его на гитару, например
public noteplay()
throws InvalidMidiDataException,MidiUnavailableException
{
bpm =80;
beatLength = 1;
theTimeMelody = 0;
theTimeBass =0;
seq = new Sequence(Sequence.PPQ,3);
trkBass = seq.createTrack();
trkMelody = seq.createTrack();
}
public void melody(int volume)
throws InvalidMidiDataException,MidiUnavailableException
{
int list1[] = { 56,59,60,63,56,59,60,63, 61,64,65,68,61,64,65,68, 56,59,60,63,56,59,60,63, 63,66,67,70,73,66,67,70,};
for (int pitch : list1)
{
ShortMessage onMsg = new ShortMessage();
onMsg.setMessage(ShortMessage.NOTE_ON, 0, pitch, 80);
ShortMessage offMsg = new ShortMessage();
offMsg.setMessage(ShortMessage.NOTE_OFF, 0, pitch, 90);
trkBass.add(new MidiEvent(onMsg,theTimeBass));
trkBass.add(new MidiEvent(offMsg,theTimeBass beatLength));
theTimeBass = beatLength;
}
}
}
Комментарии:
1. Вы пробовали пропустить канал 10? Он часто зарезервирован для барабанов.
Ответ №1:
Общий стандарт MIDI резервирует десятый канал для ударных.
Вы можете использовать другие пятнадцать каналов для мелодических инструментов.