⚠️ Hadal Black is unapologetically massive, and needs a screen of 2560 × 1440 (1440p) or higher.
Circuit Bass Synthesizer · Wavetable · Drive Channel
Hadal Black
A circuit bass. A hundred waves. All of Genuine Filth.
Hadal Black starts as a circuit bass: two banks of expo-converter oscillators, a sub counted down by a real divider chain, a transistor ladder solved the hard way, germanium grit and a wobble engine that lands on the grid. Then it adds the two things a circuit bass could never have on its own.
The first is a third oscillator: a wavetable of one hundred synthetic waves, played through every circuit the other two are. The second is Genuine Filth, whole, on a send from every oscillator.
VST3 · Windows 64-bit·No activationmacOS is in development.

Demos
11 takes, played by us
Straight out of the plugin, no processing on the way here, levels matched so you can move between them without reaching for the volume.
The short answer
A circuit bass, and two things it never had
A circuit bass sounds the way it does because every part of it is a circuit, and that is also its limit: it only has the waves its oscillators can make, and only the dirt its own drive can give. Hadal Black is a circuit bass with a third oscillator that is a wavetable - played through the same wavefolder, ladder, grit and amp as the circuits beside it - and the whole of Genuine Filth on a send from every oscillator. The wave is the one part of the instrument that is not a circuit. The voice it speaks through is. And the dirt goes where you send it: the wavetable and not the sub, the sub and nothing else, or all four at once.
100 waves, none sampled
Written as spectra, and each family is a journey
The bank is ten families of ten, and POSITION crosses all one hundred continuously, so each wave is a small step from the one before it. Nothing was sampled, extracted or licensed: every wave is written as the strength of each of its harmonics, built once when the first instance opens, and shared by every instance in the session.
- ASCENTpartials arriving
- PULSEa pulse narrowing
- VOWELa mouth moving through its vowels
- HOLLOWa hollow wave filling
- SYNCa hard sync rising
- FMan FM index opening
- TILTa slope brightening
- SIEVEharmonics sieved away
- METALa clang gathering
- GROWLa resonance climbing the harmonic series
Every wave is built in the same phase, so the crossfade between neighbours adds up instead of partly cancelling, and a scan does not go hollow halfway between two waves. Halfway between any two neighbours in a family, the level dips by less than 1 dB; across the seam between two families it can dip further, because two waves with nothing in common partly cancel. The waves that are not held back by their peak limit sit at the loudness of a full-scale sawtooth, within a twentieth of a decibel; the spikiest are held back, and play quieter. No two neighbours are the same wave, and none carries DC.
Ten copies of every wave
Band-limited at every note
A wavetable is a single cycle stored as numbers, and played too high it folds its upper harmonics back down as aliasing - the brittle, out-of-tune haze of a cheap digital oscillator. Hadal Black stores every wave ten times, each copy cut off an octave lower than the last, and each note reads the fullest copy whose top harmonic still fits under the band, through a four-point cubic on a 4,096-sample cycle.
Both are the brightest wave in the bank, as the share of the band that is not a harmonic of the note. The naive way is the fullest copy at every note.
A third oscillator bank
Played through the circuits, not bolted on after them
The layer does not sit beside the synth as a separate engine with its own filter. It is a third oscillator bank inside every voice: through its own circuit wavefolder, then into the same transistor ladder, the same germanium grit and the same pair of OTAs as the two circuit banks. Close the ladder and the layer darkens with everything else. Turn up GRIT and it snarls with everything else.
POSITION, ENV and WT SCAN
Scanned three ways, one of them on the grid
POSITION carries the layer across the bank by hand. ENV hands it to the filter envelope, so a note can open on one wave and settle on another, the way a plucked or struck thing does. And WT SCAN, on the wobble engine's cutoff lane, lets the lane scan the table instead of - or as well as - the filter, so the timbre itself talks on the tempo grid with the cutoff left alone. Both patch LFOs can drive the position and the warp amount too.
POSITION from the first wave to the brightest makes the layer 42.7 dB brighter. With ENV fully up, a note starts 19.5 dB brighter than it settles; with ENV at zero, -0.6 dB, which is the same note throughout. With WT SCAN on a quarter-note lane at 128 BPM and the filter untouched, the timbre cycles every 470.0 ms against a quarter note's 468.75.
five warps
Each exactly neutral at its neutral
A warp bends the way the oscillator travels through its cycle rather than the wave itself. A warp adds harmonics, so the oscillator also picks a darker copy of the wave, to make room for the warp as well as the note.
- BENDLeans the cycle toward its start or its end. Two-way, so it does nothing with AMOUNT in the middle.
- SYNCRuns through the cycle several times and starts over each time.
- MIRRORReads the cycle forward and then back.
- SQUEEZEPresses the first half of the cycle into more or less of it. Two-way, like BEND.
- QUANTIZEHolds the cycle on fewer and fewer steps.
Every warp changes what the layer plays, and at its neutral setting every warp leaves the voice exactly as it was, sample for sample.
On a send from every oscillator
Genuine Filth, whole
Genuine Filth is Aphelion's drive channel: an input transformer, a class-A transistor stage, a triode, a diode clipper and an output transformer, in series, all hanging off one power supply that sags. In Hadal Black it is compiled in whole, from its own source, with all twenty-four of its controls on a row of their own. This is not a version of it. It is the same unit.
It is fed the way a mixing desk feeds an effect, by sends. OSC A, OSC B, the wavetable and the sub each have a send knob, and each one taps its oscillator after its own level and wavefolder, before the ladder, and follows that voice's amp envelope - so what reaches the channel rises and falls with each note. Every voice feeds the one stereo channel, and every voice pulls on its one supply. The dry voice keeps playing, and the return is added beside it. Fed the same signal, the channel inside Hadal Black and a Genuine Filth of its own produce identical output: 0 apart, sample for sample.
| Sent from | Top end added |
|---|---|
| OSC A | +46.6 dB |
| OSC B | +39.1 dB |
| The wavetable | +43.7 dB |
| The sub | +7.0 dB |
It is a send, not an insert. The return does not pass through the ladder, so the cutoff shapes the dry voice and not the dirt; the volume pump and VOLUME act on both. To hear an oscillator only through the channel, close the ladder so the dry voice goes dark. Genuine Filth's MIX is inside the return, so a send with MIX at zero adds a clean copy that bypasses the ladder, not a dirty one. All sixteen of Genuine Filth's own presets load from the strip beside the curve tracer, and change only its dials.


