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
“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:
Likewise, “play-score-external” is a simplification of “defscore” that Opusmodus uses to generate the score. Here is the code:
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.
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:
I then changed the instruments slightly.
This time, I re-ran my program with changed scales:
Here is the output audio.
Here is the MusicXML:
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!!
Recent Comments