107inline constexpr std::array<double, 3>
kCleanAxis = {0.0, 0.5, 1.0};
108inline constexpr std::array<double, 3>
kCleanLoopLpHz = {20000.0, 12000.0, 6000.0};
123inline constexpr std::array<double, 4>
kVintageAxis = {0.0, 0.33, 0.67, 1.0};
126inline constexpr std::array<double, 4>
kVintageBits = {14.0, 12.0, 12.0, 10.0};
139inline constexpr std::array<double, 4>
kTapeAxis = {0.0, 0.33, 0.67, 1.0};
140inline constexpr std::array<double, 4>
kTapeDrive = {1.5, 2.5, 4.0, 6.0};
141inline constexpr std::array<double, 4>
kTapeBias = {0.0, 0.10, 0.20, 0.30};
144inline constexpr std::array<double, 4>
kTapeLossLpHz = {12000.0, 9000.0, 6000.0, 3500.0};
145inline constexpr std::array<double, 4>
kTapeBumpDb = {1.5, 2.0, 3.0, 4.0};
153 0.3739533963, 0.3530347705, 0.3146425708, 0.2804254864};
190inline constexpr std::array<double, 3>
kBbdAxis = {0.0, 0.5, 1.0};
195inline constexpr std::array<double, 3>
kBbdStages = {4096.0, 2048.0, 1024.0};
197inline constexpr std::array<double, 3>
kBbdDrive = {0.10, 0.30, 0.50};
454 0.1736328177, 0.5872051207, 0.7066518389};
456 0.0379101878, 0.8617586156, 1.195357912, 0.546821599,
457 1.874319242, 1.250559327, 1.349688739, 0.5618309026};
459 -4.870968905, -22.02414799, -32.23365298, -35.9700058,
460 -20.85639305, -35.24359399, -23.08806288, -40.0};
464 0.03067430198, 0.1724152232};
466 -1.705785229, -0.6809460063};
509inline constexpr std::array<double, 5>
kTapeSpeedsIps = {1.875, 3.75, 7.5, 15.0, 30.0};
513inline constexpr std::array<double, 5>
kHeadBumpIps = {1.875, 3.75, 7.5, 15.0, 30.0};
514inline constexpr std::array<double, 5>
kHeadBumpHz = {35.0, 45.0, 60.0, 80.0, 105.0};
518inline constexpr std::array<double, 3>
kAgeAxis = {0.0, 0.5, 1.0};
520inline constexpr std::array<double, 3>
kAgeHissDbfs = {-120.0, -78.0, -60.0};
522inline constexpr std::array<double, 3>
kAgeDegrade = {0.0, 0.2, 0.5};
constexpr std::array< double, 4 > kTapePhysicalFeedbackCompensation
Physical-loop compensation at each age knot.
Definition tables.hpp:152
constexpr std::size_t kLossFirOrder48k
Wallace playback loss (Wallace 1951; physical ranges from Bertram 1994) is split across two realizati...
Definition tables.hpp:398
constexpr int kDegradeUpdateSamples
Definition tables.hpp:541
constexpr int kLossIirFitPoints
The smooth spacing × thickness tilt goes to a fitted IIR cascade: how many log-spaced points the leas...
Definition tables.hpp:403
constexpr std::size_t kSpacingPoleSections
Sections in each fitted cascade.
Definition tables.hpp:421
constexpr double kTapeEmphasisDb
Record/playback EQ bracketing the saturator: boost HF into saturation, cut it after,...
Definition tables.hpp:158
constexpr double kTimeSlewCleanMs
Definition tables.hpp:99
constexpr double kTimeOffsetMax
Definition tables.hpp:34
constexpr std::array< double, 4 > kDiffusionStageGain
Definition tables.hpp:248
constexpr int kJaMaxIterations
Newton-Raphson budget.
Definition tables.hpp:373
constexpr double kBbdBandwidthMinHz
Definition tables.hpp:212
constexpr std::array< double, 3 > kDiffusionTankAxis
Definition tables.hpp:279
constexpr double kLoopToneNyquistFraction
Keep the TPT prewarp strictly below Nyquist.
Definition tables.hpp:76
constexpr std::array< double, 3 > kDiffusionGainScale
Definition tables.hpp:252
constexpr std::array< double, 5 > kHeadBumpIps
Head-bump center against speed.
Definition tables.hpp:513
constexpr std::array< double, kSpacingShelfSections > kSpacingShapeShelfX
Definition tables.hpp:455
constexpr std::array< double, 3 > kDiffusionTankModDepth
Tank modulation — this is what makes the cloud granular rather than static.
Definition tables.hpp:311
constexpr std::array< double, 4 > kTapeBias
Definition tables.hpp:141
constexpr std::array< double, 3 > kFlutterAmplitudes
Definition tables.hpp:182
constexpr std::array< double, 3 > kDiffusionTankSizeScale
Tank size scaler and recirculation decay by character amount.
Definition tables.hpp:295
constexpr double kBbdShape
Definition tables.hpp:231
constexpr double kHissLpHz
Hiss: white noise through a 1-pole lowpass, injected AFTER the delay line so it accumulates per repea...
Definition tables.hpp:526
constexpr double kJaPinning
Definition tables.hpp:366
constexpr double kJaSilenceThreshold
Below this |H| and |dH/dt|, magnetization is snapped to 0 so a silent loop cannot hold a frozen DC ma...
Definition tables.hpp:381
constexpr std::array< double, 4 > kTapeBumpDb
Definition tables.hpp:145
constexpr double kVintageEmphasisDb
Definition tables.hpp:135
constexpr std::array< double, 3 > kBbdDrive
Definition tables.hpp:197
constexpr double kDiffusionGainMax
Stability / metallicity guard.
Definition tables.hpp:256
constexpr double kTapeHeadGapM
Definition tables.hpp:506
constexpr double kBbdCompanderTauMs
Compander: hardware τ is set by an external capacitor, so real units vary.
Definition tables.hpp:222
constexpr double kModRateMaxHz
Definition tables.hpp:59
constexpr std::array< double, 5 > kTapeSpeedsIps
The IEC/NAB standard tape-speed set, in inches per second (published).
Definition tables.hpp:509
constexpr std::size_t kThicknessShelfSections
Definition tables.hpp:424
constexpr double kVintageEmphasisHz
3183 Hz is the 50 µs time constant — the published CD/FM-era emphasis standard (IEC 60908),...
Definition tables.hpp:134
constexpr double kDuckReleaseS
Definition tables.hpp:355
constexpr std::array< double, 2 > kDiffusionTankTapFraction
Extra scattered taps read at their own modulated offsets, as a fraction of the branch delay.
Definition tables.hpp:315
constexpr double kBbdFilterCutoffScale
The clock law names the complete wet path's audible -3 dB edge.
Definition tables.hpp:218
constexpr std::array< double, 4 > kTapeLossLpHz
Definition tables.hpp:144
constexpr std::array< double, 3 > kBbdFlutterDepth
Definition tables.hpp:199
constexpr double kTimeOffsetMin
Definition tables.hpp:33
constexpr double kChewVariance
Definition tables.hpp:532
constexpr double kLoopToneHpMaxHz
Definition tables.hpp:71
constexpr std::array< double, 3 > kDiffusionTankMix
How much of the character's output is the tank rather than the bare diffuser.
Definition tables.hpp:301
constexpr std::array< double, 4 > kDiffusionStageMs
Definition tables.hpp:246
constexpr std::array< double, 3 > kAgeDegrade
Definition tables.hpp:522
constexpr int kControlInterval
Coefficient recomputation and stochastic-walk stepping cadence, in samples.
Definition tables.hpp:40
constexpr double kWowOuSigma
Definition tables.hpp:175
constexpr double kDiffusionTankDelaySlewMs
Live character automation moves tank taps toward their new positions over a short continuous glide in...
Definition tables.hpp:326
constexpr std::array< double, 3 > kAgeAxis
Age macro.
Definition tables.hpp:518
constexpr double kFlutterPhaseRight
Right-channel flutter phase offset, in cycles.
Definition tables.hpp:187
constexpr double kChewCleanScaleS
Chew — an intermittent dropout modeled as a two-state machine.
Definition tables.hpp:530
constexpr std::array< double, 3 > kBbdJitterAmount
Definition tables.hpp:198
constexpr std::array< double, 3 > kFlutterPhases
Definition tables.hpp:183
constexpr double kLoopToneHpMinHz
User-facing in-loop tone stage.
Definition tables.hpp:70
constexpr std::array< double, kSpacingPoleSections > kSpacingShapePoleX
THE FITTED SHAPES, as shipped.
Definition tables.hpp:453
constexpr std::array< double, 3 > kBbdAxis
Definition tables.hpp:190
constexpr int kLossIirFitStarts
Definition tables.hpp:483
constexpr double kLoopToneResMin
Resonance range for both loop-tone filters.
Definition tables.hpp:82
constexpr double kReverseLineMs
Delay the CLOCK-DOMAIN characters' own line runs at while reverse is engaged, in milliseconds.
Definition tables.hpp:350
constexpr double kLoopToneLpMinHz
Definition tables.hpp:72
constexpr double kTimeSlewBbdMs
Definition tables.hpp:102
constexpr double kStereoDecorr
Right-channel depth scaler for every shared-LFO modulation.
Definition tables.hpp:88
constexpr double kJaInterdomainCoupling
Definition tables.hpp:368
constexpr std::array< double, 2 > kDiffusionTankApAMs
The two decay-diffuser allpasses per branch. [design parameters].
Definition tables.hpp:286
constexpr double kModRateMinHz
Generic modulation LFO: log rate map and maximum depth as a fraction of delay time.
Definition tables.hpp:58
constexpr std::array< double, 3 > kAgeChewDepth
Definition tables.hpp:521
constexpr double kTapeDcBlockHz
In-loop DC blocker.
Definition tables.hpp:168
constexpr double kDiffusionLoopHpHz
Diffusion loop filters. [LP is a design parameter].
Definition tables.hpp:264
constexpr double kWowOuNoiseLpHz
Definition tables.hpp:176
constexpr double kTimeSlewVintageMs
Definition tables.hpp:100
constexpr std::array< double, 3 > kDiffusionTankDampHz
In-tank damping.
Definition tables.hpp:305
constexpr std::size_t kLossPoleSections
Definition tables.hpp:426
constexpr double kWowOuTheta
Definition tables.hpp:174
constexpr std::array< double, 2 > kDiffusionTankApBMs
Definition tables.hpp:287
constexpr double kDuckThreshold
Definition tables.hpp:356
constexpr double kMaxDelayMs
Maximum left-channel base delay and stereo-offset bounds.
Definition tables.hpp:32
constexpr std::array< double, 4 > kVintageInternalRateHz
Definition tables.hpp:124
constexpr double kHysteresisHalfBandStopbandDb
Definition tables.hpp:388
constexpr double kTimeSlewTapeMs
Definition tables.hpp:101
constexpr double kDiffusionTankApGain1
Definition tables.hpp:288
constexpr double kBbdCompanderFloor
Definition tables.hpp:223
constexpr std::array< double, 3 > kCleanAxis
Definition tables.hpp:107
constexpr double kBbdBandwidthDivisor
Bandwidth law: the usable passband must sit well below the clock's Nyquist (the published aliasing co...
Definition tables.hpp:211
constexpr double kTapeBumpQ
Definition tables.hpp:164
constexpr std::uint32_t kPrngSeed
PRNG seed.
Definition tables.hpp:92
constexpr double kDiffusionLoopLpHz
Definition tables.hpp:265
constexpr double kTapeEmphasisHz
Definition tables.hpp:159
constexpr double kLoopLpBypassHz
A loop lowpass at or above this cutoff is BYPASSED rather than run.
Definition tables.hpp:116
constexpr double kLossBankCrossfadeS
NOTE: there are no age knots and no interpolation along the age axis.
Definition tables.hpp:500
constexpr std::array< double, 4 > kTapeDrive
Definition tables.hpp:140
constexpr std::array< double, kThicknessShelfSections > kThicknessShapeShelfDb
Definition tables.hpp:465
constexpr double kBbdFlutterRateBaseHz
BBD flutter rate map, Hz.
Definition tables.hpp:238
constexpr std::array< double, 2 > kDiffusionTankDelayBMs
Definition tables.hpp:284
constexpr double kTapeCoatingThicknessM
Fixed tape geometry, in metres.
Definition tables.hpp:505
constexpr double kDiffusionTankApGain2
Definition tables.hpp:289
constexpr double kVintageAntiAliasFraction
Anti-alias / reconstruction cutoff as a fraction of the internal rate.
Definition tables.hpp:129
constexpr std::array< double, 2 > kDiffusionTankModRatesHz
Definition tables.hpp:312
constexpr std::array< double, kThicknessPoleSections > kThicknessShapePoleX
Definition tables.hpp:461
constexpr double kJaLangevinClamp
Langevin argument clamp — keeps coth() and its derivative in the range where the rational approximati...
Definition tables.hpp:378
constexpr std::array< double, 3 > kDiffusionSizeScale
Definition tables.hpp:251
constexpr std::size_t kThicknessPoleSections
Definition tables.hpp:423
constexpr int kBbdOversample
Internal oversampling of the clocked core.
Definition tables.hpp:206
constexpr double kDuckAttackS
Definition tables.hpp:354
constexpr std::array< double, 3 > kAgeSpacingUm
Definition tables.hpp:519
constexpr std::array< double, 3 > kCleanLoopHpHz
Definition tables.hpp:109
constexpr double kChewLpHz
Definition tables.hpp:535
constexpr std::array< double, 4 > kVintageAxis
Definition tables.hpp:123
constexpr std::array< double, 3 > kBbdStages
PUBLISHED chip stage counts (Panasonic MN3005 / MN3008 / MN3007 datasheets), not design parameters: t...
Definition tables.hpp:195
constexpr std::array< double, kSpacingShelfSections > kSpacingShapeShelfDb
Definition tables.hpp:458
constexpr double kLoopToneResMax
Definition tables.hpp:83
constexpr double kSaturatedFeedbackMax
Feedback ceiling for the saturating characters.
Definition tables.hpp:54
constexpr std::array< double, 2 > kDiffusionModRatesHz
Definition tables.hpp:261
constexpr std::array< double, 4 > kTapeWowDepthMs
Definition tables.hpp:142
constexpr double kJaReversibility
Definition tables.hpp:367
constexpr double kBbdJitterSmoothness
Definition tables.hpp:235
constexpr std::array< double, 3 > kDiffusionAxis
Definition tables.hpp:250
constexpr std::array< double, kThicknessShelfSections > kThicknessShapeShelfX
Definition tables.hpp:463
constexpr double kLoopToneLpMaxHz
Definition tables.hpp:73
constexpr double kBbdJitterMax
Clock jitter, as a fraction of the clock period. [1e-4–2e-3].
Definition tables.hpp:234
constexpr std::array< double, 3 > kAgeHissDbfs
Definition tables.hpp:520
constexpr double kDegradeGainDipDb
Definition tables.hpp:540
constexpr int kLossIirFitRestarts
Definition tables.hpp:482
constexpr double kDegradeMinLpHz
Degrade — continuous wear.
Definition tables.hpp:539
constexpr double kJaAnhystereticShape
Definition tables.hpp:365
constexpr std::array< double, 4 > kTapeAxis
Definition tables.hpp:139
constexpr double kParamGlideS
De-zipper glide for scalar params (feedback, crossfeed, duck, freeze, and the character table's per-s...
Definition tables.hpp:44
constexpr double kChewPower
Definition tables.hpp:534
constexpr double kBbdBandwidthMaxHz
Definition tables.hpp:213
constexpr double kLossShapeMinX
Normalized-frequency range each shape is fitted over, and how many log-spaced points.
Definition tables.hpp:471
constexpr double kLossShapeMaxX
Definition tables.hpp:472
constexpr std::size_t kLossSearchDimension
Search dimension of ONE shape fit (the larger of the two).
Definition tables.hpp:432
constexpr double kJaConvergenceThreshold
Definition tables.hpp:374
constexpr double kJaSaturationMagnetization
PUBLISHED γ-Fe2O3 material constants (Jiles, Thoelke & Devine 1992, reproduced in Chowdhury 2019).
Definition tables.hpp:364
constexpr std::size_t kHysteresisHalfBandTaps
Hysteresis oversampling factor and half-band design.
Definition tables.hpp:387
constexpr double kFlutterBaseHz
Flutter: published band 5–100 Hz.
Definition tables.hpp:181
constexpr std::array< double, 4 > kTapeFlutterDepthMs
Definition tables.hpp:143
constexpr double kUnsaturatedFeedbackMax
Feedback ceiling for the characters with NO in-loop saturator.
Definition tables.hpp:49
constexpr double kChewDegradedScaleS
Definition tables.hpp:531
constexpr std::size_t kSpacingShelfSections
Definition tables.hpp:422
constexpr double kDiffusionTankLowGuardHz
In-tank low cut.
Definition tables.hpp:322
constexpr int kReverseFadeSamples
Raised-cosine splice fade at each end of a reversed segment, in samples.
Definition tables.hpp:331
constexpr double kModMaxDepth
Definition tables.hpp:60
constexpr double kBbdCompanderDriveScale
The compander holds loop level near the rail, so the waveshaper's drive is backed off when it runs be...
Definition tables.hpp:227
constexpr double kDiffusionModDepthSamples
Anti-metallic modulation of stages 1 and 3 (Dattorro modulates his diffusers).
Definition tables.hpp:260
constexpr std::array< double, 3 > kDiffusionTankDecay
Definition tables.hpp:296
constexpr double kWowRateHz
Wow: periodic + stochastic.
Definition tables.hpp:173
constexpr std::array< double, 4 > kVintageBits
Definition tables.hpp:126
constexpr std::array< double, 5 > kHeadBumpHz
Definition tables.hpp:514
constexpr std::size_t kBbdMaxStages
Largest stage count any table knot may request; sizes the bucket buffer.
Definition tables.hpp:202
constexpr double kBbdDriveGainSpan
Asymmetric soft clip: gain map and DC offset for even-harmonic content.
Definition tables.hpp:230
constexpr double kTapeBumpHz
Loss stand-in head bump (the physical tier replaces this with a speed-dependent center; see kHeadBump...
Definition tables.hpp:163
constexpr std::array< double, 3 > kCleanLoopLpHz
Definition tables.hpp:108
constexpr double kMaxAddressableDelayMs
Definition tables.hpp:35
constexpr double kChewTransitionS
Definition tables.hpp:533
constexpr double kBbdFlutterRateSpanHz
Definition tables.hpp:239
constexpr std::size_t kLossShelfSections
Definition tables.hpp:428
constexpr double kJaMakeupToleranceDb
Makeup-gain tolerance around unity small-signal gain, in dB.
Definition tables.hpp:391
constexpr int kLossIirFitIterations
Simplex iterations per start, restarts per start, and how many starts.
Definition tables.hpp:481
constexpr double kLossShelfMinDb
Deepest cut any one shelf may ask for.
Definition tables.hpp:486
constexpr std::array< double, 2 > kDiffusionTankDelayAMs
Branch delays in ms, mutually prime-ish so their comb nulls never align.
Definition tables.hpp:283
constexpr double kTimeSlewDiffusionMs
Definition tables.hpp:103
constexpr double kHouseHalfBandStopbandDb
Definition oversampling_fir.hpp:22
constexpr std::size_t kHouseHalfBandTaps
Pulp's low-latency linear-phase half-band design.
Definition oversampling_fir.hpp:21
@ e
Definition formant_filter_bank.hpp:20
Linear-phase 2x FIR stage used by the realtime oversampler.