Skip to content

Releases: benjamindehli/overtonium

Overtonium v1.5.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 17:06

Overtonium 1.5.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

What is new in 1.5.0

Seven more factory presets, twenty-six in all. Six of them are the same instrument seen from different angles, because an electric piano is what a stack of sine waves is good at.

DigiLog is a digital instrument through analogue gear that has seen better days. The envelope delay climbs with the partial, from a tenth of a millisecond on the fundamental to five seconds on the 32nd, so the series arrives from the bottom up and reads as a filter opening in steps rather than sweeping. At 16 kHz and 8 bits, with the echo at as much feedback as it will take.

Dire Dire EP is a soft, round electric piano of the kind written for underwater music. The body is the fundamental and a few low partials, with the 13th and the 15th left standing well clear of their neighbours, which is the tine ringing over the top of an otherwise dark sound.

EP Chimes is a round electric piano with bright chimes above it, at 16 kHz and 8 bits so the artefacts belong to the sound rather than sitting on top of it. FM Piano is the electric piano an FM synthesiser makes rather than the instrument it is imitating. Nylon EP is rounder still, as though the tines were nylon rather than steel. Space Flute is a synthesised pan flute a long way off, with the breath on the noise channel. Synth Ensemble is strings and brass in one patch, where a third of a second of attack across the whole series is what makes it an ensemble rather than one player.

The preset menu is two submenus rather than one long list. Twenty-six factory presets and however many of your own runs off the bottom of a short screen, and a menu that scrolls hides its own shape. Factory and Saved are submenus now, and whichever preset is loaded is ticked inside the one holding it.

Folders group your presets. Make a folder in the preset folder and it becomes a group in the menu, holding whatever is inside it and nesting as deeply as you nest the folders. There is nothing to set up and no second place to manage it: moving a preset between groups is moving a file, and "Open the preset folder" is already in the menu. Groups are listed before the presets sitting loose beside them.

Nothing in the Settings menu travels with a preset any more. Saving a preset used to write your polyphony, temperament, bend range, MPE and the rest into the file, so recalling a sound reached over and changed how the instrument was set up. The factory presets already knew better. Both kinds follow the same rule now, and carry exactly the same set of controls as each other.

Fixed

A note held by the sustain pedal clicked when you played it again. With one voice per key, striking a note that is already sounding retriggers the voice where it stands rather than taking a second one, and the envelope restarted from silence when it did. That is a step in the output the size of whatever was ringing, and a note under the pedal is ringing at its sustain level. Letting the key go instead has always taken a short fade, which is why this only ever sounded with the pedal down. Measured on one partial, the worst sample step across the second strike falls from 0.699 to 0.024, which is the slope of the waveform itself.

The first factory preset could not be chosen from a host's menu. A new instance has to report some program number and zero is the only honest one, but it sounds like the panel defaults rather than like that preset. So Logic drew its menu with the first entry already selected, and picking it did nothing at all. It loads now, and re-selecting the preset a session was saved on still leaves your edits alone, which is what that behaviour was protecting.

The preset name was forgotten when the window was closed. A window is opened and shut far more often than a preset is chosen, and a session restored from disk has no window at all until you ask for one. The name is part of the saved state now, so it survives both.

Loading a factory preset left three of the noise channel's controls where the last patch had them. Its aftertouch amount, tremolo rate and velocity amount were never reset, while all 32 oscillators were. Found by a test that holds the two kinds of preset against each other.

Closing a window no longer waits on the update check. It could take up to five seconds if the far end accepted the connection and then went quiet, on the same thread that draws the interface.

Upgrading from 1.4.0

Patches and presets load unchanged and sound identical.

The factory presets are renumbered, since the seven new ones sort into alphabetical place rather than onto the end. A session that stored a preset by number opens on a different one. The sound is stored with the session either way, so nothing changes underneath you, but the name shown may not be the one you saved.

Presets you saved before this version still load, and the settings they recorded are ignored rather than applied. If you have been relying on a preset to set your polyphony or temperament, it will stop doing that, which is the point.

Installing

The install page has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

If you installed an earlier version with the package, the installer replaces it. A plugin folder holding two copies of Overtonium is worth tidying: macOS registers one of them and the host uses whichever that is, which need not be the newer.

What has actually been tried

All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator, and both suites run again under the address and undefined behaviour sanitizers. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass auval. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Overtonium v1.4.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 16:25

Overtonium 1.4.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

