LibMusicXML 3.22
midicontextvisitor Class Reference

A Visitor that maintains a context for MIDI generation. More...

#include <midicontextvisitor.h>

Inheritance diagram for midicontextvisitor:
visitor< S_sound > visitor< S_score_part > visitor< S_part > visitor< S_measure > visitor< S_midi_device > visitor< S_forward > visitor< S_backup > visitor< S_divisions > scoreInstrument midiInstrument transposevisitor notevisitor

Public Member Functions

 midicontextvisitor (long tpq, midiwriter *writer=0)
Public Member Functions inherited from notevisitor
bool isGrace () const
bool isCue () const
bool inChord () const
bool inFermata () const
type getType () const
int getTie () const
int getStaff () const
int getVoice () const
S_note getSnote () const
float getNoteHeadDy (string fCurClef) const
std::string getNoteheadType () const
bool printObject () const
virtual float getMidiPitch () const
 Compute the note MIDI pitch.
virtual float getAlter () const
virtual int getOctave () const
virtual const std::string & getStep () const
virtual const std::string & getInstrument () const
virtual const std::string & getGraphicType () const
virtual const rationalgetTimeModification () const
virtual void setStep (const std::string &step)
virtual void setOctave (int oct)
virtual void setAlter (float alter)
virtual long getDynamics () const
virtual long getDuration () const
virtual int getDots () const
virtual void print (std::ostream &out) const
virtual const std::vector< Sxmlelement > & getFingerings () const
virtual const std::vector< S_tied > & getTied () const
virtual const std::vector< S_slur > & getSlur () const
virtual const std::vector< S_beam > & getBeam () const
virtual const std::vector< S_wavy_line > & getWavylines () const
virtual const std::vector< S_tuplet > & getTuplet () const
virtual const std::vector< S_lyric > & getLyric () const
virtual const std::string & getSyllabic () const
virtual const std::string & getLyricText () const
virtual const float & getLyricDy () const
Public Member Functions inherited from visitor< S_accent >
virtual void visitEnd (S_accent &elt)
Public Member Functions inherited from visitor< S_alter >
virtual void visitEnd (S_alter &elt)
Public Member Functions inherited from visitor< S_beam >
virtual void visitEnd (S_beam &elt)
Public Member Functions inherited from visitor< S_breath_mark >
virtual void visitEnd (S_breath_mark &elt)
Public Member Functions inherited from visitor< S_chord >
virtual void visitEnd (S_chord &elt)
Public Member Functions inherited from visitor< S_cue >
virtual void visitEnd (S_cue &elt)
Public Member Functions inherited from visitor< S_display_octave >
virtual void visitEnd (S_display_octave &elt)
Public Member Functions inherited from visitor< S_display_step >
virtual void visitEnd (S_display_step &elt)
Public Member Functions inherited from visitor< S_dot >
virtual void visitEnd (S_dot &elt)
Public Member Functions inherited from visitor< S_duration >
virtual void visitEnd (S_duration &elt)
Public Member Functions inherited from visitor< S_fermata >
virtual void visitEnd (S_fermata &elt)
Public Member Functions inherited from visitor< S_grace >
virtual void visitEnd (S_grace &elt)
Public Member Functions inherited from visitor< S_instrument >
virtual void visitEnd (S_instrument &elt)
Public Member Functions inherited from visitor< S_octave >
virtual void visitEnd (S_octave &elt)
Public Member Functions inherited from visitor< S_pitch >
virtual void visitEnd (S_pitch &elt)
Public Member Functions inherited from visitor< S_rest >
virtual void visitEnd (S_rest &elt)
Public Member Functions inherited from visitor< S_slur >
virtual void visitEnd (S_slur &elt)
Public Member Functions inherited from visitor< S_staccato >
virtual void visitEnd (S_staccato &elt)
Public Member Functions inherited from visitor< S_staff >
virtual void visitEnd (S_staff &elt)
Public Member Functions inherited from visitor< S_stem >
virtual void visitEnd (S_stem &elt)
Public Member Functions inherited from visitor< S_step >
virtual void visitEnd (S_step &elt)
Public Member Functions inherited from visitor< S_strong_accent >
virtual void visitEnd (S_strong_accent &elt)
Public Member Functions inherited from visitor< S_tenuto >
virtual void visitEnd (S_tenuto &elt)
Public Member Functions inherited from visitor< S_tie >
virtual void visitEnd (S_tie &elt)
Public Member Functions inherited from visitor< S_tied >
virtual void visitEnd (S_tied &elt)
Public Member Functions inherited from visitor< S_time_modification >
virtual void visitEnd (S_time_modification &elt)
Public Member Functions inherited from visitor< S_type >
virtual void visitEnd (S_type &elt)
Public Member Functions inherited from visitor< S_unpitched >
virtual void visitEnd (S_unpitched &elt)
Public Member Functions inherited from visitor< S_voice >
virtual void visitEnd (S_voice &elt)
Public Member Functions inherited from visitor< S_lyric >
virtual void visitEnd (S_lyric &elt)
Public Member Functions inherited from visitor< S_turn >
virtual void visitEnd (S_turn &elt)
Public Member Functions inherited from visitor< S_tremolo >
virtual void visitEnd (S_tremolo &elt)
Public Member Functions inherited from visitor< S_inverted_turn >
virtual void visitEnd (S_inverted_turn &elt)
Public Member Functions inherited from visitor< S_trill_mark >
virtual void visitEnd (S_trill_mark &elt)
Public Member Functions inherited from visitor< S_wavy_line >
virtual void visitEnd (S_wavy_line &elt)
Public Member Functions inherited from visitor< S_inverted_mordent >
virtual void visitEnd (S_inverted_mordent &elt)
Public Member Functions inherited from visitor< S_mordent >
virtual void visitEnd (S_mordent &elt)
Public Member Functions inherited from visitor< S_arpeggiate >
virtual void visitEnd (S_arpeggiate &elt)
Public Member Functions inherited from visitor< S_accidental_mark >
virtual void visitEnd (S_accidental_mark &elt)
Public Member Functions inherited from visitor< S_notehead >
virtual void visitEnd (S_notehead &elt)
Public Member Functions inherited from visitor< S_tuplet >
virtual void visitEnd (S_tuplet &elt)
Public Member Functions inherited from visitor< S_fingering >
virtual void visitEnd (S_fingering &elt)
Public Member Functions inherited from visitor< S_pluck >
virtual void visitEnd (S_pluck &elt)
Public Member Functions inherited from visitor< S_up_bow >
virtual void visitEnd (S_up_bow &elt)
Public Member Functions inherited from visitor< S_down_bow >
virtual void visitEnd (S_down_bow &elt)
Public Member Functions inherited from visitor< S_harmonic >
virtual void visitEnd (S_harmonic &elt)
Public Member Functions inherited from visitor< S_snap_pizzicato >
virtual void visitEnd (S_snap_pizzicato &elt)
Public Member Functions inherited from visitor< S_staccatissimo >
virtual void visitEnd (S_staccatissimo &elt)
Public Member Functions inherited from transposevisitor
virtual void reset ()
Public Member Functions inherited from visitor< S_diatonic >
virtual void visitEnd (S_diatonic &elt)
Public Member Functions inherited from visitor< S_chromatic >
virtual void visitEnd (S_chromatic &elt)
Public Member Functions inherited from visitor< S_octave_change >
virtual void visitEnd (S_octave_change &elt)
Public Member Functions inherited from visitor< S_double >
virtual void visitEnd (S_double &elt)
Public Member Functions inherited from visitor< S_midi_channel >
virtual void visitEnd (S_midi_channel &elt)
Public Member Functions inherited from visitor< S_midi_name >
virtual void visitEnd (S_midi_name &elt)
Public Member Functions inherited from visitor< S_midi_bank >
virtual void visitEnd (S_midi_bank &elt)
Public Member Functions inherited from visitor< S_midi_program >
virtual void visitEnd (S_midi_program &elt)
Public Member Functions inherited from visitor< S_midi_unpitched >
virtual void visitEnd (S_midi_unpitched &elt)
Public Member Functions inherited from visitor< S_volume >
virtual void visitEnd (S_volume &elt)
Public Member Functions inherited from visitor< S_instrument_name >
virtual void visitEnd (S_instrument_name &elt)
Public Member Functions inherited from visitor< S_instrument_abbreviation >
virtual void visitEnd (S_instrument_abbreviation &elt)
Public Member Functions inherited from visitor< S_divisions >
virtual void visitEnd (S_divisions &elt)
Public Member Functions inherited from visitor< S_midi_device >
virtual void visitEnd (S_midi_device &elt)
Public Member Functions inherited from visitor< S_measure >
virtual void visitStart (S_measure &elt)

