/** Plays sequence */ public void playSequence(float speed) { try { fSequencer.open(); fSynthesizer.open(); // fSynthesizer.loadAllInstruments(fSynthesizer.getDefaultSoundbank()); Instrument[] instruments = fSynthesizer.getAvailableInstruments(); /* System.out.println("Instruments: "+fSynthesizer.getLoadedInstruments().length+", "+fSynthesizer.getAvailableInstruments().length); for (int i=0; i<instruments.length; i++) System.out.println("Instrument "+i+": "+instruments[i].getName()+", "+instruments[i].getPatch().getBank()+", "+instruments[i].getPatch().getProgram()); */ if (instruments.length > 180) { // System.out.println("Remap: "+fSynthesizer.remapInstrument(instruments[14], // instruments[157])); // fSynthesizer.unloadInstrument(instruments[14]); } } catch (MidiUnavailableException e) { System.out.println("Error opening sequencer: " + e); return; } try { fSequencer.setSequence(fSequence); setPlaybackSpeed(speed); fSequencer.start(); } catch (InvalidMidiDataException e) { System.out.println("Error playing sequence: " + e); } }