Finally, A New Post

Still trying to get some kind of posting workflow happening, very much a work in progress.

I’ve been down the AI rabbit hole with Stable Diffusion, using the AUTOMATIC1111 script- keeps things relatively easy to set up and update. What’s fascinated me most is the animation extension, Deforum. I’ve created a new Youtube channel for the experiments-

There’s also some folders in my Junk Drawer-

I just finished this video for my main Youtube channel-

In putting the video together, and other exploring, I generated large number of images. I wanted to share a few here. The captions are the artists I prompted.

I’ll. hopefully, be posting more. Maybe dive into the workflow of these things.

AUTOMATIC1111 getting started-

Something interesting is brewing- Learn to Turn

UPDATE: I have come up with a name for the song- Learn to Turn

I’ve been working on piece with a chord pattern inspired by the song Jody’s Dream by Michael Morritt.

A while ago, I contacted Michael to ask about some of his songs- there’s an emotional quality to Michael’s songwriting that I really appreciate, and I was looking for an uncommon, and personal, influence.
Here’s a great video of a performance he gave in Dublin, this link starts at 9:12, where he starts “Held”, it’s a good example of the emotional intensity I find appealing in Michael’s work-
The only copy of Jody’s Dream online, that I know of, is on his MySpace page-, but I can’t get it to play- MySpace gives me hope that Facebook may come crashing down someday and we all move onto something better 😉
You can find a good chunk of Michael’s music on his Soundcloud-

Taking the chord progression, and following an intuitive “what happens when I try this”, I shifted the key a bit and fleshed out a musical base for a song-

Jody’s Dream has some very poignant lyrics, and I sat with the emotional intensity, but shifted the perspectives and concerns a bit. After some time of kneading my heart, words started bubbling up and form little ear worms wiggling around my head. After some trial and error, I managed to get an vocal sketch done-

I haven’t named it yet, I’m giving Michael an opportunity first.
It’s called Learn to Turn

The lyrics-

Learn to Turn

frost furred leaves crumple under foot
the sound scrapes against the crisp morning air
I watch the shape of my breath
and think about the affects of the words I share

when we gonna learn to turn our means to better ends
to begin to see the need on which it all depends

hearts breaking on the steepest curve
an endless pull on the deepest nerve

Taylor and Jake are at it again up on the third floor
the rage and frustration, well, you know, we’ve heard it all before
A silence made monster that’s clearly holding sway
hidden in the shape of what they never say

can they make it through
figure out just what to do

there was a gathering in a clearing once
an attempt to balance on a certain line

the storm may have ebbed
but the bill for the damage has yet to arrive
and the ramifications continue to ripple through

There was ice in the rain that fell last night
The season’s shift is crystalline and dangerous
“smells like emotion” someone railed in disgust
intimacy can be tricky when it’s more than just us

We’re over the crest and into the valley
It’s hiding in the corners of our collective back alley
It’s more than a jest but has no market value
but when put to the test, there’s always something that’s still you

when we gonna learn to turn our means to better ends
to begin to see the need on which it all depends

hearts breaking on the steepest curve
an endless pull on the deepest nerve

could we make it through
figure out just what to do

to end these circles
of always ending

We’re over the crest and into the valley
It’s hiding in the corners of our collective back alley
It’s more than a jest but has no market value
but when put to the test, there’s always something that’s still you

Kristan spoke with words that would move
but so few turned to look before she had to leave

Cleared her throat in a quiet way,
left the space for what she didn’t say

there’s an answer to a question that is never ending when you let it
but getting caught in a certain course can get stuck in a mighty tough bit

a knowing look that says what words can get all wrong
some folks they have a weakness for playing it strong

We’re over the crest and into the valley
It’s hiding in the corners of our collective back alley
It’s more than a jest but has no market value
but when put to the test, there’s always something that’s still you

when we gonna learn to turn our means to better ends
to begin to see the need on which it all depends

hearts breaking on the steepest curve
an endless pull on the deepest nerve

Can we fill it in complete,
a moment of the real with us
a kind of feeling through the rush
that tells us that we’re here to touch
soul to soul to soul to soul

Musical Workflow

First, I’m going to do a quick run through on my workflow, then I’ll go in to some details on how I got there and issues you may encounter.

My OS setup is using Ubuntu Studio ( ) as my base. This sets me up with the low latency kernel, which is best for recording and real time audio work.

From there I add the repositories from KXStudio ( ). From this I install Hydrogen with extra drumkits, the mda-lv2 plugins, Ardour, and a whole bunch of other stuff. I started with the Qtractor and QMidiArp from KXStudio, but as I mention further on in this post, I’ve been compiling from the newest source lately to get ahead of some bugs- more on that later, first the workflow…

Here’s a video of the workflow-

The project created in the video-

When I start up Qtractor, the first thing I do is go into File > Properties, set up a new directory for my new project and give it a name. Often I’ll use the date in YEAR-MN-DY format as the directory as well as the Session Name.

Set the name and directory for the project

And then saving the project. Qtractor saves backups regularly, you can set the interval in View > Options in the General tab. Frequently saving your work can save a lot of lost time- something I’ve learned from too many tragic experiences.

I then add a new track- Track > Add Track…

New Midi channel

Give it a name and select the type as MIDI, then move to the Plugins tab. For my initial instrument I often use the MDA Piano or ePiano – the first track will be chords and I find these plugins to be clear and legible when playing chords.

