Angelo's blog

MIDI Automator 1.1.0-beta released

Download here

A few weeks ago I got an e-mail from Israel. A guy named Yohay asked me if MIDI Automator could help him if all his songs are in one big Ableton set-list. As MIDI Automator was intended to work with one file per song I had to disappoint him. But the demand made me thoughtful. I was thinking about the keyboard player of my band who had several "big list files" from other productions. This may occur if you temporarily replace a musician or if you are sharing Ableton live productions among second and third casts (think about theatre and musical productions).
So I thought that if MIDI Automator would be able to send a unique midi message for each opened set-list item it could solve the problem. Then you just have to midi learn your Ableton locators to the sent messages for each item. So the set list of MIDI Automator would not open files, but send midi messages instead. That's what I call the "Yohay Release". No worry, MIDI Automator can still do all the other stuff as well in this version.

Why is it beta? This version was tested with automated functional tests so that I can confirm not to have any regression failures. The previous versions were well tested on stage with so called "in the wild testing". I was not able to test this version on stage yet, but I am will do at the next gig. As soon as this passed "on stage" I will release it as a regular version.

Feel free to try it yourself and give me feedback. So I will be able to imrove the reliability for all of us.

MIDI Automator 1.0.2 released

Download here

So what has been changed with the new version? Well there are no new features but several bugs have been found and fixed.

I started to write automated tests. What is automated testing? So before releasing a new software I have to test it. But I should not only test if the new coded function works, I also have to test if the old functions still work. There is always a possibility of damaging old code when making changes for new functions. As testing the same functions over and over again gets boring it is a good idea to let a computer do this for you. So before releasing a new version I am now able to run a set of tests and see if I did not destroy anything that worked in the old version. 

But implementing test automation has another advantage. I have to think about how the tested function should work and what kind of exceptions can occur. So this process forces me to think about possible bugs before they occur on stage. For sure I will not find all bugs at once, but I can assure that fixed bugs will not raise again.

The video below demonstrates the current test automation. The mouse and keyboard typings are fully automated, no human beeing was involved. 


Building a set-list with Ableton Live

My band uses Ableton Live on stage. We use it not only for playbacks but also for loading and configuring sounds like keyboard and amp modeling presets. In fact we automate everything that needs no musical attitude like switching guitar effects. So when we practiced our stage show with the first five songs, we realized how uncool it was to manually load a new file after every song. So we searched the net for solutions, but no DAW offered anything like a set-list feature. We just read about people copying all their songs in one big Ableton live-set file. This could not be a solution for us as it was unhandy to maintain or to make spontanious changes. So we wanted to have a tool that stores a digital set-list and is able to load our songs from sepreated files. And we wanted to control loading the next or previous song from buttons on the keyboard. So I started to implement the MIDI Automator. 

How does MIDI Automator do the trick

MIDI Automator does the same thing as if you would open an .als file manually by double-click. The operating system opens the file extension with the appropriate program - in this case Ableton Live. If you would double-click a .txt file your OS would open a text editor whereas a .mpg file would be opened in your video player. MIDI Automator does exactly the same thing by performing an exec() system call on the file, so you could also open videos, web pages or Flash animations.

Ableton Live - The difference between Windows and Mac

When opening an .als file on Windows you have to be sure that there is only one instance of Ableton Live at the same time. The Windows version is able to support multiple instances of Ableton Live. So be sure to deactivate multiple instances in Preferences -> Look&Feel, otherwise every song will load in its own Live instance.

The MacOS version of Ableton Live does not have this option as it can only handle one instance.

Therefor the loading process is much faster than on Windows. We made several tests with nearly identical hardware. Ableton Lives version on Windows needs more than three times longer than the MacOS version. Why? 
When you load your next .als file on Windows and watch the task manager, you can see that a second process of Ableton Live will occur though you confiured it for single instance use. The new process will dissappear after about a second and the file will be loaded into the existing process. I guess that Ableton always creates new processes. When configured for single instance use every process watches for exisitng processes to hand over the loaded file and to terminate themselves. This function consumes most of the time when loading files on Windows.

"Hello World" - a new website is born.

When I started to make electronical music few years ago I had no clue about the upcomming demands on stage. As a bass guitar player my biggest concerns were a loose contact in the audio cable or an overheated amp. But as soon as you have to rely on a computer (or even worth, multiple computers) things will become tricky. Stage fright turns into tech fright. I will use this blog to share my experience with computers on stage and the long way to a reliable setup. One milestone was the development of the tool MIDI Automator. Feel free to comment or share your own experiences here.     


Subscribe to RSS - Angelo's blog