Released v2.3.0 – Expressions and Project States

I am proud to announce the release of a rather big update. There have been many changes under the hood of Audectra, simplifying the implementation of future features and massively improving the maintainability. Apart from all the refactoring work, two big and powerful features have been implemented in this release – Expressions and Project States.

You can download the Audectra Project file used for this demonstration video here. Take a look at how I’ve structured the project, what states and transitions I’ve used to achieve the performance shown in the demo video above. Have fun experimenting around!

Refactoring

There have been many fundamental changes in this release, all of them to greatly improve robustness and maintainability. Although you might not see these changes directly, they allow me to implement new features in less time – meaning more frequent updates.

GUI Interactions

The code behind most of the GUI interactions has been massively improved, making them much more robust and maintainable. This refactoring work also prepares the code for an easier switch of the GUI in the next major release.

Internal Settings

I’ve re-engineered the way how Audectra saves all the settings you make in it, like which audio device you’ve chosen or settings for your connected clients for example. This will make it a lot easier for me to implement new settings in the future.

Due to these changes, you will lose your current settings after upgrading. This was a necessary step in this release, but will not happen again.

Project Files

The way how project files are saved has been re-engineered as well, partly for the new features described below, but also for more robustness and maintainability.

Due to these changes, you will not be able to load your old projects after upgrading. This was a necessary step in this release, but will not happen again.

Music Feature Calculation

Audectra has to perform a huge chunk of calculations in the background, allowing you to choose from a bunch of music features, like signal energy or beats for example, for your bindings and triggers. And that in real-time. As you might guess, this is not a simple task to keep in control. A task, where I’ve learned a lot in the past releases. With all the experience I’ve gained so far, I’ve re-engineered the music feature calculation engine towards performance, robustness and maintainability. With this new engine, I am able to very easily add new music features as well.

Multi-Threading Performance

In addition to all the music feature calculations Audectra has to perform in real-time, like stated above, all projects and its states (and thus layers) need to be rendered in real-time as well, where each layer or state can depend on music features provided by the engine above. A very hard task as well, however not impossible as you can see. It requires a lot of sophisticated multi-threading. In this release I’ve tackled the multi-threading performance of the music feature calculation engine and the feature distribution to projects, states, layers and visualizations.

You might notice, that the “Core Threads” visualization on Audectras Dashboard now remains at zero, if there are no projects to render. That’s because the music feature calculation engine now utilizes the redefined multi-threading concept, whereas the project rendering still utilizes the old concept. I’ll have to tackle the project rendering in an upcoming release next.

New Features

Enough talk about the refactoring work, let’s see what new features this release comes with! The guides on this site will be updated soon with further information on how to use these new features.

Expression Engine

The new expression engine allows you to interactively customize all your bindable layer settings (values and triggers) however you see fit for your project. You can choose from a growing pool music features, operators and functions to fine-tune your value or trigger bindings.

Value Expression Binding

Here is an example expression from the demo project linked above. Keep in mind, that your expression needs to return a value between 0 and 1.

Trigger Expression Binding

Here is an example expression from the demo project linked above. Keep in mind, that your expression needs to return a Boolean value (true or false).

Project States

This feature is one of the biggest new features since the release of Audectra v2.0.0. You are now able to create project states within your projects, where each state can be configured individually with effect layers. You can add as many transitions between states as you see fit. Customize the transition conditions with the new expressions feature shown above.

Licensing

I’ve opened up Audectra a bit more for Basic users, now allowing

  • 2 states per project,
  • and 2 layers per state.

Have fun experimenting with Audectra! If you love Audectra, support future development and get yourself an Audectra Professional license. =)

Changelog

  • Redesigned internal settings management in preparation for upcoming features. Warning: Your current settings will be lost after upgrading from older version of Audectra.
  • Redesigned project file management in preparation for upcoming features. Warning: You will not be able to load projects from older versions after upgading.
  • Redesigned UI interaction under the hood, making it much more robust and maintainable.
  • Implemented project state machine, where each state can be configured with effect layers independently.
  • Added condition and value expression engine, allowing more fine-tuned control for triggers and bindings.
  • Added new states tab to the GUI, where you can add, remove or change project states and modify state transitions.
  • Triggerable layer settings can now use the new condition expression engine as well.
  • Bindable layer settings can now use the new value expression engine as well.
  • Bindings for bindable layer settings can be set active/inactive by right clicking on the “Bind” button.
  • The color of the “Bind” button of bindable layer settings indicates if it is activated or not (green means active, red inactive)
  • Removed ‘Active’-Trigger from ‘Stroboscope’ effect.
  • Changed layer limitation for Audectra Basic users to 2 layers per project.
  • Re-engineered and optimized music feature calculation.
  • Generally optimized multi-threading performance (finishing steps in the next release).
  • Some further small improvements and bug fixes.

 

Comments are closed.