35 time_point
play_note(
note aNote, std::chrono::duration<double>
const& aDuration,
float aAmplitude = 1.0f) final;
36 time_point
play_note(
std::chrono::duration<
double> const& aWhen,
note aNote,
std::chrono::duration<
double> const& aDuration,
float aAmplitude = 1.0f) final;
37 time_point
play_note(time_point aWhen,
note aNote,
std::chrono::duration<
double> const& aDuration,
float aAmplitude = 1.0f) final;
38 time_point
rest(
std::chrono::duration<
double> const& aDuration) final;
45 time_point iInputCursor = 0ULL;
46 time_point iOutputCursor = 0ULL;
49 std::optional<note>
note;
50 std::optional<time_interval> noteLength;
55 std::vector<part> iComposition;
float amplitude() const final
time_point play_note(note aNote, std::chrono::duration< double > const &aDuration, float aAmplitude=1.0f) final
audio_instrument(i_audio_device const &aDevice, neogfx::instrument aInstrument, float aAmplitude=1.0f)
time_point rest(std::chrono::duration< double > const &aDuration) final
void generate(audio_channel aChannel, audio_frame_count aFrameCount, float *aOutputFrames) final
audio_instrument(audio_sample_rate aSampleRate, neogfx::instrument aInstrument, float aAmplitude=1.0f)
void generate_from(audio_channel aChannel, audio_frame_index aFrameFrom, audio_frame_count aFrameCount, float *aOutputFrames) final
std::uint64_t audio_frame_index
basic_length< default_geometry_value_type > length
std::uint64_t audio_frame_count
std::uint64_t audio_sample_rate