MNX Document Model
Loading...
Searching...
No Matches
mnx::sequence::Tuplet Class Reference

Represents a tuplet sequence within a sequence. More...

#include <Sequence.h>

+ Inheritance diagram for mnx::sequence::Tuplet:

Public Member Functions

 Tuplet (const std::shared_ptr< json > &root, json_pointer pointer)
 Constructor for existing Tuplet objects.
 
 Tuplet (Base &parent, const std::string_view &key, unsigned innerCount, const NoteValue::Initializer &innerNoteValue, unsigned outerCount, const NoteValue::Initializer &outerNoteValue)
 Creates a new Tuplet class as a child of a JSON element.
 
 MNX_OPTIONAL_PROPERTY_WITH_DEFAULT (AutoYesNo, bracket, AutoYesNo::Auto)
 bracket style
 
 MNX_REQUIRED_CHILD (ContentArray, content)
 array of events (and tuplets, at least for now)
 
 MNX_REQUIRED_CHILD (NoteValueQuantity, inner)
 Inner quantity: 3 quarters in the time of 2 quarters.
 
 MNX_REQUIRED_CHILD (NoteValueQuantity, outer)
 
 MNX_OPTIONAL_PROPERTY_WITH_DEFAULT (TupletDisplaySetting, showNumber, TupletDisplaySetting::Inner)
 How and whether to show the tuplet number(s)
 
 MNX_OPTIONAL_PROPERTY_WITH_DEFAULT (TupletDisplaySetting, showValue, TupletDisplaySetting::NoNumber)
 How and whether to show the tuplet note value(s)
 
 MNX_OPTIONAL_PROPERTY (int, staff)
 Staff number override (e.g., for cross-staff notes.)
 
- Public Member Functions inherited from mnx::ContentObject
 MNX_OPTIONAL_PROPERTY_WITH_DEFAULT (std::string, type, std::string(ContentTypeValueDefault))
 determines our type in the JSON
 
template<typename T , std::enable_if_t< std::is_base_of_v< ContentObject, T >, int > = 0>
get () const
 Retrieve an element as a specific type.
 
- Public Member Functions inherited from mnx::ArrayElementObject
size_t calcArrayIndex () const
 Calculates the array index of the current instance within the array.
 
template<typename ContainerType >
ContainerType container () const
 Returns the container of the array this element belongs to wrapped as the specified template type.
 
 Object (const std::shared_ptr< json > &root, json_pointer pointer)
 Wraps an Object class around an existing JSON object node.
 
 Object (Base &parent, const std::string_view &key)
 Creates a new Object class as a child of a JSON node.
 
- Public Member Functions inherited from mnx::Object
 Object (const std::shared_ptr< json > &root, json_pointer pointer)
 Wraps an Object class around an existing JSON object node.
 
 Object (Base &parent, const std::string_view &key)
 Creates a new Object class as a child of a JSON node.
 
- Public Member Functions inherited from mnx::Base
 Base (const Base &src)
 Copy constructor.
 
 Base (Base &&src) noexcept
 Move constructor.
 
Baseoperator= (const Base &src)
 Copy assignment operator.
 
Baseoperator= (Base &&src)
 Move assignment operator.
 
std::string dump (int indents=-1)
 Dumps the branch to a string. Useful in debugging.
 
template<typename T >
parent () const
 Returns the parent object for this node.
 
template<typename T >
std::optional< T > getEnclosingElement () const
 Returns the enclosing array element for this instance.
 
json_pointer pointer () const
 Returns the json_pointer for this node.
 

Static Public Attributes

static constexpr std::string_view ContentTypeValue = "tuplet"
 type value that identifies the type within the content array
 

Additional Inherited Members

- Protected Member Functions inherited from mnx::Base
jsonref () const
 Convert this node for retrieval.
 
jsonref ()
 Access the JSON node for modification.
 
const std::shared_ptr< json > & root () const
 Returns the root.
 
 Base (const std::shared_ptr< json > &root, json_pointer pointer)
 Wrap a Base instance around a specific JSON reference using a json_pointer.
 
 Base (json &&jsonRef, Base &parent, const std::string_view &key)
 Construct a Base reference as a child inside a parent node.
 
template<typename T >
getChild (const std::string_view &key) const
 Retrieves and validates a required child node.
 
template<typename T >
setChild (const std::string_view &key, const T &value)
 Sets a child node.
 
template<typename T >
std::optional< T > getOptionalChild (const std::string_view &key) const
 Retrieves an optional child node.
 
- Static Protected Attributes inherited from mnx::ContentObject
static constexpr std::string_view ContentTypeValueDefault = "event"
 default type value that identifies the type within the content array
 

Detailed Description

Represents a tuplet sequence within a sequence.

Constructor & Destructor Documentation

◆ Tuplet()

mnx::sequence::Tuplet::Tuplet ( Base parent,
const std::string_view &  key,
unsigned  innerCount,
const NoteValue::Initializer innerNoteValue,
unsigned  outerCount,
const NoteValue::Initializer outerNoteValue 
)
inline

Creates a new Tuplet class as a child of a JSON element.

Parameters
parentThe parent class instance
keyThe JSON key to use for embedding in parent.
innerCountThe inner count: 3 quarters in the time of 2 quarters
innerNoteValueThe inner amount: 3 quarters in the time of 2 quarters
outerCountThe outer count: 3 quarters in the time of 2 quarters
outerNoteValueThe outer amount: 3 quarters in the time of 2 quarters

Member Function Documentation

◆ MNX_OPTIONAL_PROPERTY_WITH_DEFAULT()

mnx::sequence::Tuplet::MNX_OPTIONAL_PROPERTY_WITH_DEFAULT ( TupletDisplaySetting  ,
showNumber  ,
TupletDisplaySetting::Inner   
)

How and whether to show the tuplet number(s)

Todo:
orient

◆ MNX_REQUIRED_CHILD()

mnx::sequence::Tuplet::MNX_REQUIRED_CHILD ( NoteValueQuantity  ,
outer   
)

Outer quantity: 3 quarters in the time of 2 quarters