rendered paste bodyimport javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Synthesizer;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Receiver;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.MidiMessage;
public class MIDIsintetizator {
Synthesizer sintetizator;
Receiver sprejemnik;
public MIDIsintetizator() {
// NALOGA 1: kreirajte sintetizator
try {
sintetizator = MidiSystem.getSynthesizer();
sintetizator.open();
sprejemnik = sintetizator.getReceiver();
} catch (MidiUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ShortMessage spremembaGlasbila = new ShortMessage();
try {
spremembaGlasbila.setMessage(ShortMessage.PROGRAM_CHANGE, 0, 41, 0);
} catch (InvalidMidiDataException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
sprejemnik.send(spremembaGlasbila, 0);
int[] notes = new int[]{65, 65, 65, 60, 62, 62, 60, 69, 69, 67, 67, 65};
int[] duration = new int[]{1,1,1,1,1,1,2,1,1,1,1,2};
for(int i=0; i <notes.length; i++){
MidiMessage vklopiTon = getNoteOnMSG(notes[i]);
sprejemnik.send(vklopiTon, 0);
try {
Thread.sleep(500*duration[i]);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MidiMessage izklopiTon = getNoteOffMSG(notes[i]);
sprejemnik.send(izklopiTon, 0);
}
System.exit(0);
}
private MidiMessage getMIDImessage(int command, int note) {
try {
int channel = 0;
int velocity = 60;
ShortMessage msg = new ShortMessage();
msg.setMessage(command, channel, note, velocity);
return (MidiMessage) msg;
} catch (InvalidMidiDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public MidiMessage getNoteOnMSG(int note) {
return getMIDImessage(ShortMessage.NOTE_ON, note);
}
public MidiMessage getNoteOffMSG(int note) {
return getMIDImessage(ShortMessage.NOTE_OFF, note);
}
public static void main(String[] args) {
MIDIsintetizator sintetizator = new MIDIsintetizator();
}
}