What is new in 1.4.0

Three more factory presets, nineteen in all. 2-bit Fuzz Organ is an organ at 8 kHz and 2 bits, where the aliasing and the quantisation noise are the distortion rather than an effect laid over the top, and its aftertouch blends the root note towards a fifth. Metallic Piano is a thin, metallic upright. Omni-84 is the SonicStrings Voice 2 from a Suzuki Omnichord OM-84 System Two. They sit in alphabetical place among the others, which moves the ones after them.

Legato. A new entry at the head of the polyphony list, above one voice, and the one setting where the instrument is not polyphonic at all. Pressing a key while another is still held moves the note rather than starting it again, so the envelopes carry on and a run keeps the shape the first key gave it instead of restarting the attack under your fingers. Letting a key go while others are down falls back to the most recent of them, which is what makes a trill work, and only the last key coming up releases the note.

One voice per key is a switch now. Striking a key that is already sounding takes over the voice it is using, which is what an acoustic instrument does and what stops a tapped key with a long release piling every tap on the last. Piling up is also a sound, though: a bell struck over and over builds up. The switch sits in Settings under the voice counts, since it answers the other half of the same question. It is on by default, which is how the instrument already behaved, and it belongs to the session rather than to a patch, so no preset moves it.

Clearing every mute or solo at once. A solo left on somewhere down thirty-three strips is easy to lose and tedious to find, since the buttons are four pixels apart and there are sixty-six of them. Right-clicking an M or an S offers to clear either switch across the mixer, and says how many there are to clear before you do.

Every factory preset is described, both on the presets page and in the source beside the patch itself.

Fixed

A right-click on a mute or solo button opened two menus. The LINK menu came up first and the button's own menu waited behind it. Only the button's menu opens now, and a right-click anywhere else in the mixer still reaches LINK.

The channel highlight could be left lit. Opening a menu over a channel and dismissing it somewhere else left the first channel lit, and hovering it again was the only way to clear it. A menu takes the mouse away without the strip being told the pointer left, so the strip now lets the hover go when the right-click arrives.

The first polyphony entry said "1 voices".

Upgrading from 1.3.0

Patches and presets load unchanged and sound identical.

Two things to know, both from lists that gained an entry at the top. Polyphony indices have shifted by one, so a session saved with 8 voices opens on 6 and wants setting again. And the factory presets are renumbered, since the three new ones sort into place rather than onto the end: a session that stored a preset by number opens on a different one. The sound is stored with the session either way, so nothing changes underneath you, but the name shown may not be the one you saved.

Installing

The install page has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

If you installed an earlier version with the package, the installer replaces it. A plugin folder holding two copies of Overtonium is worth tidying: macOS registers one of them and the host uses whichever that is, which need not be the newer.

What has actually been tried

All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass auval. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Overtonium v1.3.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 20:46

Overtonium 1.3.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

The per-channel outputs are gone

1.2.0 added an output per channel, so a patch could arrive in the host as 33 tracks. It is removed again, and this release is mostly that removal.

It never worked well enough to keep. Logic offers a fixed menu of multi-output arrangements and cannot complete the larger ones: every sixteen-output arrangement loaded, every twenty-five-output one failed, and the same settings crash Logic outright with other plugins, in a stack that is entirely Logic's own code. Which arrangements work varies with the version of Logic and the processor underneath it. The one shape that would actually suit a 32-partial mixer, 32 mono outputs, was never on the menu at all.

That left a feature that half worked in the one host it had been tried in, offered arrangements that returned an error naming the manufacturer, and could not be relied on across versions. It was a convenience rather than part of the instrument, so it goes.

Nothing else about the sound changes. Patches and presets load exactly as before.

Fixed

Parameters hold the values they are given. Setting a decay or release knob to its default and reading it straight back did not return the default: the two conversions between a knob position and a value were done in single precision, and those two positions fell where the round trip loses a bit. auval reported all 66 of them as parameters that would not keep their default. The conversions work in double now, and every default the plugin ships holds.

Changed

The factory preset code generator is no longer in released builds. "Copy as factory preset code" put C++ on the clipboard for pasting into the source. That is how a factory preset is written, and no use to anyone who is not about to rebuild the plugin, so it is behind a build flag now and the preset menu is shorter for everyone else.

Upgrading from 1.2.0

Patches, presets and sessions load unchanged and sound identical.

