16 return static_cast< int >( half_note );
21 return frequency * std::pow( 2,
to_int( half_notes ) / 12.0 );
26 return frequency * std::pow( 2, half_notes / 12 );
32 constexpr
auto A = 440.0;
50 constexpr
note_t() noexcept =
default;
52 constexpr
explicit note_t(
double base_note,
int octave_offset = 0 ) noexcept
53 : base_note_( base_note )
55 set_octave_offset( octave_offset );
60 base_note_ = base_note;
65 octave_multiplier_ = std::pow( 2, octave_offset );
70 return base_note_ * octave_multiplier_;
75 double octave_multiplier_{1};
const auto C
Definition: note.hpp:35
note_t
Definition: note.hpp:11
const auto F
Definition: note.hpp:40
const auto Fis
Definition: note.hpp:41
constexpr void set_octave_offset(int octave_offset) noexcept
Definition: note.hpp:63
#define SEQUENCER_ASSERT(cond)
Definition: assert.hpp:8
const auto Dis
Definition: note.hpp:38
double increase_by_half_notes(double frequency, half_note_t half_notes) noexcept
Definition: note.hpp:19
constexpr double frequency() const noexcept
Definition: note.hpp:68
const auto Gis
Definition: note.hpp:43
constexpr void set_base_note(double base_note) noexcept
Definition: note.hpp:58
const auto Cis
Definition: note.hpp:36
const auto D
Definition: note.hpp:37
const auto Ais
Definition: note.hpp:33
double get_harmonic(double frequency, int n)
Definition: note.hpp:78
const auto G
Definition: note.hpp:42
constexpr note_t(double base_note, int octave_offset=0) noexcept
Definition: note.hpp:52
const auto E
Definition: note.hpp:39
const auto B
Definition: note.hpp:34
constexpr auto A
Definition: note.hpp:32
half_note_t
Definition: note.hpp:10
constexpr int to_int(half_note_t half_note) noexcept
Definition: note.hpp:14