Max suitable as VST host?

FriFlo's icon

I am looking into the possibility of programming my personal VST host in max with custom midi routing for a huge orchestral template (filmmusic). But with my first tests I get the feeling max isn't really as good as a VST host like Cubase or Vienna Ensemble. For instance: I loaded a Kontakt piano, no problem! Then, I simply filled the remaining slots of the Kontakt instance with all kinds of patches (all 64 slots). When playing only on channel one (the piano sound), I noticed strong latency, some notes simply were left out when playing faster scales! I loaded the same Kontakt into Cubase, but not problem like that was there. With just the piano loaded, max seemed to play just fine. I already checked vector size, but it didn't help with this problem.
So, my questions:
1) Could I be doing something wrong here?
2) Is hosting large amounts of Kontakt instances with lots of samples loaded into ram something max is not good at?

I realize of course that I could load the samples in VEpro, but I like the idea of loading instruments from max, as I can customize anything to my liking. Finally, the audio has to go to Cubase, and I would rather leave out another host program to increase latency. Any thoughts on this? Has anyone tried something like that?

Cheers,

Fritz.

newtfish's icon

I havent tried these things but I wouldnt be surprised if theyre not working well. Some other things that are not working well IMHO:

1) You have to deal with file dialogues when saving fxp presets. There is no way to store them in pattr for instance, as a blob. It feels really like 1980's computing to have to save presets manually all the time.

2) Not sure whether this has been fixed, but last time I checked bidirectional support for parameters didnt work. This was broken when they moved VST object to JUCE

3) Midi aftertouch/pitchbend etc have to be coded. They are not implemented directly in the object as far as I know.

In order to check your midi latency problem, you could record the midi notes into a coll. This way you could see whether your notes are actually reaching the VST, or whether max's midi is the problem.

dhjdhjdhj's icon

I run a Max environment for live performance and it includes nine VST objects for soft synths and two more for effects. I have never run into any latency issues, they feel pretty instantaneous even with very percussive sounds.

However, I am still using Max 5.1.9 as my host as Max 6 hangs sometimes when a new plugin is requested so I encourage you to stick with Max 5 if you want ultra reliability.

Chris Muir's icon

I have also seen Max 6 hang when loading new plugins. My plugin setup is fairly constant, so it hasn't bothered me too much, but if you wanted to change plugins much, it would be really annoying.

dhjdhjdhj's icon

It's a big problem both because of the risk of a hang during live performance and also when one is working on sound design and you decide to pull in another plugin, etc and "whoooof".

I really hope it will get addressed.

FriFlo's icon

@newtfish: I know that I have no problems with the midi data input, because everything works fine when I only load one patch into Kontakt and play. It seems to me that max is just not working as efficient with VSTs, as Cubase or VE do! That really is too bad, as you could really make a custom VST host with max. that would open a totally new user group of film composers to the max customers. What a waste of potential. I have rarely heard of film composers using max, but even thought about doing tutorials about using max for that purpose. As of now, I think I will keep max for doing some midi and OSC routing, but for hosting large amounts of VSTs it strikes me as not stable enough for the task. Bummer!

However, there is one last thing I will investigate:
Could it be the case, that max gets less flawed with latency, if you consolidate your patch to a standalone program? So far, I have only used my patches in max, but I think I read somewhere, patches perform better as standalones ... Could this be the solution? Well, from what I read from all of you guys and in other forum threads, it is more likely, that max simply isn't as efficient and stable with VSTs in general. If that is the case, I will probably host the VSTs in Cubase or VEpro, even if that means loosing a lot of interesting features, max could provide ...

dhjdhjdhj's icon

Max 5.1.9 is perfectly stable. I've been on tour with it and use an environment where I am reloading multiple (different) plugins for each song. I can send MIDI (notes, pitchbend, CC stuff, etc) to multiple VSTs in one go and they respond immediately.
Maybe your patcher has a bug.

newtfish's icon

Yep, I think DHJDHJDHJ has a good point here.

When they created max 6 they used the JUCE system to host VST's. Max 5.1.9 is based on the old system so it will perform completely differently than max 6 (perhaps more stable as DHJDHJDHJ suggests).

dhjdhjdhj's icon

I wonder if the Max 5 VST object would work with Max 6 and solve this issue?

FriFlo's icon

Interesting! However, I don't understand, why the would abandon a stable VST object in favor of a new version that actually works less good!? Would be nice to hear some response from the developers.
For now, I don't want to take any further risks like using an older version, which might get me other problems on my windows 8 machine. Max 5 won't get any updates and I am not willing to take any risks here. So, for a start, I will stay within the midi world with max. If VST hosting is going to be improved, I might change my patches later with that function.
Except, if it would really be possible to use the max 5 VST object in Max 6! Please, dear max team! Could anyone tell us, if this would be possible? Or is there potentially an update on the way with improved VST handling?

dhjdhjdhj's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Well, I've been interacting on and off with several Cycling74 people since Max 6 was released, trying to track this problem down. There seem to be two issues. One is a memory leak that ultimately crashes Max (32-bit version) if you reload a plugin into a VST three or four hundred times (depends which VST). I reproduced this quite easily using a [metro] to trigger a reload every 6 seconds. I'm using 3 VSTs from Native Instruments for this test. Here's the patcher I used.

Max Patch
Copy patch and select New From Clipboard in Max.

The second problem is more intermittent and seems to be timing/race condition related. From time to time, simply loading a VST will cause Max 6 to hang. I've created a patch that seems to make this happen about once out of every 5 times or so that I trigger the metro. In this particular example, I'm sending a limited number of reload messages very quickly (as opposed to waiting a longer period) and the symptom you'll see once in a while is that the first bunch of messages gets displayed but the second bunch NEVER gets displayed and Max 6 is hung.

Max Patch
Copy patch and select New From Clipboard in Max.

You'll also need this support object that displays print messages with time stamps.

FriFlo's icon

What about the latency problem I initially described? Can you verify this as well? Are you on OSX or windows 7/8 by the way?

Andrew Pask's icon

We're interested in any and all concrete and real world examples of Max crashing due to problems with vst~. Please send detailed bug reports into support, preferably with stripped down patcher code and indications of the plugs you are using.

Incidentally, there will be a performance related fix for MIDI handing in the vst~ object in Max 617, which is due out shortly.

dhjdhjdhj's icon

Andrew, I sent the patchers to support yesterday. I was quite pleased to discover that I could reproduce the issues without all my extra infrastructure so you should have nice little standalone patchers now that can hopefully help track this down. Max 6 is such a delight to use for editing, it's killing me that I have to stay with Max 5.

dhjdhjdhj's icon

@FRIFLOW --- I'm on a Mac ---- I can't say anything about how well Max works on Windows. As I said, Max 5 has worked fine under field conditions with no noticeable latency issues.

moss's icon

I built myself a VST host for playing synths in a band (with setlist, chords, etc.). I only use one Kontakt instance and change "songs" by sending fxps to Kontakt. I run on the latest WIndows 8.1 without any problems.
In early Max 6 there was a bug that the fxp file handles were not released but after I reported it it got fixed quickly!

newtfish's icon

Another strange occurrence is that when you change a preset on the VST instrument, it doesnt send anything out of the VST~ outlets. All the dials/faders change on the VST, but these changes are not noticed. The VST~ object doesnt even tell you that "a preset has changed", so you have to update/refresh all the parameters individually/manually.