Update audio example

This commit is contained in:
Nikita Lisitsa 2022-10-08 19:49:17 +03:00
parent af2bab53b9
commit f85ee1f7ba

View file

@ -4,6 +4,7 @@
#include <psemek/audio/wave/sawtooth.hpp> #include <psemek/audio/wave/sawtooth.hpp>
#include <psemek/audio/wave/square.hpp> #include <psemek/audio/wave/square.hpp>
#include <psemek/audio/wave/triangle.hpp> #include <psemek/audio/wave/triangle.hpp>
#include <psemek/audio/wave/karplus_strong.hpp>
#include <psemek/audio/effect/volume.hpp> #include <psemek/audio/effect/volume.hpp>
#include <psemek/audio/effect/fade_in.hpp> #include <psemek/audio/effect/fade_in.hpp>
#include <psemek/audio/effect/fade_out.hpp> #include <psemek/audio/effect/fade_out.hpp>
@ -74,7 +75,7 @@ struct audio_app
mixer_ = audio::make_mixer(); mixer_ = audio::make_mixer();
volume_control_ = audio::volume_stereo(mixer_, 0.5f, 0.5f, 0.1f); volume_control_ = audio::volume_stereo(mixer_, 0.5f, 0.5f, 0.1f);
pitch_control_ = audio::pitch(volume_control_, 1.f, 0.1f); pitch_control_ = audio::pitch(volume_control_, 1.f, 0.025f);
auto compressor = audio::compressor(pitch_control_, audio::from_db(-2.f), 0.95f, 0.002f, 1.f, audio::from_db(1.f)); auto compressor = audio::compressor(pitch_control_, audio::from_db(-2.f), 0.95f, 0.002f, 1.f, audio::from_db(1.f));
pause_control_ = audio::pause(compressor, false, 0.01f); pause_control_ = audio::pause(compressor, false, 0.01f);
engine_.output()->stream(pause_control_); engine_.output()->stream(pause_control_);
@ -87,7 +88,7 @@ struct audio_app
if (key_to_midi.contains(key) && !channels_.contains(key)) if (key_to_midi.contains(key) && !channels_.contains(key))
{ {
int midi = key_to_midi.at(key); int midi = key_to_midi.at(key);
auto tone = audio::sine_wave(440.f * std::pow(2.f, (midi - 69) / 12.f)); auto tone = audio::karplus_strong(440.f * std::pow(2.f, (midi - 69) / 12.f));
channels_[key] = mixer_->add(audio::fade_in(tone, 0.002f)); channels_[key] = mixer_->add(audio::fade_in(tone, 0.002f));
} }