Protected Member Functions

void addDuration (long dur)
long convert2Tick (long val)
long convert2Vel (long val)
virtual void playScoreInstrument (const scoreInstrument &instr)
virtual void playMidiInstrument (const midiInstrument &instr)
virtual void playNote (const notevisitor &note)
virtual void playTempoChange (long bmp)
virtual void playPedalChange (midiwriter::pedalType type, const std::string &val)
virtual void visitStart (S_divisions &elt)
virtual void visitStart (S_duration &elt)
virtual void visitStart (S_backup &elt)
virtual void visitEnd (S_backup &elt)
virtual void visitStart (S_forward &elt)
virtual void visitEnd (S_forward &elt)
virtual void visitEnd (S_score_instrument &elt)
virtual void visitStart (S_midi_device &elt)
virtual void visitEnd (S_midi_instrument &elt)
virtual void visitEnd (S_measure &elt)
virtual void visitStart (S_part &elt)
virtual void visitEnd (S_part &elt)
virtual void visitEnd (S_note &elt)
virtual void visitStart (S_score_part &elt)
virtual void visitEnd (S_score_part &elt)
virtual void visitStart (S_sound &elt)
virtual void visitEnd (S_sound &elt)
virtual void visitEnd (S_transpose &elt)
Protected Member Functions inherited from notevisitor
void reset ()
virtual void visitStart (S_accent &elt)
virtual void visitStart (S_alter &elt)
virtual void visitStart (S_beam &elt)
virtual void visitStart (S_tuplet &elt)
virtual void visitStart (S_breath_mark &elt)
virtual void visitStart (S_chord &elt)
virtual void visitStart (S_cue &elt)
virtual void visitStart (S_display_octave &elt)
virtual void visitStart (S_display_step &elt)
virtual void visitStart (S_dot &elt)
virtual void visitStart (S_fermata &elt)
virtual void visitStart (S_grace &elt)
virtual void visitStart (S_instrument &elt)
virtual void visitStart (S_note &elt)
virtual void visitStart (S_octave &elt)
virtual void visitStart (S_pitch &elt)
virtual void visitStart (S_rest &elt)
virtual void visitStart (S_slur &elt)
virtual void visitStart (S_staccato &elt)
virtual void visitStart (S_staff &elt)
virtual void visitStart (S_stem &elt)
virtual void visitStart (S_step &elt)
virtual void visitStart (S_strong_accent &elt)
virtual void visitStart (S_tenuto &elt)
virtual void visitStart (S_tie &elt)
virtual void visitStart (S_tied &elt)
virtual void visitStart (S_time_modification &elt)
virtual void visitStart (S_type &elt)
virtual void visitStart (S_unpitched &elt)
virtual void visitStart (S_voice &elt)
virtual void visitStart (S_lyric &elt)
virtual void visitStart (S_turn &elt)
virtual void visitStart (S_tremolo &elt)
virtual void visitStart (S_trill_mark &elt)
virtual void visitStart (S_wavy_line &elt)
virtual void visitStart (S_accidental_mark &elt)
virtual void visitStart (S_inverted_mordent &elt)
virtual void visitStart (S_inverted_turn &elt)
virtual void visitStart (S_arpeggiate &elt)
virtual void visitStart (S_mordent &elt)
virtual void visitStart (S_notehead &elt)
virtual void visitStart (S_fingering &elt)
virtual void visitStart (S_pluck &elt)
virtual void visitStart (S_down_bow &elt)
virtual void visitStart (S_up_bow &elt)
virtual void visitStart (S_harmonic &elt)
virtual void visitStart (S_snap_pizzicato &elt)
virtual void visitStart (S_staccatissimo &elt)
Protected Member Functions inherited from transposevisitor
virtual void visitStart (S_transpose &elt)
virtual void visitStart (S_diatonic &elt)
virtual void visitStart (S_chromatic &elt)
virtual void visitStart (S_octave_change &elt)
virtual void visitStart (S_double &elt)
Protected Member Functions inherited from midiInstrument
virtual void reset ()
virtual void visitStart (S_midi_instrument &elt)
virtual void visitStart (S_midi_channel &elt)
virtual void visitStart (S_midi_name &elt)
virtual void visitStart (S_midi_bank &elt)
virtual void visitStart (S_midi_program &elt)
virtual void visitStart (S_volume &elt)
virtual void visitStart (S_midi_unpitched &elt)
Protected Member Functions inherited from scoreInstrument
virtual void reset ()
virtual void visitStart (S_score_instrument &elt)
virtual void visitStart (S_instrument_name &elt)
virtual void visitStart (S_instrument_abbreviation &elt)

