Using Falcon 2 with Opusmodus

Written by on December 6, 2020 in LISP, Music, Programming with 0 Comments

The recently concluded Black Friday sale by UVI was an irresistible temptation for me and I ended up investing in Falcon 2 and a few other instruments. Although I have the latest versions of Ableton Live, Propellerheads Reason, Renoise, and Reaper, I felt Falcon 2 would be a good addition to my existing collection, mainly because of its support for Lua scripting.

Over the past few days, I have been experimenting with Falcon and the different instruments that I purchased along with it. It was fairly straightforward to set it up to receive MIDI inputs from Opusmodus and this gave me an opportunity to try out the features of my algorithmic composition library. In this article, let me will go over what I did.

Here is the code that I wrote. I created 4 tracks:

track1 => Chord progression

track2 => Melody (automatically generated to go with the harmony)

track3 => Bass (same as melody but shifted down by 1 octave)

track4 => Percussion

Sample Code in Opusmodus

Sample Code in Opusmodus

“defrack” is a convenient macro that allows multiple sections (if any) to be merged. In my case, of course, there is just one section. The code is trivial:

Macro: deftrack

Macro: deftrack

Likewise, “play-score-external” is a simplification of “defscore” that Opusmodus uses to generate the score. Here is the code:

Macro: play-score-external

Macro: play-score-external

The chord progression is generated automatically (randomly, from a pre-defined list of popular chord progressions) based on the supplied rhythm. The melody is created to match the harmony (I have chosen the simplest algorithm here). Just to make things interesting, the bass track follows the melody track, but shifted down by one octave.

I launched Falcon 2 and configured it with 4 tracks, with instruments to match the tracks in my code.

Setting Up Falcon 2

Setting Up Falcon 2

One thing I noticed was the mismatch between the octave of the pitches I generated and the octave as “received” by Falcon. This could be because Opusmodus uses “C4” as the Middle C, whereas Falcon 2 (probably) uses “C3”. To address this, I initialised the octave settings of all 4 tracks in Falcon as “1” (the default is 0). It took me a while to figure this out.

I then ran my program, triggering the instruments in Falcon 2. Here is the generated 8-bar phrase.

The corresponding MusicXML is this:

MusicXML of the Phrase

MusicXML of the Phrase

I then changed the instruments slightly.

Changed Setup

Changed Setup

This time, I re-ran my program with changed scales:

Changed Scales

Changed Scales

Here is the output audio.

Here is the MusicXML:

MusicXML of the Phrase

MusicXML of the Phrase

As you can sense, the generated chords, melody and bass tracks are different each time. However, the “Drums” track remains the same.

Hope you like what you hear! My algorithmic library is work-in-progress and I will be sharing other interesting experiments in future articles. Stay tuned.

Have a nice weekend!!

Tags: , ,

Subscribe

If you enjoyed this article, subscribe now to receive more just like it.

Subscribe via RSS Feed

Leave a Reply

Your email address will not be published. Required fields are marked *

Top