Using VSTi's seems very slow

Started by HvitRavn, April 22, 2007, 17:57:35

Previous topic - Next topic

HvitRavn

Hi all,

I've been really amazed at what I can do with VSTi's, but recently I'm getting awfully annoyed at Modplug - every time I want to play a pattern or a song (stop->start), it lags for 1-3 seconds while eating 100% cpu before the playing starts.

This only happens when I have a vsti loaded and bound to an instrument, and I use that instrument somewhere in the song/pattern. Is there a remedy for this?

seventhson

You could try to decrease your latency.
Apart from that,the description you have given is very vague,what vsti are you using and are you using vst effects besides the vsti,what version of modplug are you using etc.

LPChip

Sounds exactly like the problem I've been having.

Does it happen to be a synthedit made VSTi?

I made my own synthedit VSTi, and it has a very long initialising time. There's not much you can do about it really. The issue isn't only happening in OpenMPT but in any program. The big difference is, that OpenMPT opens and closes the soundbuffer each time which makes this happen on every open attempt where other programs just initialise the soundbuffer during song-load or vst adding, and keep it open all the time.

Maybe OpenMPT should just leave the soundbuffer open, where pressing stop once just sends a stop all to everything that is there, pressing the stop button again, goes to panic (eg. stopping the entire soundbuffer).

In order to be sure that this problem is happening to you too, can you ensure that other VSTi's are working as it should?
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

HvitRavn

@LPChip: It seems this is happening with any VSTi (though some are slower than others, such as ezDrummer), and the more VSTI's I have open the slower it gets. It's really annoying when I just do small modifications and need to replay a pattern, for example :/

LPChip

Can you test this behavor on another computer, and if its not too much to ask, can you give the exact list of plugins you use and how many?

Eg:

Song:blaat.it
FX1: myvsti1
FX2: myvsti2 -> fx3
FX3: eq -> fx4
FX4: compressor
FX10: eq (master)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

HvitRavn

I'm afraid I can't test this on another computer, my laptop runs Kubuntu and a vmware'd Windows (which is too unreliable performancewise to test anything). However, I have been running Modplug in the vmware image, and I did experience the same behaviour there.

Song: spirit odontoceti.it
FX1 eZdrummer with drumkit from hell plugin, chained to FX2
FX2: EQ18
FX3: Lightbag II, unused at the moment
FX6: Synth1 VST, chained to FX7
FX7: Classic Auto-Filter
FX8: Superwave P8
FX10: Prova, chained to FX11, unused at the moment
FX11: Classic Reverb
FX12: Classic Reverb (unused)
FX16: Broomstick Bass, chained to FX17
FX17: EQ18
FX18: Edirol HQ Orchestral
FX30: Chimera, unused at the moment
FX100: DX Wavesreverb for master mix. bypassed at the moment

LPChip

Hmm, I don't have much experience with these plugins.

Can it be that linux or vmware are causing this?

Maybe you can upload the song with the plugins I can test it out myself? (and perhaps even the developers)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

HvitRavn

Oops, didn't express myself good enough in previous post - I meant my OTHER computer (the laptop) is running Linux and VMWare. My main workstation (on which I create my music) is pure wintendo :)

Uploading this particular song with all the vsti's would be problematic (due to size) and illegal (due to licenses on some of them). I can however see if I can create a very simple test case and upload that :)

LPChip

Quote from: "HvitRavn"Oops, didn't express myself good enough in previous post - I meant my OTHER computer (the laptop) is running Linux and VMWare. My main workstation (on which I create my music) is pure wintendo :)

Uploading this particular song with all the vsti's would be problematic (due to size) and illegal (due to licenses on some of them). I can however see if I can create a very simple test case and upload that :)

A testcase would be good enough :)
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

HvitRavn

I've been trying out Renoise a little bit, and I noticed something strange - when I load the ezdrummer vsti, the sampler will load the samples into memory *much* faster than it did when opening the vsti in modplug. Like 4-5 times as fast, at a minimum. What could be the cause of this?

HvitRavn

I've been messing a lot with this for a while now, and I think I have established the following:


  • The slowness/hanging occurs whenever I press "Play song from beginning", or when I record a note for the first time after stop, or when I press "Play song" after a stop without having recorded any notes. Same behaviour for playing patterns, of course. I guess this is the soundbuffer opening/closing.

  • The more VST's I have loaded, the bigger the lag. It seems to increase in a linear fashion. Bypassing and breaking chains doesn't help (only on the general cpu usage while playing).

LPChip

Yeah. Its the case that the soundbuffer is being opened which will trigger an initialisation routine for each VST plugin.

The best solution would be to keep the soundbuffer open at all times, where F8 once, just sends a note off to everything it has, and F8 twice would close the sound buffer (like a panic button). True, the next time it will have to initate the soundbuffers again, but it would certainly make things better.

I have one plugin that has quite some init time. Like 1 whole second. If I add more of this plugin to my song, the load time increases with each plugin. True, I could edit my plugin (as I made it, and its a synthedit plugin) to counteract this, but that would mean, reducing its abilities, and I'm not that fund of it.

I really hope the programmers can change the soundbuffer to keep it open. Perhaps optionally.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

rewbs

Hi HvitRavn,

As LP mentioned, we have an issue with some Synthedit plugins - we seem to do some sequence of initialisation operations on song restart where the plugin considers that it's OK to do a relatively large amount of processing.
To be specific, the operation where we get the pause is when calling the plugin's Resume() functionality. This is a normal thing to do when restarting the song, so I don't think calling it is the problem - rather we must be doing something beforehand which changes the internal state of the plugin.
Perhaps some knowledgeable Synthedit people (LP? :) ) could try to narrow down which component of the Synthedit plugins triggers this to help us fix it.

However, if your problem affects all VSTis and not just some, it must be a different problem. For example, looking at your list:
* SuperwaveP8 is known to have the issue described above.
* Synth1  (v1.07) is not. I can have 5 instances of synth 1 in a file and see no noticeable lag on song restart.

If you can confirm you get the lag with only instances of Synth1, could you please upload a simple testcase (simplest possible) and post a link so we can establish whether this is a system specific issue or not? Thanks.

LPChip

I will try to do some testing with synthedit plugins. (like creating an empty plugin, and adding stuff with extreme parameters.)

I have read that using a simple ASDR component with a long decay can eat up CPU usage. Maybe this also triggers this problem, as my plugin uses alot of ASDR's.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

HvitRavn

Quote from: "rewbs"Hi HvitRavn,

As LP mentioned, we have an issue with some Synthedit plugins - we seem to do some sequence of initialisation operations on song restart where the plugin considers that it's OK to do a relatively large amount of processing.
To be specific, the operation where we get the pause is when calling the plugin's Resume() functionality. This is a normal thing to do when restarting the song, so I don't think calling it is the problem - rather we must be doing something beforehand which changes the internal state of the plugin.
Perhaps some knowledgeable Synthedit people (LP? :) ) could try to narrow down which component of the Synthedit plugins triggers this to help us fix it.

However, if your problem affects all VSTis and not just some, it must be a different problem. For example, looking at your list:
* SuperwaveP8 is known to have the issue described above.
* Synth1  (v1.07) is not. I can have 5 instances of synth 1 in a file and see no noticeable lag on song restart.

If you can confirm you get the lag with only instances of Synth1, could you please upload a simple testcase (simplest possible) and post a link so we can establish whether this is a system specific issue or not? Thanks.

You're absolutely right -- I tried with Synth1 and Edirol orchestral, with those two there is no substantial lag. Heck, even Ezdrummer isn't lagging anymore. I must investigate!