If you had a session routing channels to their own tracks, those routings are gone and the plugin is a stereo instrument again. Nothing else in the session is affected.

Installing

The install page has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

If you installed 1.2.0 or earlier with the package, the installer replaces it. A plugin folder holding two copies of Overtonium is worth tidying: macOS registers one of them and the host uses whichever that is, which need not be the newer.

What has actually been tried

All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass auval. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Overtonium v1.2.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 23:47

Overtonium 1.2.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

What is new in 1.2.0

Every channel can have an output of its own. Alongside the stereo mix there are now 33 more outputs, one per partial and one for the noise channel, so a single patch can arrive in the host as 33 tracks to treat separately. They start switched off, so the plugin is an ordinary stereo instrument until a host asks for more. Each one is dry, taken after the envelope, tremolo, velocity, pressure and fader but before wobble, the echo, the reverb, the converter and the master gain, which is the whole reason to route a channel out: you want to treat it yourself rather than inherit a reverb tail somebody else chose. They do not sum to the mix, and are not meant to.

Use the VST3 for this. The Audio Unit declares the same 33 outputs, but Logic offers no multi-output option for it and loads it as a plain stereo instrument, which is being looked into. Logic reads VST3s, so nothing is out of reach on macOS, and the other formats are unaffected.

MPE slide goes somewhere useful. The third MPE dimension, the forward and back axis under a finger, arriving as CC74 on the note's own channel. Settings has a Slide to entry with three answers: off, brightness, or tuning.

One LINK curve where there were two tilts. Tilt up and tilt down were pinned to the ends of the series, so the only way to get a slope across the mixer was to grab an end and accept the direction that came with it. Taper from the grab weights each channel by how far it sits from the one you are dragging. Grab channel 1 and the mixer tilts down across its full width, grab channel 32 and it tilts up, and grab channel 10 and the curve peaks under your hand and falls away on both sides, which is a shape the two fixed tilts could not make.

The level readout counts all the way down. It used to give up at -66 dB and say -inf for everything below, which was two thirds of the fader's usable bottom end. It now reads down to -99.9 dB. The fader is spaced by decibels to match, so the quiet end has room: -66 dB sat five pixels off the bottom and now sits at forty-four.

Every control has a name a screen reader can read. All 635 of them, each one distinct.

Settings is grouped. MPE, the aftertouch source and the slide destination sit together under Expression, since all three say how something your controller sends should reach the sound. Zoom is last and on its own, because how big the window is on your screen is not a property of the instrument.

The cents readout drops its plus sign. Seven bars cannot draw a plus that reads as anything but a speck beside the minus, so a partial sharp of equal temperament now carries no sign at all, the way a tuner writes it.

Fixed

A crash with the new outputs enabled. A host may hand the plugin fewer channels than the layout it agreed to, and with the per-channel outputs switched on the plugin wrote past the end of that buffer. Found by pluginval, fixed, and now covered by a test.

Upgrading from 1.1.0

Patches and presets load unchanged and sound identical. Stored levels are gains and mean exactly what they did before.

Two things to know. Automation written against the old level fader will play back at different levels, because the fader's travel is spaced by decibels now rather than by gain. And a session saved with tilt up or tilt down selected opens on taper, which is the curve that replaced them.

Hosts may want to rescan, since the plugin now offers more outputs than it did.

Installing

The install page has a row per file saying who each one is for. In short: take the installer for your platform, or the zip beside it if you have no administrator rights or keep plugins somewhere of your own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

What has actually been tried

All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. The VST3 also goes through Steinberg's own conformance validator, which covers the bus arrangements the new outputs introduce. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass auval. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

The 33 outputs in particular have been through the validators but through only one host, so reports of how they appear in yours are welcome, whichever format you use.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Overtonium v1.1.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 22:36

Overtonium 1.1.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

What is new in 1.1.0

Fold the mixer down. Click a section heading in the caption gutter and that group of rows folds away across every channel at once, taking the window's height with it. Pitch modulation, envelope, key off, amp mod and output each fold. All five is 480 pixels shorter. The tuning at the top and the faders at the bottom always stay, and a folded heading keeps its activity lamp, so a group you cannot see still reports whether it is doing anything. What you had folded is remembered with the session.

The factory presets appear in Logic's own preset menu. Logic and GarageBand read presets through the Audio Unit's program interface, which previously offered a single entry. All sixteen are listed now. Other formats are unchanged, deliberately: a program count above one makes the VST3 wrapper publish an automatable parameter that rewrites every other parameter when it moves, which is a poor thing to put in an automation lane.

