Files
FluidSimCpp/include/FluidSim/AudioProcessing.hpp

20 lines
582 B
C++

#pragma once
namespace fluidsim::port {
struct AudioFrame { float left{}, right{}; };
struct Vec3 { float x{}, y{}, z{}; bool operator==(const Vec3&) const = default; };
struct AudioListener { Vec3 position{}, right{1,0,0}; };
// Simple flow-derivative source used by the Helmholtz and pulse scenarios.
class SoundProcessor {
public:
float gain{0.005f};
explicit SoundProcessor(int sample_rate = 44100, float listener_distance = 1.0f);
float process(float mass_flow_out);
private:
float dt_{}, scale_factor_{}, previous_flow_{};
};
} // namespace fluidsim::port