示例#1
0
  /**
   * Creates a WAV file based on the Sequence, using the sounds from the specified soundbank; to
   * prevent memory problems, this method asks for an array of patches (instruments) to load.
   *
   * @param soundbankFile
   * @param midiFile
   * @param outputFile
   * @throws MidiUnavailableException
   * @throws InvalidMidiDataException
   * @throws IOException
   */
  public void createWavFile(final File soundbankFile, final File midiFile, final File outputFile)
      throws MidiUnavailableException, InvalidMidiDataException, IOException {
    // Load soundbank
    final Soundbank soundbank = loadSoundbank(soundbankFile);

    // Open the Synthesizer and load the requested instruments
    this.synth.open();
    this.synth.unloadAllInstruments(soundbank);
    final Instrument[] instruments = soundbank.getInstruments();
    for (final Instrument instrument : instruments) {
      synth.loadInstrument(instrument);
    }
    createWavFile(midiFile, outputFile);
  }