Falasol Timbre 1.0.2

(codename: Diesel Power)

Falasol’s engine has evolved!

This version introduces drastic performance optimization (both for speed & memory consumption). Those can be experienced especially on complex sounds (confirmed up to 3x faster sound generation with even more than 10x less memory on Shepard’s tone).

To bring some light on what has changed, let’s take a look at the Falasol’s architectural modules:

Architecture

Falasol's modular architecture

Function Tree Definition

This part defines how the sound is put together with use of basic functions. Here you can find the Tremolo, Vibrato, and the great master root function which is responsible for final output.

Function Implementation

Here’s where all the leaves of the above function tree are. All the necessary basic atomic operations – sine wave, square wave, gaussian noise generator, inputs summation¬† etc. For example Vibrato can be achieved from simple operations by multiplication:

pitch_output = pitch_input * 2 ^ ( vibrato_depth * sin( vibrato_speed * t ) )

The 2^ part is in order to operate in octave (exponential) scale. Also note that all the parameters might change over time. In extreme case each might have a different value for each sample.

Function Execution – the ENGINE

So you press the play button, the function tree is constructed and now the control is passed here – to the engine. This is responsible for executing the whole function for each sound sample. This layer is responsible for calling the functions, updating & interpolating the input values.

The major optimization was switching to fully streamlined calculations and getting rid of all the big buffers. There were also some minor improvements I did during code review & debugging.

Other updates & bug fixes:
  • Support for dragging & dropping Timbre files to main window
  • 3 digit precision in all values
  • Logarithmic interpolation for Pitch values
  • Progress bar during sound generation used to move too fast
  • Now when exporting sound or graph image, the default export file name is now based on currently edited timbre name
  • The unsaved file indicator sometimes used to show up unnecessarily on switching through harmonics

Go to download page

Having the strong foundation we can move to the next step – user experience improvements.

Tags: ,