Package org.jfugue.midi
Class TrackTimeManager
- java.lang.Object
-
- org.jfugue.midi.TrackTimeManager
-
- Direct Known Subclasses:
RealtimeMidiParserListener
,StaccatoElementSorter
public class TrackTimeManager extends java.lang.Object
This class is useful for any applications that plan on keeping track of musical events by beat time. It automatically provides beat time, manages the current track, and maintains beat time bookmarks. And, this class is agnostic to units of time. It is used within JFugue for both track beats (as in MidiParserListener) and milliseconds (as in RealtimeMidiParserListener)- Author:
- David Koelle
- See Also:
MidiParserListener
,RealtimeMidiParserListener
-
-
Constructor Summary
Constructors Constructor Description TrackTimeManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTrackTickTimeBookmark(java.lang.String timeBookmarkID)
void
advanceTrackBeatTime(double advanceTime)
Advances the timer for the current track by the specified duration, which is specified in Pulses Per Quarter (PPQ)protected void
createTrack(byte track)
protected byte
getCurrentLayerNumber()
byte
getCurrentTrackNumber()
double
getInitialNoteBeatTimeForHarmonicNotes()
protected byte
getLastCreatedTrackNumber()
double
getLatestTrackBeatTime(byte trackNumber)
Returns the latest track time across all layers in the given trackdouble
getTrackBeatTime()
Returns the timer for the current track and current layer.double
getTrackBeatTimeBookmark(java.lang.String timeBookmarkID)
void
setAllTrackBeatTime(double newTime)
Sets the timer for all tracks to the given time, which is specified in Pulses Per Quarter (PPQ)void
setCurrentLayerNumber(byte layerNumber)
Sets the current layer within the track to which new events will be added.void
setCurrentTrack(byte trackNumber)
Sets the current track, or channel, to which new events will be added.void
setInitialNoteBeatTimeForHarmonicNotes(double initialNoteBeatTimeForHarmonicNotes)
void
setTrackBeatTime(double newTime)
Sets the timer for the current track by the given time, which is specified in Pulses Per Quarter (PPQ)
-
-
-
Method Detail
-
setCurrentTrack
public void setCurrentTrack(byte trackNumber)
Sets the current track, or channel, to which new events will be added.- Parameters:
trackNumber
- the track to select
-
getCurrentTrackNumber
public byte getCurrentTrackNumber()
-
getLastCreatedTrackNumber
protected byte getLastCreatedTrackNumber()
-
createTrack
protected void createTrack(byte track)
-
setCurrentLayerNumber
public void setCurrentLayerNumber(byte layerNumber)
Sets the current layer within the track to which new events will be added.- Parameters:
layerNumber
- the layer to select
-
getCurrentLayerNumber
protected byte getCurrentLayerNumber()
-
setInitialNoteBeatTimeForHarmonicNotes
public void setInitialNoteBeatTimeForHarmonicNotes(double initialNoteBeatTimeForHarmonicNotes)
-
getInitialNoteBeatTimeForHarmonicNotes
public double getInitialNoteBeatTimeForHarmonicNotes()
-
advanceTrackBeatTime
public void advanceTrackBeatTime(double advanceTime)
Advances the timer for the current track by the specified duration, which is specified in Pulses Per Quarter (PPQ)- Parameters:
duration
- the duration to increase the track timer
-
setTrackBeatTime
public void setTrackBeatTime(double newTime)
Sets the timer for the current track by the given time, which is specified in Pulses Per Quarter (PPQ)- Parameters:
newTickTime
- the time at which to set the track timer
-
setAllTrackBeatTime
public void setAllTrackBeatTime(double newTime)
Sets the timer for all tracks to the given time, which is specified in Pulses Per Quarter (PPQ)- Parameters:
newTickTime
- the time at which to set the track timer
-
getTrackBeatTime
public double getTrackBeatTime()
Returns the timer for the current track and current layer.- Returns:
- the timer value for the current track, specified in Pulses Per Quarter (PPQ)
-
addTrackTickTimeBookmark
public void addTrackTickTimeBookmark(java.lang.String timeBookmarkID)
-
getTrackBeatTimeBookmark
public double getTrackBeatTimeBookmark(java.lang.String timeBookmarkID)
-
getLatestTrackBeatTime
public double getLatestTrackBeatTime(byte trackNumber)
Returns the latest track time across all layers in the given track- Parameters:
trackNumber
-
-
-