Interface ParserListener

All Known Implementing Classes:
ChainingParserListenerAdapter, ComputeDurationForEachTrackTool, DiagnosticParserListener, GetInstrumentsUsedTool, LilyPondParserListener, MidiParserListener, MusicXmlParserListener, ParserListenerAdapter, RealtimeMidiParserListener, StaccatoElementSorter, StaccatoParserListener, TemporalPLP

public interface ParserListener
  • Method Details

    • beforeParsingStarts

      void beforeParsingStarts()
      Called when the parser first starts up, but before it starts parsing anything. Provides listeners with a chance to initialize variables and get ready for the parser events.
    • afterParsingFinished

      void afterParsingFinished()
      Called when the parser has parsed its last item. Provides listeners with a chance to clean up.
    • onTrackChanged

      void onTrackChanged(byte track)
      Called when the parser encounters a new track (also known as a channel; previously in JFugue, known as a Voice). Tracks correspond to MIDI tracks/channels.
      Parameters:
      track - the new track event that has been parsed
    • onLayerChanged

      void onLayerChanged(byte layer)
      Called when the parser encounters a new layer. A layer deals with polyphony within a track. While any track may have layers, layers are intended for use with the percussion track, where each layer may represent notes for a specific percussive instrument. Layers can essentially be thought of as a "track within a track." Each layer maintains its own time progression, so "L1 Eq Eq L2 Cq Gq" would be the same as saying "Eq+Cq Eq+Gq". Layers are a JFugue feature, and are not a part of the MIDI specification.
      Parameters:
      newTrack - the new track event that has been parsed
      oldTrack - the previous track. The default value for oldTrack is 0.
    • onInstrumentParsed

      void onInstrumentParsed(byte instrument)
      Called when the parser encounters a new instrument selection.
      Parameters:
      instrument - the MIDI instrument value that has been parsed
    • onTempoChanged

      void onTempoChanged(int tempoBPM)
      Called when the parser encounters a new tempo selection.
      Parameters:
      tempoBPM - The new tempo value
    • onKeySignatureParsed

      void onKeySignatureParsed(byte key, byte scale)
    • onTimeSignatureParsed

      void onTimeSignatureParsed(byte numerator, byte powerOfTwo)
      The first parameter is the number of beats per measure; The second parameter is the power by which 2 must be raised to create the note that represents one beat. Example 1: For a 5/8 time signature, expect 5,3 (since 2^3 = 8) Example 2: For a 4/4 time signature, expect 4,2 (since 2^2 = 4)
    • onBarLineParsed

      void onBarLineParsed(long id)
      The separator character which indicates a bar line has been parsed. Generally, you will want to care about this if you're counting measures, but this should have no effect on the rendering of a parsed piece of music.
      Parameters:
      id - This is the id of the measure, which is an optional numeric value following the bar character.
    • onTrackBeatTimeBookmarked

      void onTrackBeatTimeBookmarked(String timeBookmarkId)
    • onTrackBeatTimeBookmarkRequested

      void onTrackBeatTimeBookmarkRequested(String timeBookmarkId)
    • onTrackBeatTimeRequested

      void onTrackBeatTimeRequested(double time)
    • onPitchWheelParsed

      void onPitchWheelParsed(byte lsb, byte msb)
    • onChannelPressureParsed

      void onChannelPressureParsed(byte pressure)
    • onPolyphonicPressureParsed

      void onPolyphonicPressureParsed(byte key, byte pressure)
    • onSystemExclusiveParsed

      void onSystemExclusiveParsed(byte... bytes)
    • onControllerEventParsed

      void onControllerEventParsed(byte controller, byte value)
    • onLyricParsed

      void onLyricParsed(String lyric)
    • onMarkerParsed

      void onMarkerParsed(String marker)
    • onFunctionParsed

      void onFunctionParsed(String id, Object message)
    • onNotePressed

      void onNotePressed(Note note)
      Used to indicate when a note is pressed. Used in realtime cases when notes are actually being pressed and released. Parsers that do not operate in realtime are not expected to report onNotePressed. Expect the Note event to contain only the note number and note-on velocity.
    • onNoteReleased

      void onNoteReleased(Note note)
      Used to indicate when a note is released. Used in realtime cases when notes are actually being pressed and released. Parsers that do not operate in realtime are not expected to report onNoteReleased. Expect the Note event to contain only the note number and note-off velocity. Duration may not be set on the Note from onNoteReleased.
    • onNoteParsed

      void onNoteParsed(Note note)
      We may have actually parsed a musical note! In previous versions of JFugue, ParserListener had separate listeners for parallel notes and sequential notes (now termed harmonic and melodic notes, respectively) In this version of JFugue, whether a note is the first note, a harmonic note, or a melodic note is kept as a property on the Note object itself.
      Parameters:
      note - The note that was parsed. Please see the Note class for more details about notes!
      See Also:
    • onChordParsed

      void onChordParsed(Chord chord)