Fifty samples, always
Dry and dirty, in phase
Genuine Filth takes fifty samples to do its work - about a millisecond - and a return that arrives a millisecond late comb-filters against the dry voice it is mixed with. So the dry voice waits for it: it is delayed by the same fifty samples, all the time, and the instrument reports that latency to the host, which compensates for it like any other.
Asleep until it's fed
A patch that never feeds it doesn't pay for it
Five circuits solved every sample are not free, so the channel sleeps. When every send is at zero it does no work at all. It wakes as soon as any voice feeds it, and goes back to sleep half a second after the last one stops.
A 220 Hz sine through the channel with every stage switched out, beside the dry voice: the two meet 1.6 degrees apart, where fifty samples out of step would put them about 82 degrees apart. With the sends at zero the channel stays asleep, and with one turned up it wakes. None of the presets feeds it except the two built for it. Nothing allocates on the audio thread, asleep or awake: 0 bytes, counted.
The sub
The floor stays clean, unless you send it
The sub is not an oscillator mixed in before the drive. It is a flip-flop divider counting the key's own pitch down one or two octaves, on its own path around the grit. Turn the grit all the way up and the mids snarl while the sub underneath stays nearly pure. And because it has a send of its own, you can still put the floor through Genuine Filth - deliberately, and only there.
Two lanes, on the grid
The wobble engine
Two tempo-locked lanes, cutoff and volume, each with thirteen divisions from a whole note to a thirty-second, its own shape, and an eight-step pattern of rates - so one bar can run 1/4, 1/4, 1/8, 1/16 as a sequence rather than an automation chore. The volume lane closes the voice's real OTAs instead of scaling a gain. The panel draws each lane's actual curve across the bar, computed by the same code the audio runs. And the cutoff lane has one more job: WT SCAN, above.
At 128 BPM a quarter-note wobble repeats every 470.0 ms against a theoretical 468.75. The volume lane at full depth pumps -16.5 dB.
The wavetable window
A panel that shows the wave you are playing
Where Batholith has its valve and meter, Hadal Black has a window. It shows the wave the newest note is actually playing - with ENV, WT SCAN and the LFOs taken into account, not just where POSITION is set - with the four waves before it stacked behind, so a scan reads as travel through something. A cursor rides a rail across the whole bank, and the caption names the wave and the warp. Beside it are a depth gauge, which lights further down the deeper the bass runs, and an oscilloscope.


The fifth row is Genuine Filth: its twenty-four controls, its live curve tracer plotting the channel's real input against its real output, its supply-rail meter, and its preset strip, with a line reporting whether the channel is awake and being fed. There are 94 controls for 94 parameters: every parameter has exactly one control on the panel. It is a big panel - 1760 by 1072 - and it wants a screen to match.
26 presets
Named for the deep
For the wavetable, eight: BLACK WATER, ABYSSAL CHOIR, GULPER EEL, VAMPIRE SQUID, FANGTOOTH, MARINE SNOW, CHALLENGER DEEP, BLACK DRAGONFISH. For the circuits alone, sixteen: from TRENCH FLOOR to PRESSURE HULL, each with the wavetable turned off. For Genuine Filth, two: FILTH FEEDER, BRINE SPOUT. The wobble lanes' patterns are saved in every one.
The sheet
What is in the box
The bank is built once, when the first instance opens, in a fraction of a second, and shared by every instance after it. The dearest patch Hadal Black can make - eight voices with both circuit banks and the layer seven deep, a warp on the layer - still renders faster than real time, on the machine it was timed on, which is not a promise about yours. Nothing allocates on the audio thread with the layer at work. Every parameter has a number that is frozen the day it ships, and a saved session round-trips byte for byte.
Powered by Phonon
The colour of the deepest water
The hadal zone is the deepest part of the ocean - below the abyssal plain, down in the trenches, named for Hades. No sunlight has ever reached it. Hadal Black is the colour of that water, and of the panel.
VST3 · Windows 64-bit·No activationmacOS is in development.
At a glance
Hadal Black specifications
| Format | VST3 instrument · Windows 64-bit |
|---|---|
| In development | macOS |
| Output | Stereo · the sub always mono and centred |
| Oscillators | Two circuit banks and a wavetable layer, each up to seven deep · a divider-chain sub |
| Wavetable | 100 synthetic waves in ten families of ten, none sampled · five warps |
| Filter and drive | Newton-solved transistor ladder · germanium grit into a folder |
| Genuine Filth | The whole channel, on a send from every oscillator · its sixteen presets built in |
| Modulation | Two-lane tempo-locked wobble engine · two LFOs · two envelopes |
| Voices | Mono with glide by default · 8-voice poly |
| Presets | 26 |
| Panel | 1760 by 1072 |
| Latency | 50 samples, always |
| Parameters | 94, all automatable |
| Activation | None. No license server, no phone-home |