Contents

class

SushiDSP::TriodeStage

A common-cathode triode gain stage: the grid node solved by Newton-Raphson against a Norman grid-conduction law referenced to the cathode, an inverting linear plate gain, and a two-sided tanh plate ceiling from the stage's PlateSwing, the composite transfer antialiased by an AntiderivativeAntialiaser.

Declared in
include/SushiDSP/circuits/stages/TriodeStage.hpp

Specified by docs/archive/superpowers/specs/2026-09-07-triode-plate-swing-design.md section 3 and docs/archive/superpowers/specs/2026-09-07-grid-knee-antialiasing-design.md sections 3 and 15.

Public member functions

TriodeStage(float source_resistance_ohms, float grid_leak_resistance_ohms, float cathode_bias_volts, float gain, const GridConductionLaw &grid_conduction, const PlateSwing &plate_swing)

Builds a stage whose plate is bounded by its swing and whose grid conducts on the given law, referenced to the cathode.

Parameters

source_resistance_ohms

Effective source resistance feeding the grid.

grid_leak_resistance_ohms

The grid-leak resistor to the cathode-bias voltage.

cathode_bias_volts

The stage's DC operating point, Vgk at rest.

gain

The common-cathode stage's inverting linear gain from grid to plate.

Precondition

cathode_bias_volts < 0, so the grid rests below the cathode.

Precondition

gain > 0, and both plate_swing headrooms > 0.

float process_sample(float input_voltage)

Processes one sample through the stage.

Parameters

input_voltage

The stage's input signal voltage for this sample, referenced to the stage's own bias point; a zero input leaves the grid at the cathode-bias voltage.

Returns

The inverted plate output voltage, bounded by the plate swing and antialiased over the interval from the previous sample. Always finite.

float peak_grid_excursion_volts() const

Returns the largest |Vg - Vk| the grid has reached since the last reset().

void reset()

Resets the Newton-Raphson warm start to the bias point, clears the peak and drops the antialiaser's previous sample.