Как изменить инструмент в программе Java MIDI

#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 резервирует десятый канал для ударных.

Вы можете использовать другие пятнадцать каналов для мелодических инструментов.