Anklang C++ API 0.0.0
Loading...
Searching...
No Matches
TickSignature

#include "transport.hh"

Classes

struct Beat
struct Time

Public Member Functions

int32bar_from_tick (int64 tick) const
int32bar_ticks () const
int64bar_to_tick (int32 bar) const
Beatbeat_from_tick (int64 tick) const
int32beat_ticks () const
int64beat_to_tick (const Beat &beat) const
const uint8 &beat_unit () const
const uint8 &beats_per_bar () const
doublebpm () const
doubleinv_samplerate () const
TickSignature &operator= (const TickSignature &src)
int64sample_from_tick (int64 tick) const
int64sample_to_tick (int64 sample) const
doublesamplerate () const
voidset_bpm (double bpm)
voidset_samplerate (uint samplerate)
boolset_signature (uint8 beats_per_bar, uint8 beat_unit)
int64start_offset () const
doubleticks_per_sample () const
TickSignature ()
TickSignature (const TickSignature &other)
TickSignature (double bpm, uint8 beats_per_bar, uint8 beat_unit)
Timetime_from_tick (int64 tick) const
int64time_to_tick (const Time &time) const

Protected Attributes

int32bar_ticks_
int32beat_ticks_
uint8beat_unit_
uint8beats_per_bar_
doublebpm_
doubleinv_samplerate_
doubleinv_ticks_per_second_
doublesample_per_ticks_
int32samplerate_
int64ticks_per_minute_
doubleticks_per_sample_
doubleticks_per_second_

Static Protected Attributes

static constexpr const int64offset_

Detailed Description

Musical time signature and tick conversions.

Constructor & Destructor Documentation

TickSignature() [1/3]

TickSignature() [2/3]

TickSignature ( double bpm,
uint8 beats_per_bar,
uint8 beat_unit
)

TickSignature() [3/3]

TickSignature ( const TickSignature & other)

Member Function Documentation

samplerate()

double samplerate ( ) const

inv_samplerate()

double inv_samplerate ( ) const

ticks_per_sample()

double ticks_per_sample ( ) const

sample_to_tick()

int64 sample_to_tick ( int64 sample) const

sample_from_tick()

int64 sample_from_tick ( int64 tick) const

bpm()

double bpm ( ) const

bar_ticks()

int32 bar_ticks ( ) const

beat_ticks()

int32 beat_ticks ( ) const

start_offset()

int64 start_offset ( ) const

set_samplerate()

void set_samplerate ( uint samplerate)

Assign sample rate.

set_bpm()

void set_bpm ( double bpm)

Assign tempo in beats per minute.

time_from_tick()

TickSignature::Time time_from_tick ( int64 tick) const

Calculate time from tick, requires set_bpm().

time_to_tick()

int64 time_to_tick ( const Time & time) const

Calculate tick from time, requires set_bpm().

set_signature()

bool set_signature ( uint8 beats_per_bar,
uint8 beat_unit
)

Assign time signature and offset for the signature to take effect.

beats_per_bar()

const uint8 & beats_per_bar ( ) const

beat_unit()

const uint8 & beat_unit ( ) const

bar_from_tick()

int32 bar_from_tick ( int64 tick) const

Calculate bar from tick, requires set_signature().

bar_to_tick()

int64 bar_to_tick ( int32 bar) const

Calculate tick from bar, requires set_signature().

beat_from_tick()

TickSignature::Beat beat_from_tick ( int64 tick) const

Calculate beat from tick, requires set_signature().

beat_to_tick()

int64 beat_to_tick ( const Beat & beat) const

Calculate tick from beat, requires set_signature().

operator=()

TickSignature & operator= ( const TickSignature & src)

Member Data Documentation

offset_

constexpr const int64 offset_
staticconstexprprotected

beats_per_bar_

uint8 beats_per_bar_
protected

Upper numeral (numerator), how many beats constitute a bar.

beat_unit_

uint8 beat_unit_
protected

Lower numeral (denominator in [1 2 4 8 16]), note value that represents one beat.

beat_ticks_

int32 beat_ticks_
protected

bar_ticks_

int32 bar_ticks_
protected

samplerate_

int32 samplerate_
protected

Sample rate (mixing frequency) in Hz.

bpm_

double bpm_
protected

Current tempo in beats per minute.

ticks_per_minute_

int64 ticks_per_minute_
protected

ticks_per_second_

double ticks_per_second_
protected

inv_ticks_per_second_

double inv_ticks_per_second_
protected

ticks_per_sample_

double ticks_per_sample_
protected

sample_per_ticks_

double sample_per_ticks_
protected

inv_samplerate_

double inv_samplerate_
protected

Precalculated `1.0 / samplerate`.