Class 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 Detail

      • TrackTimeManager

        public TrackTimeManager()
    • 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 -