13 #ifndef __MUSICNOTEREADER_H__506A239B_50B0_472d_B070_69BFBEF3C6CB__
14 #define __MUSICNOTEREADER_H__506A239B_50B0_472d_B070_69BFBEF3C6CB__
52 ASSIGNMENT_SYMBOL = _T(
'='),
159 unsigned short m_nDefNoteOctave;
160 unsigned short m_nDefChordOctave;
186 int ParseToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured = NULL);
210 m_Dictionary.clear();
227 m_nDefNoteOctave = nNoteDefOctave;
228 m_nDefChordOctave = nChordDefOctave;
291 bool Parse(
const TCHAR* szTokens);
295 int ParseChannelPressureToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
296 int ParseControllerToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
297 int ParseDictionaryToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
298 int ParseInstrumentToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
299 int ParseKeyPressureToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
300 int ParseKeySignatureToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
301 int ParseLayerToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
302 int ParseMeasureToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
303 int ParseNoteToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
304 int ParsePitchBendToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
305 int ParseSpeedModulatorToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
306 int ParseTempoToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
307 int ParseTimeToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
308 int ParseVoiceToken(TCHAR* szToken,
bool* pbNonContinuableErrorOccured);
310 struct NoteContext :
public Note
312 typedef ChordDef::HALFSTEP HALFSTEP;
316 bool existsAnotherNote;
317 bool anotherIsSequential;
318 bool anotherIsParallel;
320 unsigned short numSwaras;
326 existsAnotherNote(1),
327 anotherIsSequential(0),
328 anotherIsParallel(0),
338 void DecideSequentialOrParallel(NoteContext& ctx);
342 int ParseNoteRoot(TCHAR* szToken, NoteContext& ctx);
345 int ParseNumericNote(TCHAR* szToken, NoteContext& ctx);
348 int ParseRest(TCHAR* szToken, NoteContext& ctx);
351 int ParseLetterNote(TCHAR* szToken, NoteContext& ctx);
354 int ParseNoteDuration(TCHAR* szToken, NoteContext& ctx);
356 int ParseLetterDuration(TCHAR* szToken, NoteContext& ctx);
358 int ParseTuplet(TCHAR* szToken, NoteContext& ctx);
360 int ComputeNoteValue(NoteContext& ctx);
363 int ParseNoteVelocity(TCHAR* szToken, NoteContext& ctx);
366 int ParseNoteOctave(TCHAR* szToken, NoteContext& ctx);
368 int ParseNoteChord(TCHAR* szToken, NoteContext& ctx);
370 int ParseNoteChordInversion(TCHAR* szToken, NoteContext& ctx);
372 int ParseNoteConnector(TCHAR* szToken, NoteContext& ctx);
375 void RaiseNoteEvents(NoteContext& ctx);
386 int GetValueFromDictionary(
const TCHAR* szKey, T* pRetVal);
397 int ParseNumber(TCHAR* szToken, T* pRetVal,
bool& bSuccess,
398 TCHAR MacroBracketStart, TCHAR MacroBracketEnd,
ErrorCode MacroReadErrorCode,
ErrorCode NumberParseErrorCode);
404 #endif // __MUSICNOTEREADER_H__506A239B_50B0_472d_B070_69BFBEF3C6CB__
Specifies the start of 2x speed.
Signifies the Macro end symbol.
Specifies a Channel pressure token.
void SetOctaveDefaults(unsigned short nNoteDefOctave=DEFAULT_NONCHORD_OCTAVE, unsigned short nChordDefOctave=DEFAULT_CHORD_OCTAVE)
Sets the Default values for Note Octaves.
Indicates a Tuplet start.
Note Attack Velocity specifier (Obsolete. only for compatability with JFugue)
Specifies the end of 2x speed.
Definition of a Chord entry.
const KeySignature & GetKeySignature() const
Increments Note Shruti one level upward the Tara Sthayi.
Signifies a Macro start symbol.
Implements a MusicString Parsing functionality
Specifies a seperator token for readability.
Specifies a Controller token.
Specifies a Instrument token.
Specifies 1.5 times the normal duration.
bool Parse(const TCHAR *szTokens)
Used when Duration is to be expressed as a numeric value.
Used when decorating durations for ties.
NoteVelocities
Note Velocities
Class representing the Key Signature.
Note Attack Velocity specifier (Carnatic Mode)
Specifies a KeySignature token.
Note Decay Velocity specifier.
Maniuplates Chord definitions for Western Music
Specifies a Rest Note of one duration.
NoteModifiers
Note Modifiers
void SetKeySignature(const KeySignature &keySig)
Indicates two extra time units [Carnatic Music Only].
NoteDurations
Note Durations
NoteShrutis
Note Shruti Modifiers
Specifies a Measure token.
Specifies a Rest Note token [Western Music Only].
Class representing a Musical Note
ErrorCode
Error code values used by ErrorEventHandlerArgs
void PopulateStandardDefinitions(DICTIONARY &dictionaryObj)
Accessor method to Populate standard macro definitions
std::map< MString, MString, StringLess< const TCHAR * > > DICTIONARY
DefaultOctaves
Default Octave Values
NoteConnectors
Note Connectors
Default non-chord note octave value.
Specifies a Keypressure token.
Specifies a Rest Note of two durations.
Base class that represents a Parser Object.
Indicates one extra time unit [Carnatic Music Only].
Note Parallel connector symbol.
Indicates the Tuplet Ratio.
void LoadChords(const Chords &chords)
Resets the Chord definitions to the supplied values.
Declares KeySignature class used in CFugue MusicString.
Default chord octave value.
Note Sequential connector symbol.
Specifies One-ThirtySecond Note.
Specifies One-Sixteenth Note.
Specifies One-Eight Note.
int ParseToken(TCHAR *szToken, bool *pbNonContinuableErrorOccured=NULL)
Decrements Note Shruti one level downward the Mandra Sthayi.
Specifies a Pitchbend token.
Specifies One-SixtyFourth Note.
Specifies a Dictionary token.