Aggiungere MIDI Eventi a Clock - Java
Domanda
Sto creando una semplice applicazione MIDI in C # con una href="http://code.google.com/p/midi-dot-net/" libreria fonte aperto che permette all'utente di specificare un canale, il passo e la velocità e aggiungerli ad un orologio. Questo orologio può quindi riprodurre tutte le note nella sequenza che sono stati aggiunti.
Tutto funziona alla grande e ora sono nel processo di creazione di una versione di Java dell'applicazione, l'unico problema che sembra essere avendo è che non riesco a trovare qualche tutorial semplice o spiegazione di come il sistema di orologio funziona entro MIDI Java.
Fa exist Orologio in Java solido quadro o si tratta di qualcosa che dovrà attuare me stesso?
Grazie!
Soluzione
E 'passato molto tempo da quando ho toccato la roba Java Mezzogiorno, ma in generale, per la costruzione di programmazione MIDI, è necessario effettuare le seguenti operazioni.
import javax.sound.midi;
Assumendo:
-
È necessario creare un oggetto
Sequencer
:Sequence seq = new Sequence(Squence.PPQ, 500000);
-
Successivamente, è necessario creare un oggetto
Track
(uno per canale o uno per tutto, tocca a voi):Track track = seq.createTrack();
-
Ora, è possibile aggiungere gli eventi ad esso:
track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_ON, 0, 60, 127), 0)); track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_OFF, 0, 60, 127), 1000)); //etc.
-
Una volta terminato questo, si può quindi riprodurre il
Sequence
come normale!
Controlla la documentazione qui: http://download.oracle.com/javase/7/docs/api/index.html?javax/sound/midi/MidiSystem.html