Protected Attributes

midiwriterfMidiWriter
long fDivisions
long fCurrentDate
long fLastPosition
std::map< int, long > fPendingDurations
long fCurrentDynamics
long fTranspose
long fTPQ
long fCurrentChan
Protected Attributes inherited from notevisitor
bool fInNote

Additional Inherited Members

Public Types inherited from notevisitor
enum  {
  C , D , E , F ,
  G , A , B , last =B ,
  diatonicSteps =last
}
enum  type { kUndefinedType , kPitched , kUnpitched , kRest }
enum  { kUndefinedDynamics = -1 , kUndefinedStaff = 0 , kUndefinedVoice = 0 }
Static Public Member Functions inherited from notevisitor
static int step2i (const std::string &step)
static std::string i2step (int i)
Public Attributes inherited from notevisitor
S_stem fStem
S_accent fAccent
S_strong_accent fStrongAccent
S_staccato fStaccato
S_tenuto fTenuto
S_breath_mark fBreathMark
S_trill_mark fTrill
S_inverted_mordent fInvertedMordent
S_mordent fMordent
S_turn fTurn
S_tremolo fTremolo
S_arpeggiate fArpeggio
S_inverted_turn fInvertedTurn
S_accidental_mark fAccidentalMark
S_notehead fNotehead
S_fermata fFermata
std::string fGraphicType
std::string fAccidental
std::string fCautionary
S_harmonic fHarmonic
S_snap_pizzicato fSnapPizzicato
S_staccatissimo fStaccatissimo
S_up_bow fBowUp
S_down_bow fBowDown
int x_default
Public Attributes inherited from transposevisitor
int fDiatonic
int fChromatic
int fOctaveChange
bool fDouble
Public Attributes inherited from midiInstrument
int fChan
 an optional MIDI channel (-1 when undefined)
