Device Details

Device Overview

Name/Version: Formant 1.0
Author: OspreyInstruments  
Description: This one had me pouring through academic papers and neck deep in phonology trying to distinguish between the multiple overlapping and wildly inconsistent phonetic notations, trying to find formant charts that included upper registers across a range of obscure vowel sounds. Yikes! My impression is that this field of study is much less rigorous with their standard notation than any that I am used to. I don't know how any of them effectively communicate with each other.

Venting aside, I think this one turned out well, and it is a lot of fun! It is heavily inspired by the Kilohearts formant filter. The lower two formants (F1 and F2) can be used in parallel (BPF) or serial (HPF/LPF, BELL). They each traverse a frequency range, with the x-axis tied to F1 and the y-axis tied to F2 (although they swap roles in the condition that F1>F2). Setting either of them to BPF will trigger both into BPF mode, as this is strictly parallel. Exiting BPF mode on one will also trigger the other to go to its default mode (HPF/LPF) as they return to serial.

Now the fun part is that F3 and F4 are not actually tied to the XY axis directly, they both would have needed their own higher dimensional space. I captured this by hardcoding the frequency range of F3/F4 and interpolating between formants as the knob spans the 2-dimensional plane. Very neat, however, a lot of calculations when you are changing values, so I had to rate limit these calculations. This only affects F3/F4 under fast modulation conditions, and is separate from the update limiter on the XY grid that will be mentioned below.

F3 and F4 are always parallel to F1/F2 and to each other. F3 is fixed as a BPF, and F4 can be a BPF or HPF. For any filter (F1/F2/F4) set in HPF/LPF mode, gain is set to 0dB.

The GENDER control scales a given vowel between its extremes. This approximates Male/Female/Child. Q sets the Q :)

I provided XY controls (in the form of number boxes) along the bottom edge as well. This was because the Nodes object in Max does not play well with automation, or even recall. These boxes can be selected as automation targets, or parameter mapping (LFO, Envelope Followers, etc). Because of computational constraints on updating parameters too quickly (there is a lot of calculation needed each time to do the interpolation and calculate the filter coefficients), I have also added in a speed limiter. Depending on your system, and what you are trying to do with it, you might want to play around with this so see if it makes the device more or less laggy/glitchy. I was finding you lower values (around 3ms) work well for automation/modulation, and turning it up a little bit improves the performance when dragging the knob with the mouse.

Device Details

Tags effect
Live Version Used: 10.1.18
Max Version Used: 8.1.5
Date Added: Oct 02 2023 23:20:15
Date Last Updated: Not updated yet
Device Type: audio_device
Download URL (report link)
License (more info): None


Youve done it this time Osprey.... tysm for making this!

who sent you.... youre a thug for this, i wanted something between wow, and kilohearts formant filter for ableton besides my eq8 morph racks ive made and this is it!

This is really cool. I can't seem to get the it to automate, having record on transport and manually moving the blue ball around the letters. I can LFO the xy but that's a bit different.

Ah. Just read last paragraph. LOL

I'll try to find the X Y mapping max device that's somewhere in this bottomless pit.

XY Gesture Audio is the M4L device that works the best to control it. Sorted

Login to comment on this device.

[ browse device library ]