Skip to main content

Fluvial

Three resonant filters sharing one reference pitch · Radish · Vulpus Labs

Fluvial is a set of three resonant filters designed for drones. Each filter is tuned from a shared reference pitch, with its BEAT control setting an offset in hertz, just like the oscillators in Littoral. Connect Littoral's REF output to Fluvial's REF IN and both modules share the same reference and pitch drift.

Turn Q past the OSC mark and the filter begins to ring on its own, producing a sine wave at its tuned pitch. Two filters tuned 0.2 Hz apart beat once every five seconds, just like two Littoral voices. Below the OSC mark, a filter needs an input signal to ring. Tune it a fraction of a hertz away from a harmonic in a Littoral drone and that harmonic will swell and fade as the two frequencies beat against each other.

The filters are clean. Their feedback loops do not saturate, so increasing resonance does not change the pitch. A ringing filter also maintains its level without a limiter distorting the signal.

To begin: connect MIX to your output and turn voice 1's Q well past the OSC mark. Within a second or two, it will start ringing at the reference pitch, C2. Turn up Q on voices 2 and 3 as well, then move their BEAT controls slightly either side of centre. Listen to the three tones beating against one another.


The reference

REF sets the pitch used to tune all three filters. Its range extends three octaves below and above C2, following a 1 V/oct scale, with C2 at 0 V. The default is C2, or 65.41 Hz. Hover over the control to see the frequency and nearest note, for example Reference: 65.41 Hz (C2).

V/OCT adds to the reference pitch at one volt per octave. Turning REF changes the pitch smoothly over a few milliseconds. V/OCT and REF IN do not add this smoothing.

REF IN replaces the pitch set by REF. Connect a Littoral's REF output and Fluvial follows the same reference and pitch drift as the oscillators. A filter tuned to the same pitch as a voice stays in tune with it as both drift. V/OCT still adds to the incoming reference.


Each voice

The three rows on the panel represent the three filters. Each has the same controls.

Input

IN is the audio signal being filtered. When IN 2 or IN 3 is empty, its signal depends on the setting of NORMAL (see below). The arrows into IN 2 and IN 3 show these normal connections. Plugging in a cable breaks the relevant connection.

PING triggers the filter into ringing. Each rising edge above 0 V triggers it, with the strength determined by the trigger voltage up to 5 V. The small button beside the jack triggers it manually at full strength.

A ping starts the filter ringing from zero, whatever the Q setting. Below OSC, the sound fades away at a rate determined by Q. Above OSC, it builds up and settles at the filter's own output level.

Tuning

OCT shifts the filter by whole octaves, from two octaves down to six up. Its upper range extends beyond Littoral's because filters need to be tuned to a drone's harmonics as well as its fundamental.

COARSE provides three ways to adjust the pitch, selected by its switch:

  • SEMI, the default middle position: equal-tempered semitones, up to an octave in either direction.
  • JUST, down: just-intonation intervals relative to the reference, one for each semitone. Above the reference, the ratios are 1/1, 16/15, 9/8, 6/5, 5/4, 4/3, 7/5, 3/2, 8/5, 5/3, 7/4, 15/8 and 2/1. Below the reference, the same intervals are available an octave lower.
  • HZ, up: adds or subtracts a frequency of up to 100 Hz.

Hover over COARSE to see its value, for example Coarse: +7 semitones, Coarse: 3/2 or Coarse: +12.5 Hz.

FINE adjusts the pitch by up to 50 cents in either direction.

BEAT adds a frequency offset to the pitch set by the other tuning controls. Its range is ±5 Hz, with very fine adjustment near the centre. Because BEAT is applied last, two filters that differ only in their BEAT settings ring at exactly the difference between those settings, regardless of their reference pitch.

Hover over BEAT to see the offset to three decimal places. Click the tooltip and enter a value in hertz to set it precisely.

CV and AMT under BEAT allow a control voltage to change the offset. AMT has no effect at its centre. At full right, each volt adds 1 Hz; left of centre, the CV is inverted.

Unlike Littoral's BEAT control, Fluvial's BEAT does not have an FM range: a filter cannot be tuned through zero frequency.

Changes made with the tuning knobs glide over a few milliseconds, rather than jumping abruptly. The filter then settles at the exact target pitch, keeping the beat frequencies accurate.

FREQ

FREQ and AMT, beneath FINE, let a control voltage change the filter's cutoff frequency exponentially. At full AMT, one volt changes the cutoff by one octave. AMT has no effect at its centre; left of centre, the CV is inverted.

The small switch beside these controls sets how often the CV is read:

  • CTRL, down and the default setting: about 1,500 times per second. This is sufficient for slow CVs, Glacial lanes and LFOs. Faster signals will produce audible stepping.
  • AUDIO, up: the CV is read every sample, allowing audio-rate exponential FM. A ringing filter becomes an FM oscillator, producing more sidebands as AMT increases. A filter below the OSC mark instead applies the moving cutoff to the incoming signal.

With no cable connected to FREQ, the AUDIO setting has no effect.

