Hallo allemaal,
Ik heb een technische vraag betrekking hebbende op het Java Media Framework (JMF):
Is het mogelijk om van een MIDI sequence op een zo hoog mogelijke snelheid de meta-events af te lopen, inclusief timestamps of tijdspositie in bijvoorbeeld microseconden?
Ik moet namelijk de lyrics van zogeheten KAR-bestanden in kaart bregen, inclusief de timing. KAR-bestanden zijn in principe MID-bestanden met de Karaoke-lyrics als meta-events daar ingevoegd.
Ik kan de meta-events weliswaar opvangen door aan een sequencer een listener te koppelen via de interface-method addMetaEventListener, maar na flink wat gegoogled te hebben heb ik begrepen dat een dergelijke listener dan alleen maar werkelijk wordt getriggered tijdens het (real-time?) afspelen van een midi-sequence. Zie bijvoorbeeld deze bug-fix van Sun:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4287133
Het is dus kennelijk niet zo (of in elk geval niet de bedoeling) dat meta-events ook worden gefired als ik met de method setMicrosecondPosition naar een bepaald punt in de sequence spring waar zich zo'n method bevindt.
Ik heb flink gezocht, maar heb hiervoor tot nu toe helaas nog geen oplossing kunnen vinden.
Samengevat is mijn vraag alsvolgt: moet ik echt een sequencer starten en laten afspelen om alle meta-events op te kunnen vangen, of kan het ook op een andere (snellere) manier?
Alvast bedankt, fellow Tweakers!
Ik heb een technische vraag betrekking hebbende op het Java Media Framework (JMF):
Is het mogelijk om van een MIDI sequence op een zo hoog mogelijke snelheid de meta-events af te lopen, inclusief timestamps of tijdspositie in bijvoorbeeld microseconden?
Ik moet namelijk de lyrics van zogeheten KAR-bestanden in kaart bregen, inclusief de timing. KAR-bestanden zijn in principe MID-bestanden met de Karaoke-lyrics als meta-events daar ingevoegd.
Ik kan de meta-events weliswaar opvangen door aan een sequencer een listener te koppelen via de interface-method addMetaEventListener, maar na flink wat gegoogled te hebben heb ik begrepen dat een dergelijke listener dan alleen maar werkelijk wordt getriggered tijdens het (real-time?) afspelen van een midi-sequence. Zie bijvoorbeeld deze bug-fix van Sun:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4287133
Het is dus kennelijk niet zo (of in elk geval niet de bedoeling) dat meta-events ook worden gefired als ik met de method setMicrosecondPosition naar een bepaald punt in de sequence spring waar zich zo'n method bevindt.
Ik heb flink gezocht, maar heb hiervoor tot nu toe helaas nog geen oplossing kunnen vinden.
Samengevat is mijn vraag alsvolgt: moet ik echt een sequencer starten en laten afspelen om alle meta-events op te kunnen vangen, of kan het ook op een andere (snellere) manier?
Alvast bedankt, fellow Tweakers!