25 lines
886 B
C#
25 lines
886 B
C#
namespace FluidSim.Interfaces
|
|
{
|
|
/// <summary>
|
|
/// A Connection that also produces an audio sample from the pressure drop across it.
|
|
/// </summary>
|
|
public class SoundConnection : Connection
|
|
{
|
|
/// <summary>Gain applied to the normalised pressure difference.</summary>
|
|
public float Gain { get; set; } = 1.0f;
|
|
|
|
/// <summary>Reference pressure used for normalisation (Pa). Default: 1 atm.</summary>
|
|
public double ReferencePressure { get; set; } = 101325.0;
|
|
|
|
public SoundConnection(Port a, Port b) : base(a, b) { }
|
|
|
|
/// <summary>
|
|
/// Returns a normalised audio sample proportional to the pressure difference.
|
|
/// </summary>
|
|
public float GetAudioSample()
|
|
{
|
|
double dp = PortA.Pressure - PortB.Pressure;
|
|
return (float)(dp / ReferencePressure) * Gain;
|
|
}
|
|
}
|
|
} |