Hover over the switch to see its setting.

AUDIO mode trades exact beating for FM. Exponential FM raises the average pitch as modulation depth increases. A sine wave modulating one octave deep raises the average pitch by about an eighth; at two octaves deep, the increase is more than half. A filter under FM therefore no longer beats at the frequency specified by BEAT.

In AUDIO mode, the CV is smoothed above about 5 kHz before it changes the filter. This allows signals such as Littoral's saw and square waves, including their sharp edges, to drive the cutoff cleanly.

Deep FM at high cutoff frequencies is less forgiving. For example, sweeping a 2 kHz voice across three octaves asks the filter to ring at frequencies far beyond what the sample rate can represent. The result becomes harsh.

Q

Q controls resonance. Up to the heavy OSC mark, it sets the filter's Q from 0.5 at the left to 1,000 just before the mark. At 50 Hz, a Q of 1,000 takes about six seconds to decay to a third of its level.

The default setting is just below the OSC mark, at a Q of about 220. Hover over Q to see its value, for example Q: 218.7.

Past the OSC mark, the filter starts ringing by itself and builds up from silence. Turning Q further makes the ring start sooner and increases its level, from 2.5 V at the mark to 5 V at the far right. The output also becomes slightly less pure: the third harmonic rises from about 50 dB below the fundamental to about 30 dB below it.

At C2, a setting just past OSC takes about six seconds to build up. Around nine-tenths of the way through the control's travel, the build-up takes a little over one second; fully right, it takes less than half a second. Higher-pitched filters build up proportionally faster.

Hover over Q to see the output level, for example Q: oscillating, 3.8 V.

CV and AMT beneath Q allow a control voltage to change the resonance. AMT has no effect at its centre. At full AMT, a ±5 V CV covers the whole range of Q. A Glacial lane can therefore move a filter above and below the OSC mark.

Mode

MODE selects the filter response, as shown around the knob: low-pass, band-pass, high-pass or notch. Band-pass is the default.

When a filter is ringing by itself, its low-pass and band-pass outputs produce the same sine wave, but shifted by a quarter-cycle relative to each other.


Normals

NORMAL, the slide switch in the bank's column, sets what IN 2 and IN 3 receive when nothing is plugged into them.

  • CHAIN, up: IN 2 receives the output of voice 1's filter, and IN 3 receives voice 2's. The filters are connected in series. These connections are taken before each voice's VCA, so LEVEL controls only that voice's OUT and MIX contribution, not the signal passed to the next filter.
  • BANK, the default middle position: IN 2 and IN 3 both receive IN 1. The three filters process the same input in parallel, allowing three resonances to be applied to one sound, or three formants to be created.
  • FREE: IN 2 and IN 3 receive nothing. Each voice produces only what comes from its PING input and its own resonance.

A cable plugged into either input breaks its normal connection, whatever the switch setting. Hover over NORMAL to see its current behaviour, for example Normal: CHAIN, each IN hears the filter above.


Levels

Each voice has its own VCA, shown on the right of its row.

LEVEL sets the output level. Its default setting is 80%.

CV and AMT beneath LEVEL let a control voltage change the level. AMT has no effect at its centre. LEVEL and AMT move smoothly when adjusted, avoiding zipper noise. The CV is smoothed just enough to prevent clicks when the voltage changes abruptly, while still allowing tremolo to come through.

The CV range is ±5 V. At full AMT, +5 V covers the full travel of LEVEL, while -5 V moves it in the opposite direction. The level follows a square-law curve, giving slow fades an even response.

OUT carries the voice's signal after its VCA. The filter processes signals linearly up to ±5 V, then rounds off gently as the level approaches ±7 V.

The red light below each voice number indicates whether that voice is running. A voice runs only when something needs its output: OUT or MIX is connected and LEVEL is raised or its LEVEL CV is connected, or the voice below it is running and receiving its signal through CHAIN.

Inactive voices use no processing. When a voice starts running again, it begins from silence. A ringing filter therefore fades back in instead of resuming halfway through a cycle.


Drift

DRIFT sets how much the filter tuning wanders, as on Littoral.

At the default setting, the shared drift moves by a few cents over several minutes, while each filter has its own drift of about one cent. Fully right doubles both amounts. Fully left disables drift, so the beat frequencies remain exactly as set by the BEAT controls.

Hover over DRIFT to see its setting, for example Drift: 50%.

A new Fluvial starts slightly flat and warms up to pitch over about twenty minutes. This also happens when the patch loads.

When REF IN is connected, Fluvial takes its shared drift from the incoming signal. A Littoral and Fluvial connected this way drift together, as if they were part of the same instrument.


Outputs

REF, on the vermilion block, outputs the reference pitch as a 1 V/oct signal, including V/OCT and the shared drift. Connect it to another Fluvial's or a Littoral's REF IN to make them share the reference.

MIX combines the three voices after their VCAs, with each contributing one third.


Jacks

