Prima di provare ad usare il sequencer avevo anche provato questo codice che non ne fa uso:
Codice PHP:
public class CanaleSingoloSinth {
private ShortMessage messaggio = new ShortMessage();
private Receiver ricevitore;
private CanaleSingoloSinth(){
try{
Synthesizer synth= MidiSystem.getSynthesizer();
synth.open();
synth.getChannels()[0].programChange(40);
ricevitore=synth.getReceiver();
}catch(MidiUnavailableException e){
e.printStackTrace();
}
}
public void suonaNota(int nota){
setShortMessage(nota,ShortMessage.NOTE_ON);
ricevitore.send(messaggio,-1);
try{
Thread.sleep(1000);
}catch(InterruptedException e ){
e.printStackTrace();
}
setShortMessage(nota,ShortMessage.NOTE_OFF);
ricevitore.send(messaggio,-1);
}
private void setShortMessage(int nota, int onoroff) {
try{
messaggio.setMessage(onoroff, 0, nota,100);
}catch(InvalidMidiDataException e){
e.printStackTrace();
}
}
public static void main(String args[]){
new CanaleSingoloSinth().suonaNota(60);
new CanaleSingoloSinth().suonaNota(62);
new CanaleSingoloSinth().suonaNota(64);
new CanaleSingoloSinth().suonaNota(65);
new CanaleSingoloSinth().suonaNota(67);
new CanaleSingoloSinth().suonaNota(69);
new CanaleSingoloSinth().suonaNota(71);
new CanaleSingoloSinth().suonaNota(72);
}
e funziona.. ora come mai questo si e quello no? Sto uscendo pazzo, essendo una cosa nuova per me non so ancora muovermi bene con i codici relativi alle api midi, e quando si presentano questi errori, non trovando risposte che risolvano il problema su internet, non mi resta che "affidarmi" a forumisti che hanno avuto gia a che fare con ciò.
Vorrei risolvere la questione in tempi più celeri possibili, in modo da prendere confidenza con questo nuovo capitolo java in vista del mio prossimo esame..