筑波音響 / TSUKUBA ONKYO
A saturator that solves circuits sample by sample
AD-1 produces sound by solving five real circuits numerically, one sample at a time. It does not approximate a distortion curve or look up a wavetable. Turning a knob actually changes a component value inside the circuit, and the solution changes with it.
Because of that, the knobs behave differently on each circuit. The same BIAS control moves cathode resistance on the valve circuits and DC flux offset on the transformer, and whether turning it up adds or removes distortion is reversed between circuits. This is not a lack of polish; it is how those circuits behave. Measured figures are in the BIAS section below.
Double-click install.command in the download. It shows what it will install and asks before doing anything. No administrator password is required.
There is no code signature. AD-1 has no Apple Developer ID signature, so macOS marks the downloaded files as quarantined and your DAW will not load them as they are. install.command runs xattr -dr com.apple.quarantine on the bundles it has just copied, and only those. No other file is touched.
To do it by hand, copy the bundles and run the same command yourself; the result is identical. The steps, and what the script contains, are on the install page.
Everything goes into your own user area:
~/Library/Audio/Plug-Ins/Components/ Audio Unit
~/Library/Audio/Plug-Ins/CLAP/ CLAP
The window above the row of knobs. ‹ and › step through the 18 factory presets. Move any knob and the display changes to USER — not because a preset number is remembered, but because the name is looked up from the knob values every time. It stays correct when you reopen a session, and when host automation moves the controls.
Chooses which circuit is actually solved. On a change, the new circuit is rebuilt and warmed up until its operating point settles before it is swapped in, so switching makes no noise. That work happens on a thread separate from audio processing.
| Readout | Circuit | Where the distortion comes from |
|---|---|---|
| TRIODE | 12AX7 common cathode / Ra 220k / B+ 300V | Grid current. Overdrive clips the positive side and charge builds up in the coupling capacitor |
| PENTODE | EF86 pentode / Ra 100k / Rg2 1M / B+ 300V | Sag from screen current. The deepest distortion of the five |
| GERMANIUM | AC128-class PNP, collector feedback / −9V | Germanium's low forward voltage and ICBO leakage |
| IRON | 1:1 transformer / Lm 10H / Φs 90µWb | Magnetising inductance saturating, plus remanent flux. Low notes give way first |
| OP-AMP | TL072 + 1N4148 back-to-back clipping / Rf 51k | Diode clipping and slew rate |
The voltage driven into the input stage. Each circuit takes a different amount — several volts for the valves, 0.45 V for germanium — so the knob is an exponential curve with that ceiling as 100%. The actual gain in dB is shown under the knob.
It moves a different component on each circuit, and in a different direction. The actual value and unit appear under the knob.
| Circuit | Unit | What it moves | BIAS 0% | BIAS 100% |
|---|---|---|---|---|
| TRIODE | Rk | Cathode resistance | h2 1.3% | h2 4.2% |
| PENTODE | Rk | Cathode resistance | h2 7.7% | h2 6.5% |
| GERMANIUM | Rb | Collector feedback resistance | h2 19.8% | h2 8.5% |
| IRON | Φoff | DC flux offset | h2 12.2% | h2 0.0% |
| OP-AMP | Rasym | Series resistance on one diode | h2 0.06% | h2 2.0% |
Second harmonic is a proxy for asymmetry (measured at 1 kHz, DRIVE 35%). TRIODE and OP-AMP get more asymmetric as you turn BIAS up; GERMANIUM and IRON go the other way, and PENTODE barely moves at all — on PENTODE what BIAS affects is sag, not asymmetry. We could make them agree, but that would mean bending what the circuits actually do, so we have not.
The output RC low-pass: 2.2 nF against a series resistance, giving 402 Hz to 20 kHz. The actual cutoff in Hz is shown under the knob.
The balance of dry and processed. The dry path is delayed to match the processed path's latency and the polarity is matched as well, so nothing cancels at intermediate settings.
A −24 to +24 dB trim, applied after MIX.
The internal rate at which the circuit is solved. The number is the oversampling factor; below it you get the actual internal rate (session rate × factor) and the integration method.
| Step | Internal rate at 48 kHz | Aliasing | Real-time ratio (worst) |
|---|---|---|---|
| ×2 | 96 kHz | −31.0 dBc | 27× |
| ×4 (default) | 192 kHz | −42.8 dBc | 15× |
| ×8 | 384 kHz | −41.1 dBc | 8× |
Aliasing figures are worst-case with 7 kHz in at DRIVE 100%. ×8 is not simply better than ×4. Measured, the only circuit that improves from ×4 to ×8 is OP-AMP (−43.9 to −58.6 dBc); TRIODE, PENTODE and IRON get slightly worse, because the extra stage adds more interpolation and decimation leakage. If in doubt, leave it at the default ×4.
On LOCK, green is normal; it goes out if any sample failed to converge, and when that happens what you get is noise rather than distortion. OVER lights when the output clips.
This is the host's own bypass. The host's bypass button and the panel toggle are the same control, so they cannot fight each other. Latency does not change while bypassed, so phase against other tracks stays put.
Fixed at 5 samples, regardless of sample rate or SOLVER setting. It is reported to the host, which compensates automatically.
The reported figure does not move with SOLVER because CLAP has no way to announce a latency change mid-processing, and every change would force the host to rebuild its delay compensation. Any shortfall is padded internally.
When the host reports that it is rendering offline, AD-1 automatically:
That limit exists to meet a real-time deadline, and during a bounce there is no deadline. The oversampling factor only affects the amount of aliasing — neither output level nor the amount of distortion moves — so all a bounce changes is that an unwanted by-product is suppressed further. There is nothing for you to do.
There are 18. All of them are level-matched — trimmed by measurement so that a 1 kHz, −6 dBFS input comes out at the same level as bypass, with a worst-case error of 0.05 dB. Switching between them does not jump in volume, so you can compare character alone.
The numbers are knob positions, in percent.
| # | Name | Circuit | DRIVE | BIAS | TONE | MIX | Intent |
|---|---|---|---|---|---|---|---|
| 01 | CONSOLE WARM | TRIODE | 30 | 45 | 80 | 100 | The gentle end of the 12AX7. A starting point that adds sheen only |
| 02 | VALVE PUSH | TRIODE | 68 | 80 | 72 | 100 | BIAS up for more h2. On TRIODE, higher means more asymmetric |
| 03 | GRID BITE | TRIODE | 95 | 95 | 62 | 100 | Pushed into grid current. The positive side clips and charge builds in the coupling capacitor |
| 04 | BROADCAST | PENTODE | 40 | 50 | 78 | 100 | The EF86, lightly driven. A middle setting that only adds density |
| 05 | SCREEN SAG | PENTODE | 72 | 35 | 70 | 100 | Sagging on screen current. Hit it and it dips, then recovers |
| 06 | PENTODE SLAM | PENTODE | 100 | 20 | 60 | 100 | Wide open. PENTODE distorts the most of the five (THD 50%) |
| 07 | CLEAN GE | GERMANIUM | 28 | 85 | 82 | 100 | BIAS up, towards symmetry. The germanium colour and nothing else |
| 08 | TRANSISTOR GRIT | GERMANIUM | 55 | 45 | 72 | 100 | Mid-way. Where the restlessness of ICBO leakage shows |
| 09 | FUZZ BIAS | GERMANIUM | 85 | 5 | 55 | 100 | BIAS at minimum, i.e. lightly biased. h2 reaches 32% |
| 10 | IRON CORE | IRON | 60 | 30 | 85 | 100 | Magnetic saturation. Since φ=∫v dt, low notes give way first |
| 11 | DC SKEW | IRON | 80 | 0 | 75 | 100 | Maximum offset. The core is pushed to one side to produce h2 |
| 12 | SYMMETRIC CORE | IRON | 45 | 100 | 88 | 100 | Zero offset, perfectly symmetric. h2 disappears and only odd harmonics remain |
| 13 | DIODE CLIP | OP-AMP | 70 | 10 | 70 | 100 | 1N4148 back-to-back clipping. Symmetric at minimum BIAS |
| 14 | ASYM DRIVE | OP-AMP | 78 | 90 | 68 | 100 | A series resistor on one side for asymmetry. On OP-AMP, higher means more lopsided |
| 15 | SLEW EDGE | OP-AMP | 100 | 50 | 90 | 100 | Driven into the TL072's slew rate. Only fast transients are blunted |
| 16 | PARALLEL HEAT | TRIODE | 90 | 85 | 66 | 35 | A crushed layer underneath at MIX 35%. Adds density while keeping the core intact |
| 17 | BUS GLUE | IRON | 30 | 60 | 88 | 50 | For a 2-mix. The transformer, lightly, at MIX 50% |
| 18 | VOCAL AIR | TRIODE | 45 | 60 | 95 | 80 | TONE open to keep the top. Brings a voice forward, slightly |
| Formats | Hosts |
|---|---|
| Audio Unit | Logic Pro / GarageBand / MainStage |
| CLAP | Reaper / Bitwig Studio / Studio One 7 and later |
There is no VST3 build. This is a licensing constraint, not a technical one. Shipping VST3 requires Steinberg's VST3 SDK or a binding to it, and both are either GPLv3 or commercially licensed. Distributing under GPLv3 would oblige us to publish the source of AD-1 including the circuit solver it uses. AD-1 is free of charge but it is not open source, so we cannot take on that obligation.
If you use Ableton Live or Cubase. You cannot use AD-1 at present, because Live has no CLAP support. We are sorry. Studio One works via CLAP from version 7 onwards.
Pro Tools is not supported either. There is no AAX build.
| Channels | Mono / stereo |
|---|---|
| Latency | 5 samples (fixed, reported to the host) |
| Internal processing | 64-bit floating point |
| Sample rate | Follows the host (verified 44.1k–192k) |
| Load | worst case 15× real time at ×4 (Apple Silicon, one instance, 48 kHz) |
| Requirements | macOS 11 or later / Apple Silicon and Intel |
See the support page for common symptoms and what to do about them. If that does not solve it, write to support@tsukubaonkyo.com.