Recompose
Latest News: insert Special Offer

Some technical information on the chord generation engine in I2C8

While we announced our new MIDI effect plug-in I2C8 some days ago, we did not provide any insight on the basic principle of chord generation and the technologies used so far. As it is an entirely different model from Liquid Notes, some explanations may be of help to understand better.

Read on to get more information on this.


Loop exploration by means of chord generation

First and foremost, it is important to distinguish that I2C8 is a loop generator (rather than a traditional chord generator). That is because it is aimed at generating high-quality MIDI sequences based on triad logic, with a high level of interactivity provided for the user to be able to switch through different variants of sequences generated. It is this that is required by producers of electronic (dance) music, be it in the studio or when playing live.

To that end: rather than you being served single chords that you have to build into a bigger piece all by yourself (and find fitting matches for your sequences), I2C8 delivers chord sequences fully ready for use in your song. It does this by asking the user for an input via pattern definition to capture the mental model you developed for your arrangement.

In order to satisfy the needs of the target group, a method is required that generates chord sequences fast, with high quality in the output and equally takes into account limitations you have set via parameters (patterns, voices, etc.). As always, there are multiple approaches to solving such a problem - core to it is doing this in a highly responsive manner, as anything that doesn't create chords in close to near real-time won't be accepted by users.

This needs to take into account multiple system configurations for a user's machine, from top-end machines to lower-end models, each of them required to perform flawlessly when interacting with our MIDI effect plug-in.

Having studied and experimented extensively with multiple approaches, and given the know-how gathered from Liquid Notes, we have ultimately decided for a combination of machine learning of statistical models and sampling from models for chord sequence generation. This enables guided sampling using a specified chord pattern made up of abstract variables. And, also allows for manual chord specification.
The models have been derived from Liquid Notes' music intelligence, albeit not all code has been transferred.

The bottom line is that this creates a chord generation engine that is able to generate many thousand high-quality chord sequences on the click of a button, all within the given range specified by the parameters chosen by the user. The user interface in I2C8 only shows a total of 72 possibilities, that is 8 chords times 9 sequences - but that is a voluntary limitation so as not to overcomplicate matters.

blog comments powered by Disqus