int fBank
 an optional MIDI bank number (-1 when undefined)
int fProgram
 a MIDI program change (-1 when undefined)
int fVolume
 a percentage from 0 to 100 (-1 when undefined)
int fUnpitched
 a note number from 1 to 127 (-1 when undefined)
std::string fMIDIName
 MIDI names correspond to ProgramName meta-events within a Standard MIDI File.
std::string fID
 the midi-instrument id
Public Attributes inherited from scoreInstrument
std::string fName
 the score instrument name
std::string fAbbreviation
 the instrument abbreviated name
std::string fID
 the score-instrument id

Detailed Description

Todo
Handling of grace notes. Handling of divisions attribute in coda or segno sound attribute. Handling of actual duration in fine sound element.

Member Function Documentation

◆ visitEnd() [1/10]

virtual void visitEnd ( S_backup & elt)
inlineprotectedvirtual

Reimplemented from visitor< S_backup >.

◆ visitEnd() [2/10]

virtual void visitEnd ( S_forward & elt)
inlineprotectedvirtual

Reimplemented from visitor< S_forward >.

◆ visitEnd() [3/10]

virtual void visitEnd ( S_measure & elt)
protectedvirtual

Reimplemented from visitor< S_measure >.

◆ visitEnd() [4/10]

virtual void visitEnd ( S_midi_instrument & elt)
protectedvirtual

Reimplemented from visitor< S_midi_instrument >.

◆ visitEnd() [5/10]

virtual void visitEnd ( S_note & elt)
protectedvirtual

Reimplemented from notevisitor.

◆ visitEnd() [6/10]

virtual void visitEnd ( S_part & elt)
protectedvirtual

Reimplemented from visitor< S_part >.

◆ visitEnd() [7/10]

virtual void visitEnd ( S_score_instrument & elt)
protectedvirtual

Reimplemented from visitor< S_score_instrument >.

◆ visitEnd() [8/10]

virtual void visitEnd ( S_score_part & elt)
protectedvirtual

Reimplemented from visitor< S_score_part >.

◆ visitEnd() [9/10]

virtual void visitEnd ( S_sound & elt)
inlineprotectedvirtual

Reimplemented from visitor< S_sound >.

◆ visitEnd() [10/10]

virtual void visitEnd ( S_transpose & elt)
protectedvirtual

Reimplemented from visitor< S_transpose >.

◆ visitStart() [1/8]

virtual void visitStart ( S_backup & elt)
inlineprotectedvirtual

Reimplemented from visitor< S_backup >.

◆ visitStart() [2/8]

virtual void visitStart ( S_divisions & elt)
protectedvirtual

Reimplemented from visitor< S_divisions >.

◆ visitStart() [3/8]

virtual void visitStart ( S_duration & elt)
protectedvirtual

Reimplemented from notevisitor.

◆ visitStart() [4/8]

virtual void visitStart ( S_forward & elt)
inlineprotectedvirtual

Reimplemented from visitor< S_forward >.

◆ visitStart() [5/8]

virtual void visitStart ( S_midi_device & elt)
protectedvirtual

Reimplemented from visitor< S_midi_device >.

◆ visitStart() [6/8]

virtual void visitStart ( S_part & elt)
protectedvirtual

Reimplemented from visitor< S_part >.

◆ visitStart() [7/8]

virtual void visitStart ( S_score_part & elt)
protectedvirtual

Reimplemented from visitor< S_score_part >.

◆ visitStart() [8/8]

virtual void visitStart ( S_sound & elt)
protectedvirtual

Reimplemented from visitor< S_sound >.