I then right click to add an Aux Send insert-

In the dialogue for adding the Aux Send, click on the “…” to add a new bus.

To add an audio bus, select the Master Audio Bus and change the name (I usually use SynthOut) and the Create button will activate.

After hitting Create, be sure to switch the Audio Send Bus to the new bus you just created. As well as clicking the Active button so that the light is green. Use the “x” to close the Aux Send dialogue.

And the initial track is good to go, click OK.

This first track will be a series of chords. The core of this approach is about exploring chord progressions, so this is where the initial foundation of the project is laid out.

I create a new clip- Clip > New…

If you haven’t set the directory and name of the project and saved it, it will prompt you to do so now. Qtractor automatically creates a new midi file in the project directory. I tend to hit the Save icon fairly regularly when I’m editing.

This is where it gets creative, what progression and structure to use is wide open. Qtractor allows you to snap to a scale/key (View > Scale), which can be helpful. There are numerous websites that have charts and tables, look up what chords are in some of your favourite songs, or there’s apps you can use.

A basic pattern I’ve been following over the last few years is to use an 8 bar pattern where the first 4 bars and the last 4 bars have a particular flow.

I then sequence them so that the first 4 bars plays 3 times followed by the last 4 bars once.

It’s a starting point to then create variations off of.

I then set up the loop region- grab the little blue triangle at the start of the timeline-

Drag it to the end of the sequence, let it go, then click and drag it to the beginning, then enable looping-

At this point you can listen and edit until you get a flow your pleased with.

Now bring up the mixer-

Right click on the top of the track and select Duplicate Track.

Right click in the plugin area of the new track and Add Plugin-

Add the QMidiArp plugin. By default, Qtractor brings up the QMidiArp gui. You can jump right in and add some patterns as I outlined in this blog post-

You can also grab a bunch of presets I’ve made here-

These can be uncompressed into the .lv2 folder of your home directory or you can set a different folder in the options- View > Options…

Note that I have the “Open plugin’s editor (GUI) by default” unchecked, this brings up the plugin Properties instead of the editor when I first add a new plugin-

This lets me choose a preset-

From there I can open the QMA GUI using the Edit button-

Close out the editor and properties. The order of the plugins needs to set now. Move QMidiArp from the bottom to the top-

I then remove the piano and replace it with a new instrument-

In this case, the MDA DX10.

From here, I continue adding and tweaking tracks until I have a number of parts to bring in and out.

Somewhere along the line I add some drums. I develop my beats in Hydrogen ( ). I have a bunch of my Hydrogen files here-
The “layers” folder has ogg and wav files of loops ready to go.

To import, go to Track > Import Tracks > Audio…

Then select all the drum clips and copy them-

Then Paste Repeat-

7 more times to make 8 bars-

Eventually I get a fairly thick block-

At this point I use mute and solo to listen tweak and edit until everything sounds good with everything.

I then copy that out a couple times-

And start removing parts-

Once you have an arrangement you like, it’s time to render out an audio file.

There’s a couple of approaches to this. The quick and dirty way is to at this point do an audio export- Track > Export Tracks > Audio…

In the export dialogue, select the Master output and shift select the SynthOut output as well-

The result isn’t going to be ideal- QMA can do funky things using this method (there’s notes missing) and the sound mix is unpredictable.

A better approach is to record the synth tracks in real time into a track.

Create a new track, setting the Input to SynthOut-

Right click on the colour label of the new track and select Inputs-

In the connections dialogue, Disconnect the capture inputs-

Then connect the SynthOut to the SynthOut-

Then turn off looping, arm the track (click the R so it turns red) and enable record- the red circle next to the play button-

Then hit play to record-

This will give you a more stable synth track to mix and properly master. Taking this further, you can render each synth track separately, giving even more control, but it takes more time- not an uncommon situation with these types of things.

So that’s the basic approach. While I am currently using Qtractor to work with, I originally started using this method in Ardour ( ). My album, Move Along ( ), was almost entirely done using this approach. I have put as many of the projects as I still have in this folder (I had a couple of hardrive failures in a short span of time and lost a bunch of stuff, so there’s gaps)-

The problem I ran into with Ardour is that the GUI for the QMidiArp plugin no longer works in Ardour, and it doesn’t look like it will get fixed any time soon. I had tried out Qtractor a while ago, but Ardour was working for me, so I stuck with what was working.

Things weren’t exactly working with Qtractor and QMidiArp, but I was able to communicate with the developers and get my workflow back-


So, if you want to play along at home, you might have to compile Qtractor and QMidiArp from the latest source to get it working smoothly, at least until the updated versions get out to the repositories.

The commands I use to pull the latest version and compile are as follows-

For Qtractor, check out this for dependencies-

For the actual compile I use a slightly different set of commands-

git clone qtractor-git
cd qtractor-git
sudo make install

For QMidiArp, the main dependencies are

Accept it needs Qt5 now. The set of commands I run to compile and install are-

git clone qmidiarp-code
cd qmidiarp-code/
autoreconf -i
sudo make install

It’s messy, but given time, the updates with bug fixes will be in the KXStudio repository.

QMidiArp patterns by WEBmadman

I’ve been using QMidiArp for a while now, with a particular focus on the arpeggiator- the ability to program it is kind of awesome. So, I’d like to share some of what I’ve been creating. I’ll be adding to this page over time.

These are starting points that I edit and tweak for any given composition.