import javax.sound.midi.*; import java.util.ArrayList; public class GuitarChordDemo { // this is the first one public static void main(String[] args) { GuitarTuning gt = new GuitarTuning(); ArrayList eMajorChordMidiValues = new ArrayList(); eMajorChordMidiValues.add(gt.midiNum(6,0)); eMajorChordMidiValues.add(gt.midiNum(5,2)); eMajorChordMidiValues.add(gt.midiNum(4,2)); eMajorChordMidiValues.add(gt.midiNum(3,1)); eMajorChordMidiValues.add(gt.midiNum(2,0)); eMajorChordMidiValues.add(gt.midiNum(1,0)); ArrayList aMajorChordMidiValues = new ArrayList(); aMajorChordMidiValues.add(gt.midiNum(6,0)); aMajorChordMidiValues.add(gt.midiNum(5,0)); aMajorChordMidiValues.add(gt.midiNum(4,2)); aMajorChordMidiValues.add(gt.midiNum(3,2)); aMajorChordMidiValues.add(gt.midiNum(2,2)); aMajorChordMidiValues.add(gt.midiNum(1,0)); final int instrument = 25; // SEE http://soundprogramming.net/file_formats/general_midi_instrument_list /* 25 Acoustic Guitar (nylon) 26 Acoustic Guitar (steel) 27 Electric Guitar (jazz) 28 Electric Guitar (clean) 29 Electric Guitar (muted) 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar harmonics */ GuitarChordDemo mini = new GuitarChordDemo(); mini.playChord(instrument, eMajorChordMidiValues); mini.playChord(instrument, aMajorChordMidiValues); System.exit(0); } public void playChord(int instrument, ArrayList chord) { try { Sequencer player = MidiSystem.getSequencer(); player.open(); Sequence seq = new Sequence(Sequence.PPQ, 4); Track track = seq.createTrack(); MidiEvent event = null; ShortMessage first = new ShortMessage(); first.setMessage(192, 1, instrument, 0); MidiEvent changeInstrument = new MidiEvent(first, 1); track.add(changeInstrument); final int duration = 16; for (int i=0; i