public MIDIReader(String filename) { this.filename = filename; try { this.recebedor = MidiSystem.getReceiver(); this.sequencia = MidiSystem.getSequence(new File(filename)); this.tempoProcessor = new MidiUtils.TempoCache(sequencia); this.player = MidiSystem.getSequencer(true); this.player.setSequence(sequencia); this.player.open(); this.interval = 0.5f; this.loadNotes(); this.duration = this.getRealDuration(); } catch (Exception ex) { Utilidades.alertar(ex.getMessage()); } }
// Permite a execucao de uma nota do video public void tocar(float seconds, int corda) { if (!this.canPlay) { return; } corda = 6 - corda; try { for (MIDINote nota : this.notas) { if (nota.getSecond() == seconds && nota.getChord() == corda) { this.recebedor.send(nota.getShortMessage(), -1); return; } } } catch (Exception ex) { Utilidades.alertar("Erro na execucao do MIDI: " + ex.getMessage()); } }