• WARNING: Tube/Valve amplifiers use potentially LETHAL HIGH VOLTAGES.
    Building, troubleshooting and testing of these amplifiers should only be
    performed by someone who is thoroughly familiar with
    the safety precautions around high voltages.

New loadline calculator

Hi folks,

I used to use Giuseppe Amato's loadline calculator quite a bit, but grew frustrated with some of its limitations (and annoyed at the ads and other clutter). So, I created my own. It's open source and hosted on github.com, so in theory should never disappear. If I'm no longer able to maintain it, someone else can fork the project and carry on.

You can access it here: https://mjmvisser.github.io/tubestudio/

Source is here: https://github.com/mjmvisser/tubestudio/

Some notable differences:
  • multiple SPICE models are supported for each tube, and the source for each is linked
  • supported mathematical models are:
    • Koren triode
    • Koren pentode
    • Ayumi triode
    • Ayumi pentode
    • Paintkit triode
    • Paintkip pentode
    • Robert Weaver's pentode model
    • CurveCaptor's extensions to the Rydel and Koren models
    • Adrian Immler's triode model
  • link to a datasheet is included for each tube
  • both fixed and cathode bias are supported
  • you can edit the grid bias voltage directly, and all linked parameters update
  • output is graphed according to peak input headroom
  • max and average output power and effective mu are calculated for you
  • all parameters are saved in the URL, so you can bookmark or link directly to a parameterized model
Currently the following tubes are supported, but it's trivial to add additional ones since I wrote a little tool to extract parameters for supported model types directly from SPICE files:
  • 12AX7
  • 7025
  • 6L6GC
  • 6L6
  • EF80
  • 6P25B
  • 6V6
  • 6N16B
  • 6N17B
  • 6N21B
  • 6P30B
  • 6P37N-V

Here's what it looks like:
Screenshot 2025-05-25 at 3.47.01 PM.png


Hope you find this useful!

cheers,
-Mark
 
Last edited:
Is there a link to the source on github? I couldn't find the repo itself, or I don't know how to work back from a github.io site to find it I guess.

The Average Output Power is giving values that don't make sense to me (way too high, and much higher than the Max Output Power above).
 
OK, I think the average and max power calculation are now correct (maybe?). The max power is calculated as Pmax = (Vq - Vp_min) * Ip_max, where Vp_min and Ip_max are where the composite load line intersects the Vg=0 characteristic curve. This is then divided by two for the push-pull case.

I'm less certain about the average output power calculation. For this, I start with a sampled sine wave on [0, 2*PI] multiplied by the peak input headroom. I then simulate amplification of the sine wave as Vg, and finally sum each abs(Vq-Vp) * Ip and divide by the number of samples to get P_avg. This should be the average instantaneous power (with both tubes for push-pull).

I'm also not certain I'm correctly simulating a push-pull amp. It seems to me in class B at peak signal, one tube should be in cut-off, but the models don't show that. So I'm quite possibly using the models wrong here, or it could just be a case of the models not being accurate near cut-off. The code for graphing an amplified sine wave is in amp.ts in the graphAmplifiedSineWave() function if anyone wants to take a look.