A panel you can almost touch. A fine grain across the strips, the section rules scored as grooves cut into the surface rather than lines drawn on it, the effect groups in the bar recessed into it, and the lamps and meters blooming into the panel around them.

It can tell you when a new version is out. Off unless you ask. The first time you open the window the credit line under the wordmark offers to turn it on, once, and nothing reaches the network unless you take the offer. It fetches one small file from the project page and reads a version number out of it. No identifier, no telemetry, nothing about you. The setting lives under Settings, and the security policy in the repository spells out exactly what is sent.

Layout. The mixer runs to the window edges instead of floating inside a border, with the breathing room moved inside the channels. In the bar, captions sit closer to the knob they name. The short interval label under each channel number is gone, since the colour of the strip already says which interval class a channel is, and the gutter says MUTE / SOLO rather than M / S.

Nothing about the sound has changed. A patch saved in 1.0.0 loads identically.

Installing

Take the installer for your platform. The zip beside it holds the same builds loose, for anyone without administrator rights or with plugin folders of their own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

What has actually been tried

All three platforms are built on every push, run through both test suites, and put through pluginval at strictness 8. macOS is the only platform where the plugin has been loaded into a real host, where the Audio Unit and the VST3 also pass auval. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Overtonium v1.0.0

Choose a tag to compare

@benjamindehli benjamindehli released this 23 Aug 13:24

Overtonium 1.0.0

A 32-partial additive synthesiser laid out like a 32-channel mixer. Every channel is one sine oscillator locked to a harmonic of the played note, and every channel has its own tuning, envelope and modulation.

The control worth reaching for first is TUNE. It sweeps each partial continuously between equal temperament and just intonation. At the just end the partial sits at an exact integer ratio with the fundamental and the whole stack fuses into a single timbre. At the equal end each partial snaps to the nearest 12-TET semitone and the same stack smears into a chord. The factory presets Just Saw and Equal Saw are identical except for that one control, and they sound nothing alike.

What is in it

  • 32 sine partials plus a noise channel, each with its own fader, tuning, envelope, tremolo, pitch modulation and pan
  • TUNE, a continuous blend between equal temperament and just intonation, per partial
  • Six keyboard temperaments on any root: equal, just major, Pythagorean, quarter-comma meantone, Werckmeister III and Young
  • Inharmonic stretch and keyboard tracking
  • Per-partial drift, a random walk that detunes each partial independently, and wobble, the same idea applied to the whole instrument
  • MPE, with pitch bend and pressure per note, alongside ordinary MIDI
  • A tape echo with two independent paths, a feedback delay network reverb and a lo-fi converter
  • Channel ganging, so a change on one channel can be applied across a selection
  • 16 factory presets: Big Saw, Cathedral, Drawbar Organ, Equal Saw, Glass Armonica, Init, Just Saw, Lo-fi, Music Box, Odd Harmonics, Shimmer, Slow Pad, Struck Bell, Tape Choir, Vibraphone and Wurli

Installing

Take the installer for your platform. The zip beside it holds the same builds loose, for anyone without administrator rights or with plugin folders of their own.

Platform Installer Formats
macOS .pkg, with a chooser VST3, Audio Unit, Standalone
Windows .exe VST3, Standalone
Linux none, use the zip VST3, LV2, Standalone

The macOS build is a universal binary and runs on both Apple Silicon and Intel. Logic and GarageBand only look for new Audio Units when they start, so restart them after installing.

On Linux the zip's contents go in ~/.vst3 and ~/.lv2.

What has actually been tried

All three platforms are built and run through the test suite on every push, and macOS is the only one where the plugin has been loaded into a host. The Audio Unit and the VST3 pass auval and pluginval at strictness 8 there. Nobody has run the Windows or Linux builds in a DAW yet, so treat those as untried and please open an issue with whatever you find.

macOS

The installer is signed and notarised, so it opens without a warning. It asks which of the three formats you want and installs only those.

Windows will warn you

The Windows installer is not signed, so SmartScreen says the publisher is unknown. Choose "More info" and then "Run anyway". If you would rather not, build from source: the readme says how, and it takes one CMake command.

Licence

AGPLv3, which follows from JUCE. The whole source is in this repository.

Full Changelog: https://github.com/benjamindehli/overtonium/commits/v1.0.0