MUSX Document Model
Loading...
Searching...
No Matches
musx::dom::NoteInfoPtr Class Reference

Wraps an EntryInfo instance and a note index. More...

#include <Entries.h>

Public Member Functions

 NoteInfoPtr ()
 Default constructor.
 
 NoteInfoPtr (const EntryInfoPtr &entryInfo, size_t noteIndex)
 Constructor.
 
 operator bool () const
 Provides a boolean conversion based on whether the EntryInfoPtr is valid and the note index is valid.
 
bool isSameNote (const NoteInfoPtr &src) const
 Returns whether the input and the current instance refer to the same note.
 
std::shared_ptr< const Noteoperator-> () const
 Allows -> access to the underlying Note instance.
 
EntryInfoPtr getEntryInfo () const
 Gets the entry info for this note.
 
std::tuple< Note::NoteName, int, int, int > calcNoteProperties () const
 Calculates the note name, octave number, actual alteration, and staff position.
 
NoteInfoPtr calcTieTo () const
 Calculates the note that this note could tie to. Check the return value's Note::tieEnd to see if there is actually a tie end.
 
NoteInfoPtr calcTieFrom () const
 Calculates the note that this note could tie from. Check the return value's Note::tieStart to see if there is actually a tie.
 
InstCmper calcStaff () const
 Calculates the staff number, taking into account cross staffing.
 
std::unique_ptr< music_theory::TransposercreateTransposer () const
 Creates a transposer for this Note instance.
 

Detailed Description

Wraps an EntryInfo instance and a note index.

Constructor & Destructor Documentation

◆ NoteInfoPtr()

musx::dom::NoteInfoPtr::NoteInfoPtr ( const EntryInfoPtr entryInfo,
size_t  noteIndex 
)
inline

Constructor.

Parameters
entryInfo
noteIndex

Member Function Documentation

◆ calcNoteProperties()

std::tuple< Note::NoteName, int, int, int > musx::dom::NoteInfoPtr::calcNoteProperties ( ) const

Calculates the note name, octave number, actual alteration, and staff position.

Returns
A tuple containing:
  • NoteName: The note name (C, D, E, F, G, A, B)
  • int: The octave number (where 4 is the middle C octave)
  • int: The actual alteration in EDO divisions (normally semitones), relative to natural
  • int: The staff position of the note relative to the staff reference line. (For 5-line staves this is the top line.)

◆ calcTieFrom()

NoteInfoPtr musx::dom::NoteInfoPtr::calcTieFrom ( ) const

Calculates the note that this note could tie from. Check the return value's Note::tieStart to see if there is actually a tie.

Returns
The candidate note or an empty NoteInfoPtr if no candidate was found.

◆ calcTieTo()

NoteInfoPtr musx::dom::NoteInfoPtr::calcTieTo ( ) const

Calculates the note that this note could tie to. Check the return value's Note::tieEnd to see if there is actually a tie end.

Returns
The candidate note or an empty NoteInfoPtr if no candidate was found.

◆ createTransposer()

std::unique_ptr< music_theory::Transposer > musx::dom::NoteInfoPtr::createTransposer ( ) const

Creates a transposer for this Note instance.

Returns
A unique pointer to a transposer for this Note.