Jack Direction Function
V/OCT In Adds to the reference pitch at 1 V/oct.
REF IN In Replaces REF, using a 1 V/oct reference with C2 at 0 V.
IN In Audio input to the filter, linear up to ±5 V.
PING In Triggers the filter on each rising edge above 0 V, with strength determined by the trigger voltage.
FREQ In Controls the cutoff at 1 V/oct with full AMT; read every sample in AUDIO mode.
CV (BEAT) In Controls the frequency offset at 1 Hz/V with full AMT.
CV (Q) In Controls resonance across its full range with ±5 V at full AMT.
CV (LEVEL) In Controls the voice's level across its full range with ±5 V at full AMT.
OUT Out The voice after its VCA.
MIX Out All three voices mixed, each at one third.
REF Out Reference pitch including V/OCT and shared drift, at 1 V/oct with C2 at 0 V.

All inputs receive 0 V when nothing is connected.


Notes

A ringing filter has an exact pitch. Its level is controlled by damping, not by saturation in the feedback loop. Two ringing filters therefore beat at the difference between their BEAT settings, accurate to a thousandth of a hertz, regardless of pitch. Turning Q past the OSC mark changes the level of the ring, not its frequency.

A filter driven hard below OSC limits its own output if the signal would otherwise exceed about 5 V. This holds the level rather than allowing the resonance to clip.

Every voice has a very quiet noise floor, 120 dB below full level. This lets a filter above OSC start ringing from silence. The same noise also excites a filter just below OSC, but at a level too low to hear.

Cross-patching in AUDIO mode can make voices lock together. Connect the output of each ringing filter to the other's FREQ input, or connect a Fluvial voice and a Littoral voice in the same way. Across a range of settings, the two voices settle into a steady tone whose pitch changes very little when you adjust either oscillator. Beyond a certain point, the lock breaks and the sound becomes chaotic. Small adjustments near that point can produce interesting results.


Starting points

Three beating rings. Connect MIX to your output and set NORMAL to FREE. Turn Q past OSC on all three voices. Set voice 2's BEAT to +0.1 Hz and voice 3's to -0.15 Hz. You will hear three sine waves at the reference pitch, beating at 0.1, 0.15 and 0.25 Hz.

Under a drone. Connect Littoral's MIX to IN 1 and its REF output to REF IN. Set NORMAL to BANK. Tune voice 1 to OCT +1, voice 2 to JUST 3/2 with OCT +1, and voice 3 to OCT +2. These settings target the drone's second, third and fourth harmonics.

Set each Q just below the OSC mark and move each BEAT a few hundredths of a hertz away from centre. Each filter will beat against its corresponding harmonic, making that part of the drone swell and fade.

A struck chord. Set NORMAL to FREE and Q just below OSC. Tune the voices to 1/1, 5/4 and 3/2. Press the three PING buttons, or send slow triggers into the PING inputs. Each filter rings and decays at its own rate.

In series. Set NORMAL to CHAIN and connect noise or a Littoral saw wave to IN 1. Set the three filters to low-pass, band-pass and band-pass, tuned an octave apart. Increase their Q settings one at a time.

A slow filter sweep. Connect a Glacial lane to voice 1's FREQ input. Set the switch to CTRL, move AMT slightly right of centre and set Q near the OSC mark. Program the lane to sweep across an octave over one rotation.

FM between the two. Connect Littoral's REF output to Fluvial's REF IN. Set Fluvial voice 1's Q past OSC and connect its OUT. Connect Littoral voice 1's output to Fluvial's FREQ 1, set the switch to AUDIO and move AMT slightly right of centre.

Now connect Fluvial OUT 1 to Littoral voice 1's BEAT CV. Set Littoral's BEAT switch to FM and move its AMT slightly right of centre. Increase the two AMT controls in turn, then adjust Littoral voice 1's COARSE. Each voice now modulates the other. Take the output from either module.

Rings, shifted. Start with the three beating rings described above and connect MIX to Calderal's A IN 1. Leave B IN empty, set SIDE fully right to SUM, and set SHIFT to about +20 Hz on WIDE. All three tones move up by 20 Hz but keep their original beat frequencies of 0.1, 0.15 and 0.25 Hz, because shifting every frequency by the same amount preserves the differences between them.

Compared with a drone using the same reference, the three tones now sit 20 Hz away from their original harmonic positions.

Filters on a shifted drone. Connect a Littoral drone at C2 to Calderal's A IN 1. Set SIDE to SUM and SHIFT to WIDE, entering +20 Hz in its tooltip. Connect Calderal OUT 1 to Fluvial IN 1, set NORMAL to BANK, and connect Littoral's REF output to Fluvial REF IN.

Set each Fluvial voice's COARSE switch to HZ and its COARSE value to +20 Hz. Set OCT to 0, +1 and +2 for the three voices. COARSE's frequency offset is added after OCT, so the filters align with the shifted drone's first, second and fourth partials.

Set each Q just below OSC and move each BEAT a few hundredths of a hertz away from centre, as in Under a drone.

No reviews yet. Be the first to review this product!

Radish Fluvial

Vulpus Labs

$10.00