DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
AnalogConstants.h File Reference

Reference constants from analog-hardware research and measurement. More...

#include <array>
Include dependency graph for AnalogConstants.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  dspark
 Main namespace for the DSPark framework.
 
namespace  dspark::AnalogRandom
 
namespace  dspark::AnalogRandom::NoiseConstants
 
namespace  dspark::AnalogRandom::NoiseConstants::Thermal
 
namespace  dspark::AnalogRandom::NoiseConstants::Shot
 
namespace  dspark::AnalogRandom::NoiseConstants::Flicker
 
namespace  dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors
 
namespace  dspark::AnalogRandom::SaturationConstants
 
namespace  dspark::AnalogRandom::SaturationConstants::General
 
namespace  dspark::AnalogRandom::SaturationConstants::Tube
 
namespace  dspark::AnalogRandom::SaturationConstants::Tape
 
namespace  dspark::AnalogRandom::ComponentConstants
 
namespace  dspark::AnalogRandom::ComponentConstants::Resistors
 
namespace  dspark::AnalogRandom::ComponentConstants::Capacitors
 
namespace  dspark::AnalogRandom::ComponentConstants::TransistorsValves
 
namespace  dspark::AnalogRandom::ComponentConstants::Transformers
 
namespace  dspark::AnalogRandom::EquipmentConstants
 
namespace  dspark::AnalogRandom::EquipmentConstants::TapeMachines
 
namespace  dspark::AnalogRandom::EquipmentConstants::Preamplifiers
 
namespace  dspark::AnalogRandom::EquipmentConstants::Compressors
 
namespace  dspark::AnalogRandom::EquipmentConstants::Equalizers
 
namespace  dspark::AnalogRandom::EquipmentConstants::Consoles
 
namespace  dspark::AnalogRandom::VariationPercent
 

Variables

constexpr double dspark::AnalogRandom::NoiseConstants::Thermal::BOLTZMANN_CONSTANT = 1.380649e-23
 
constexpr double dspark::AnalogRandom::NoiseConstants::Thermal::ROOM_TEMP_KELVIN = 293.15
 
constexpr double dspark::AnalogRandom::NoiseConstants::Thermal::TYPICAL_RESISTANCE = 1000.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Thermal::NOISE_BANDWIDTH = 20000.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Shot::ELEMENTARY_CHARGE = 1.602176634e-19
 
constexpr double dspark::AnalogRandom::NoiseConstants::Shot::TYPICAL_DC_CURRENT = 1.0e-3
 
constexpr double dspark::AnalogRandom::NoiseConstants::Shot::AUDIO_BANDWIDTH = 20000.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Flicker::ALPHA_PINK = 1.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Flicker::ALPHA_BROWN = 2.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Flicker::SPECTRAL_SLOPE_DB_PER_OCTAVE_PINK = -3.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::Flicker::SPECTRAL_SLOPE_DB_PER_OCTAVE_BROWN = -6.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::NEVE_1073_EIN_DBU = -125.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::NEVE_1073_NOISE_LINE_DBU = -83.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::API_512C_EIN = -129.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::LA_2A_NOISE_DB_BELOW_10DBM = -75.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::AMPEX_351_SNR_DB = 55.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::STUDER_C37_SNR_DB = 75.0
 
constexpr double dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::TAPE_NOISE_OFFSET_DB = 8.0
 
constexpr std::array< double, 7 > dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::HUM_FREQUENCIES_HZ { 50.0, 60.0, 100.0, 120.0, 180.0, 240.0, 300.0 }
 
constexpr std::array< double, 7 > dspark::AnalogRandom::NoiseConstants::PracticalNoiseFloors::HUM_AMPLITUDES_DB
 
constexpr double dspark::AnalogRandom::SaturationConstants::General::DRIVE_THRESHOLD_DB = -6.0
 
constexpr double dspark::AnalogRandom::SaturationConstants::General::MAX_THD_PERCENTAGE = 0.07
 
constexpr double dspark::AnalogRandom::SaturationConstants::Tube::EVEN_HARMONIC_DOMINANCE_RATIO = 0.7
 
constexpr std::array< double, 3 > dspark::AnalogRandom::SaturationConstants::Tube::TRANSFER_FUNCTION_COEFFS { 1.0, 0.5, 0.1 }
 
constexpr double dspark::AnalogRandom::SaturationConstants::Tape::ODD_HARMONIC_DOMINANCE_RATIO = 0.6
 
constexpr double dspark::AnalogRandom::SaturationConstants::Tape::SATURATION_THRESHOLD_DB = 0.0
 
constexpr double dspark::AnalogRandom::SaturationConstants::Tape::HIGH_END_ROLL_OFF_HZ = 10000.0
 
