Pipe organ emulator using additive synthesis as a VST or AU plugin (or a stand-alone executable).Aeolus was originally developed by Fons Adriaensen and presented in 2004. The original implementation is Linux only and can be found here (or across Linux distribution packages). At present it looks like Aeolus development has been mostly abandoned (but Organnery picked up the original Aeolus project to make it run on a Raspberry Pi).
This project leverages the wavetable systhesis part of the original Aeolus, improves on it, and delivers it as a standard VST plugin using JUCE framework, so that it can be run in Windows/macOS VST3/AU hosts.
This implementation contains additional improvements to the sound generation including:
- Pipe models can be composed of multiple pipes (to create proper mixtures);
- Different pipe models can be used across the keyboard compass (this enables mixtures breaking-back);
- Pipes chiff noise is played on attack;
- The plugin uses zero delay convolutional reverb with selectable IRs from OpenAir library;
- Registration presets also act as a sequencer.
- pipes chiff noise on attack;
- new pipe models;
- convolutional reverb.
The original binary format for the pipe models and the organ configuration has been translated (partially) to JSON.
MIDI Control:
Sequencer steps are controlled via the program change messages sent on the control MIDI channel (program 0 corresponds to the first step of the sequencer, 1 – to the second and so on).
In a DAW you may use Program parameter to control the sequencer steps. Another way to control the sequencer is via key switches (MIDI notes). The default configuration uses keys 22 and 23 to control the sequencer.
CCs:
CC 1 modulation wheel enables/disables tremulant
CC 7 controls the global volume (on the control MIDI channel) and the volume of each division which has swell config flag enabled (on the swell MIDI channel)
CC 91 controls the reverb output level
CC 98 Stops control
👉 The stops control follows the original Aeolus convention. The control mode is set by the message 01mm0ggg, where mm is the control mode, and ggg is the control group (division number, counter from the top starting from 0). Control modes are:
00 Disable the division (all stops are off)
01 Set stop off
10 Set stop on
11 Toggle
Once the control message is received the value of the format 000bbbbb will execute the selected control mode action on specified stop buton bbbbb, counted from 0.
Custom organ configuration:
Custom organ configuration will be loaded by the plugin if found at Documents/Aeolus/organ_config.json location.
👉 The Documents folder’s exact location depends on the operating system and the user profile.
To create the organ_config.json start with default one embedded into the plugin by copying it to Documents/Aeolus folder and renaming to organ_config.json.
It is also possible to use custom pipe configs in .ae0 or .json format. These have to be placed to the Documents/Aeolus folder for then can be referenced from the organ_config.json (use pipe file name without the extension in the“pipe“attribute of the organ_config.json).
Multibus output:
When compiled with the WITH_MULTIBUS_OUTPUT CMake option enabled, the generated plugin will ouput to the 8 separate monofonic buses. Each bus corresponds to the pipes groups placement in space according to the internal horizontal arrangement of the pipes.
In multibus configuration there is no reverb applied, and there is no spatialization performed.
👉 The multibus mode is indended for the object based mixing, where you could place individual pipe groups in space yourself and apply a reverb of your preference.
Pipes are arranged starting from the lowest key from the sides (buses 0 and 7) to the center in the middle of the range (buses 3, 4), and then going back from the centre towards the sides. For the pedal pipes, they go from the outside towards the centre only.
Corresponding pipe position jumps between left and right following the keys (C will be on the left, C# on the right, D of the left, D# on the right and so on).
👉 This very same pipes spatial arrangement is used in the stereo version of the plugin to perform spatialized rendering followed by a stereo convolutional reverb.
https://github.com/Archie3d/aeolus_plugin?tab=readme-ov-file