Skip to content
elektrokokke edited this page Apr 6, 2011 · 28 revisions

Welcome to the elektrocillin wiki!

Quick links

Building elektrocillin | Using elektrocillin | Download elektrocillin | Screenshots

What is elektrocillin?

Elektrocillin is a modular software synthesizer in a currently very experimental state.

Modules

Its current modules are mainly from the domain of subtractive ("virtual analog") synthesis. Current modules include

  • Piecewise linear oscillators with aliasing reduction based on multiple integration (based on Välimäki et al., "Alias-Suppressed Oscillators Based on Differentiated Polynomial Waveforms", IEEE Transactions on Audio, Speech, and Language Procesing, vol. 18(4), May 2010). Piecewise linear means they offer typical waveforms like square/pulse, sawtooth and triangle, but also more complicated waveforms.
  • Multi-stage envelopes, logarithmic or linear
  • A simple sine oscillator
  • Piecewise linear and piecewise cubic waveshaper. These can create overtones/rich harmonics. Note that these are not (yet?) aliasing-suppressed.
  • A module which multiplies two inputs, for example to be able to modulate an oscillator's amplitude with an envelope
  • A white noise generator

All these modules have corresponding GUI elements which allow the user to visualize and change their parameters. Some modules also consider MIDI input (e.g., the oscillators' base frequency is controlled by MIDI note and pitch bend messages). There is also a graphical keyboard to trigger other modules via MIDI.

Jack wrapper structure

Modules can be connected like, e.g., in Patchage or QjackCtl. Actually, each module is a Jack client. Elektrocillin contains a Jack "wrapper" which hides the internal Jack clients from the real Jack server. Towards the modules, it presents itself as a Jack server. Towards the real Jack server, it presents itself as a Jack client. One can also create such wrappers inside the application to have multiple levels of abstraction, e.g., to combine complex structures to a single "macro".

It is even possible to have macros inside the application which operate with oversampling, i.e., which operate at a samplerate which is an integer multiple of the Jack server's samplerate. Downsampling is currently done using a simple sinc filter (this might need improvement).

Screenshots/other images

Current screenshots: Screenshots

New GUI designs based on comic lettering: Comic-style GUI designs

Find first GUI design here: GUI designs (deprecated)

First screenshot of the GUI revamp: New GUI first screenshot (deprecated)