constexpr double dspark::AnalogRandom::SaturationConstants::Tape::LOW_END_BOOST_DB = 2.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::Resistors::TOLERANCE_PERCENTAGE_1 = 1.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::Resistors::TOLERANCE_PERCENTAGE_5 = 5.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::Resistors::TOLERANCE_PERCENTAGE_10 = 10.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::Resistors::AGING_DRIFT_RATE_PERCENTAGE_PER_YEAR = 0.5
 
constexpr double dspark::AnalogRandom::ComponentConstants::Capacitors::AGING_RATE_X7R_PERCENT_PER_DECADE_HOUR = -2.5
 
constexpr double dspark::AnalogRandom::ComponentConstants::Capacitors::AGING_RATE_Y5V_PERCENT_PER_DECADE_HOUR = -7.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::Capacitors::CURIE_POINT_TEMPERATURE_CELSIUS = 125.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::TransistorsValves::GAIN_VARIATION_PERCENTAGE = 5.0
 
constexpr double dspark::AnalogRandom::ComponentConstants::TransistorsValves::TEMPERATURE_SENSITIVITY_FACTOR = 0.1
 
constexpr double dspark::AnalogRandom::ComponentConstants::TransistorsValves::AGING_FACTOR_GAIN_DRIFT = 0.2
 
constexpr double dspark::AnalogRandom::ComponentConstants::Transformers::SATURATION_THRESHOLD_FLUX_DENSITY_TESLAS = 1.5
 
constexpr double dspark::AnalogRandom::ComponentConstants::Transformers::HIGH_FREQUENCY_ROLL_OFF_HZ = 10000.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::TapeMachines::WOW_DEPTH_PERCENTAGE = 0.1
 
constexpr double dspark::AnalogRandom::EquipmentConstants::TapeMachines::FLUTTER_DEPTH_PERCENTAGE = 0.15
 
constexpr double dspark::AnalogRandom::EquipmentConstants::TapeMachines::TAPE_HISS_SNR_DB = 55.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::TapeMachines::TAPE_SATURATION_THRESHOLD_DB = 0.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Preamplifiers::MAX_MIC_GAIN_DB = 80.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Preamplifiers::EIN_AT_MAX_GAIN_DBU = -125.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Preamplifiers::SATURATION_THRESHOLD_DB = -6.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Preamplifiers::THD_PERCENTAGE = 0.07
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Compressors::MAX_GAIN_REDUCTION_DB = 40.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Compressors::THD_AT_10DBM_PERCENT = 0.35
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Compressors::FIXED_ATTACK_TIME_SECONDS = 0.01
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Compressors::FIXED_RELEASE_TIME_SECONDS = 0.5
 
constexpr std::array< double, 4 > dspark::AnalogRandom::EquipmentConstants::Equalizers::FREQUENCY_POINTS_LOW_HZ { 20.0, 30.0, 60.0, 100.0 }
 
constexpr std::array< double, 3 > dspark::AnalogRandom::EquipmentConstants::Equalizers::FREQUENCY_POINTS_HIGH_HZ { 3000.0, 5000.0, 10000.0 }
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Equalizers::BANDWIDTH_CONTROL_RANGE = 1.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Consoles::CROSSTALK_LEVEL_DB_AT_1KHZ = -70.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Consoles::CROSSTALK_FREQUENCY_SLOPE_DB_PER_OCTAVE = 6.0
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Consoles::VINTAGE_CROSSTALK_MULTIPLIER = 1.5
 
constexpr double dspark::AnalogRandom::EquipmentConstants::Consoles::MODERN_CROSSTALK_MULTIPLIER = 0.5
 
constexpr float dspark::AnalogRandom::VariationPercent::TapeMachine = 0.1f
 
constexpr float dspark::AnalogRandom::VariationPercent::VacuumTube = 5.0f
 
constexpr float dspark::AnalogRandom::VariationPercent::Transistor = 3.0f
 
constexpr float dspark::AnalogRandom::VariationPercent::Compressor = 1.5f
 
constexpr float dspark::AnalogRandom::VariationPercent::Equalizer = 1.0f
 

Detailed Description

Reference constants from analog-hardware research and measurement.

A curated collection of physical constants, measured noise floors, component tolerances, and classic-equipment behaviour figures. They document the real-world values that the framework's analog-modelling defaults are derived from, and are available for users building their own component models.

The constants deliberately live inside the dspark::AnalogRandom namespace: that is the analog noise/drift subsystem defined in Core/AnalogRandom.h (Generator, NoiseType, AnalogComponent), and this header supplies the measured data that subsystem's defaults are calibrated against. Including either header alone is fine; they reopen the same namespace.

None of these constants is required by the DSP hot paths: this header is pure reference data with zero runtime cost.

Dependencies: C++20 standard library only (<array>).

Definition in file AnalogConstants.h.