All pastes #2127335 Raw Edit

Vaja03-1

public text v1 · immutable
#2127335 ·published 2012-03-12 14:27 UTC
rendered paste body
import 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();
	}

}