Etterna 0.74.4
Loading...
Searching...
No Matches
Public Member Functions | List of all members
TimeSignatureSegment Struct Reference

Identifies when a song changes its time signature. More...

#include <TimingSegments.h>

Inheritance diagram for TimeSignatureSegment:
Inheritance graph
[legend]
Collaboration diagram for TimeSignatureSegment:
Collaboration graph
[legend]

Public Member Functions

auto GetType () const -> TimingSegmentType override
 
auto GetEffectType () const -> SegmentEffectType override
 
auto IsNotable () const -> bool override
 
void DebugPrint () const override
 
auto Copy () const -> TimingSegment *override
 
 TimeSignatureSegment (int iStartRow=ROW_INVALID, int iNum=4, int iDenom=4)
 
 TimeSignatureSegment (const TimeSignatureSegment &other)
 
auto GetNum () const -> int
 
void SetNum (int num)
 
auto GetDen () const -> int
 
void SetDen (int den)
 
void Set (int num, int den)
 
auto ToString (int dec) const -> std::string override
 
auto GetValues () const -> std::vector< float > override
 
auto GetNoteRowsPerMeasure () const -> int
 Retrieve the number of note rows per measure within the TimeSignatureSegment.
 
auto operator== (const TimeSignatureSegment &other) const -> bool
 
auto operator== (const TimingSegment &other) const -> bool override
 
- Public Member Functions inherited from TimingSegment
 TimingSegment (int iRow=ROW_INVALID)
 
 TimingSegment (float fBeat)
 
 TimingSegment (const TimingSegment &other)
 
virtual void Scale (int start, int length, int newLength)
 Scales itself.
 
auto GetRow () const -> int
 
void SetRow (int iRow)
 
auto GetBeat () const -> float
 
void SetBeat (float fBeat)
 
auto operator< (const TimingSegment &other) const -> bool
 
virtual auto operator!= (const TimingSegment &other) const -> bool
 

Additional Inherited Members

- Static Public Attributes inherited from TimingSegment
static const double EPSILON = 1e-6
 

Detailed Description

Identifies when a song changes its time signature.

This only supports simple time signatures. The upper number (called the numerator here, though this isn't properly a fraction) is the number of beats per measure. The lower number (denominator here) is the note value representing one beat.

Member Function Documentation

◆ Copy()

auto TimeSignatureSegment::Copy ( ) const -> TimingSegment*
inlineoverridevirtual

Implements TimingSegment.

◆ DebugPrint()

void TimeSignatureSegment::DebugPrint ( ) const
overridevirtual

Reimplemented from TimingSegment.

◆ GetEffectType()

auto TimeSignatureSegment::GetEffectType ( ) const -> SegmentEffectType
inlineoverridevirtual

Reimplemented from TimingSegment.

◆ GetNoteRowsPerMeasure()

auto TimeSignatureSegment::GetNoteRowsPerMeasure ( ) const -> int
inline

Retrieve the number of note rows per measure within the TimeSignatureSegment.

With BeatToNoteRow(1) rows per beat, then we should have BeatToNoteRow(1)*m_iNumerator beats per measure. But if we assume that every BeatToNoteRow(1) rows is a quarter note, and we want the beats to be 1/m_iDenominator notes, then we should have BeatToNoteRow(1)*4 is rows per whole note and thus BeatToNoteRow(1)*4/m_iDenominator is rows per beat. Multiplying by m_iNumerator gives rows per measure.

Returns
the number of note rows per measure.

◆ GetType()

auto TimeSignatureSegment::GetType ( ) const -> TimingSegmentType
inlineoverridevirtual

Reimplemented from TimingSegment.

◆ GetValues()

std::vector< float > TimeSignatureSegment::GetValues ( ) const -> std::vector<float>
overridevirtual

Reimplemented from TimingSegment.

◆ IsNotable()

auto TimeSignatureSegment::IsNotable ( ) const -> bool
inlineoverridevirtual

Implements TimingSegment.

◆ operator==()

auto TimeSignatureSegment::operator== ( const TimingSegment other) const -> bool
inlineoverridevirtual

Reimplemented from TimingSegment.

◆ ToString()

std::string TimeSignatureSegment::ToString ( int  dec) const -> std::string
overridevirtual

Reimplemented from TimingSegment.


The documentation for this struct was generated from the following files: