On re-performing Atlantys and Vision de la cité interdite by Tristan Murail - Part III

On how I tried to play two instances of the same VST.

After the first rehearsal with Frederik and providing him with a means to practice with the sounds the next main topics were to finalize the concert setup using Native Instruments' FM8 and answering the questions that came up in the rehearsal. As for FM8 the issues to solve were:

 - run two instances of FM8 on one computer

 - find a fast way to change between the programs (the hardware DX7 has direct access to all 32 programs in a bank with the push of a button, the MIDI (master) keyboards I know don't feature 32 specific program buttons)

 - find a way to mimic the sound when changing from one program to another using FM8's morph function

The second one was easy: I decided on using an iPad for the program changes and the morphing between sounds. The final setup would then consist of two keyboards sending on MIDI channels 1 and 2 and the shared iPad sending on channels 1 and 2 as well for the program changes.

Here's the setup:

 

On the iPad I use MIDI Designer because it's quite straightforward and it can do everything I need. Lemur can certainly do much more, but requires more programming skills. Here's what MIDI Designer on the iPad looked like:

 

It's not really a beauty, but it's straight forward: 32 program numbers and an X-Y pad that represents the NI FM8's morph square.

This worked well with a single instance of FM8, but I ran into heavy waters trying to run two instances of FM8, one for each DX7. Why?

1) The first problem was that most VST hosts don't even load FM8. They would load all kinds of VSTs - including other VSTs by Native Instruments - smoothly, but not FM8. However, I not only needed a VST host that could load one instance of FM8, but two.1 

2) To my surprise I found that I didn't find one. It seems like there a quite a few for Windows machines but for the Mac I downloaded all the hosts that I could find on KVR and searched the internet high and low and came across quite some sophisticated programs but I could not get them to run: either they would not work or it got too complex trying to decipher the logic of undocumented freeware programs. In one program I managed to do it once but then forgot how I did it and couldn't redo it. As stupid as this sounds it's also a good indicator to me that I don't want to go on stage with a program that I don't fully understand or feel reliably comfortable with. 

I also for some reason just couldn't find out if Apple's MainStage can do it. I read multiple forums and the product description and what not but I couldn't even find out for sure if MainStage can load VSTs or only AUs.2 And I don't want to buy a program that I don't know if it works for me. 

So, here I was, still trying and not having any results. I had tried out a good 15 programs without any success and was slowly running out of my wit. 

3) I finally gave up my search, knowing that this should be more than easy to do with Max/MSP. I still don't know how to program Max and I'm still convinced that the world does not need another mediocre patcher. However, since I had a few rehearsals with Ernst Surberg for another project and since Ernst knows this stuff I asked him for the favor to write the patch for me, which he did. Thank you thank you thank you. The patch would simply sort MIDI messages by defining MIDI ports3 and sending the data to the FM8 VST, which would be loaded inside the Max patch. All I had to do was to tell each VST to which port to listen to. Fantastic. I took the patch home a happy guy. 

At home I found that it was not working because of a rather peculiar thing inside FM8: you can't define separate MIDI channels in FM8, it always works in MIDI Omni Mode (Omni mode means that the instrument is listening on all 16 channels simultaneously). No way I could tell one instance of FM8 to listen to MIDI channel 1 and the other to MIDI channel 2. As far as the keyboards with the distinct MIDI ports were concerned that didn't create a problem, because the data from one keyboard would be sent to first VST and the data from the other to the second one. However, the program changes sent from the iPad would always trigger program changes in both VSTs simultaneously. 

4) I then tried to load two instances of FM8 as standalone. There is a way with which you can override the common behavior that a program would load only one instance of a program (like with MS Word: you can only load the program once and switch between Word files within this one program. You can't open two "Words" at the same time). Here's how to do it: http://www.cnet.com/news/how-to-open-multiple-instances-of-an-application-in-os-x/. However, I ran into the exact same problem: not being able to address each of the instances with it's designated MIDI channel would mean that they would always react to everything they would get. And actually using this trick means hacking the whole OSX system, which is probably not a good idea to do on stage in the first place.

5) So, next try. Since I had a meeting to check out Roli's Seabord (wasn't too impressed by it, actually) at Pierre Alexandre Tremblay's place (he's currently living in Berlin being the Varese guest professor at the TU) I asked him for another patch. I now knew exactly what I wanted to have and of course it took the grand wizard no time to come up with this little patch. We tried it out with one instance of FM8 and it seemed to work fine! Thank you thank you thank you!

Again, at home I found it's not working. Now, I don't know if that's a problem with the Max patch or the MIDI Designer patch or FM8 or with the combination of them all and I will probably never find out. This can probably be fixed in no time, however, both PA and I are travelling so much that the next time we saw each other was months after the concert.

6) So, here I was, having spent days on the net and asking two friends for a favour (and having had to report back that it wasn't working) I still didn't have a solution. Incredibly frustrating.

7) Not knowing what else to to, I once more searched on net and finally stumbled upon a free program by Apple called AU Lab which, despite its name, DOES load VSTs. Actually I found it to be a really nice program. It does crash from time to time when playing around with the VSTs in Cocoa view (never mind if you don't understand what I'm talking about, you will once you work with the program) but since I wouldn't do that on stage anyway I found it a pretty cool program, actually. I takes a little while to get your ways around it but all in all it's pretty straight forward and can to a lot with almost no overhead. Nice. Oh, hey, suddenly I had a solution! Let the concert roll!

Now, all in all this was utterly frustrating. I felt like I wasted so much of my own time and that of Ernst and PA and considering what it was that I wanted to do it just seemed ridiculous. So, I'm still thinking about what was going on here and maybe the penultimate reasons are probably somewhere else:

- trying to run two instances of FM8 because duo partner doesn't have the means to do their electronics on their own

- Native Instrument does not like FM8 opened up in VST

- No possibility to designate a specific MIDI channel in FM8

- No tryout of the Max patches with the complete setup with the programmers present

I think the last point is important, because it leads to frustration on both the programmer's and my side. On my side, because I asked friends for their help and time and having to tell them later, that it didn't work, on obviously for them because they offered me, well, their help and time and later heard, that it was in vain. This is really not nice and how often can you do something like this until they don't want to offer you your help and time anymore?

Basically I was trying to hack FM8 into doing something that it was never intended for: to be opened in two instances on one computer. Maybe it's just not such a good idea. On the other hand it's also not really clear why Native Instruments tries to prevent something which easily works with other VSTs by providing FM8 with the capability to listen to specific MIDI channels instead to being in MIDI Omni mode all the time and why it's not opening up in most simple VST hosts in the first place. However, if my duo partner would have had a working version of it himself it would've been easy. Or would have? I'm not yet certain where to cut this Gordian knot. 

But maybe that's just the way it is when working with computers. While writing this blog I find that I often do screenshots of programs to upload them here. This is the workflow for this:

1) start program I want to make a screen shot of
2) start screen shot program
3) make screen shot
4) save screen shot after
5) clicking around until I am at the location where I want the screen shot to be saved to.
Since the screen shot is not saved in a format I can use on the net, I have to 
6) open screen shot in preview
7) duplicate screen shot
8) save as .png
9) after clicking around to save at in the location where I want to save it to
Then I need to upload the screen shot by
10) open ftp program
11) clicking to the location where I saved the screen shot to
12) clicking to the location where I want the screen shot to be uploaded to and
13) uploading the screen shot
Finally I have to integrate the picture on the web site by
14) loading the picture into the web editor after
15) clicking to the location where I uploaded the screen shot to
16) changing the size of the picture
17) adding a description to the picture
18) and finally saving everything inside the web editor
The I have to check if everything is alright by
19) loading the final page into another browser window to see if it's alright.
 
Of course, sometimes it's not. Which means that 20) is: do it all over again.

Oh boy, really? Maybe I should go back to paper, scissor and glue.

 

1It could be that a full blown DAW is a work around, however I do see it only as a work around since a DAW is a production tool and not really meant for live playing. For live playing I a) want to keep it as simple as possible and b) try to have the lowest overhead possible. Since I have not delved any further in this, I can't comment more on it either. 

2AU stands for Audio Unit and is kind of the same thing as a VST, but developed by Apple a few years later than Steinberg and working only on Apple computers. The manual for MainStage 3 does not even mention the existence of VSTs. So lame.

3Difference between MIDI port and MIDI channel: the MIDI port is the actual _hardware_ port of an instrument, like the 5-pin MIDI port on a keyboard or the USB port on a computer. The MIDI channel, however, is part of the MIDI _software_ protocol and its 16 channels were originally used to address up to 16 instruments from one single controller. 

Think of a train station with 16 tracks: "MIDI port" refers to the whole train station, "MIDI channel" refers to the tracks.