#include #include #include #include #include namespace psemek::audio { stream_ptr triangle_wave(float frequency) { auto func = [frequency](float t){ t *= frequency; return 4.f * std::abs(t - std::floor(t + 0.5f)) - 1.f; }; return util::to_shared(generator_stream(func)); } }