#include #include #include #include #include namespace psemek::audio { stream_ptr square_wave(float frequency) { auto func = [o = oscillator{frequency}]() mutable { return o.next().imag() > 0.f ? 1.f : -1.f; }; return util::to_shared(generator_stream(func)); } }