It didn't output one. It crashes when I select it on the plugin list.aciddose wrote:can you post the output file for wavelab? it would help by showing what causes the crash to happen.
Next VST spec & render time quality ?
- KVRAF
- 6478 posts since 16 Dec, 2002
- KVRAF
- 6478 posts since 16 Dec, 2002
I did realise this. I was simply wondering why processlevel "isn't supported" by SX3. I thought maybe they force the offline API for correct functionality and host-plugin communication during rendering..aciddose wrote:when i keep saying "offline" i mean when rendering a file from the plugin rather than sending the output to a audio output device. you know like when you do export->audio.
the "offline" processing functions in vst are for effects like you see in wave editors.
- KVRAF
- 12555 posts since 7 Dec, 2004
http://xhip.cjb.net/temp/hosttester.dll
it shouldnt crash now. i gave it inputs, outputs, a program and a parameter. it copies the inputs to the outputs and calls getprocesslevel inside the process functions. i changed it to only report on getprocesslevel if the process level changes.
tell me what this tells you... if cubase doesnt respond with a nonzero value either i'm doing something very wrong or cubase doesnt even support a basic vst feature.
it shouldnt crash now. i gave it inputs, outputs, a program and a parameter. it copies the inputs to the outputs and calls getprocesslevel inside the process functions. i changed it to only report on getprocesslevel if the process level changes.
tell me what this tells you... if cubase doesnt respond with a nonzero value either i'm doing something very wrong or cubase doesnt even support a basic vst feature.
- KVRAF
- 6478 posts since 16 Dec, 2002
Looking a whole lot better.
seems it needs to get called under process.
wavelab playback, and one render:
seems it needs to get called under process.
wavelab playback, and one render:
SX3 idle, playback and one render:opcode effSetSampleRate (10) index 0 value 0 ptr 0 opt 44100.000000
opcode effSetBlockSize (11) index 0 value 2048 ptr 0 opt 0.000000
opcode effOpen (0) index 0 value 0 ptr 0 opt 0.000000
opcode effSetBlockSize (11) index 0 value 2048 ptr 0 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 46747312 opt 0.000000
opcode effSetSpeakerArrangement (42) index 0 value 50656376 ptr 50657280 opt 0.000000
opcode effSetSampleRate (10) index 0 value 0 ptr 0 opt 44100.000000
opcode effGetParamName (8) index 0 value 0 ptr 50657616 opt 0.000000
opcode effGetParamLabel (6) index 0 value 0 ptr 50657616 opt 0.000000
opcode effSetProgramName (4) index 0 value 0 ptr 46748960 opt 0.000000
opcode effGetParamDisplay (7) index 0 value 0 ptr 46748109 opt 0.000000
opcode effGetProgram (3) index 0 value 0 ptr 0 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 55770160 opt 0.000000
opcode effGetParamDisplay (7) index 0 value 0 ptr 46748109 opt 0.000000
opcode effGetProgram (3) index 0 value 0 ptr 0 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 55770180 opt 0.000000
opcode effMainsChanged (12) index 0 value 1 ptr 0 opt 0.000000
getCurrentProcessLevel() inside resume() - returned [0]
getCurrentProcessLevel() inside process() - returned [0]
opcode effMainsChanged (12) index 0 value 0 ptr 0 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 46785776 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 46747312 opt 0.000000
opcode effClose (1) index 0 value 0 ptr 0 opt 0.000000
opcode effIdentify (22) index 0 value 0 ptr 0 opt 0.000000
opcode effGetPlugCategory (35) index 0 value 0 ptr 0 opt 0.000000
opcode effSetSampleRate (10) index 0 value 0 ptr 0 opt 44100.000000
opcode effSetBlockSize (11) index 0 value 2048 ptr 0 opt 0.000000
opcode effOpen (0) index 0 value 0 ptr 0 opt 0.000000
opcode effCanDo (51) index 0 value 0 ptr "bypass" opt 0.000000
opcode effSetPanLaw (74) index 0 value 1 ptr 0 opt 1.000000
opcode effGetProgram (3) index 0 value 0 ptr 0 opt 0.000000
opcode effGetVstVersion (58) index 0 value 0 ptr 0 opt 0.000000
opcode effGetProgramNameIndexed (29) index 0 value -1 ptr 1242084 opt 0.000000
opcode effGetProgramName (5) index 0 value 0 ptr 1242064 opt 0.000000
opcode effGetProgram (3) index 0 value 0 ptr 0 opt 0.000000
opcode effCanDo (51) index 0 value 0 ptr "midiProgramNames" opt 0.000000
opcode effMainsChanged (12) index 0 value 1 ptr 0 opt 0.000000
getCurrentProcessLevel() inside resume() - returned [0]
opcode effCanDo (51) index 0 value 0 ptr "sendVstMidiEvent" opt 0.000000
opcode effMainsChanged (12) index 0 value 0 ptr 0 opt 0.000000
opcode effGetParamName (8) index 0 value 0 ptr 1242232 opt 0.000000
opcode effGetParameterProperties (56) index 0 value 0 ptr 1242388 opt 0.000000
opcode effGetVstVersion (58) index 0 value 0 ptr 0 opt 0.000000
opcode effSetSpeakerArrangement (42) index 0 value 232005888 ptr 232006128 opt 0.000000
opcode effMainsChanged (12) index 0 value 1 ptr 0 opt 0.000000
opcode effCanDo (51) index 0 value 0 ptr "sendVstMidiEvent" opt 0.000000
opcode effCanDo (51) index 0 value 0 ptr "LiveWithoutToolbar" opt 0.000000
opcode effString2Parameter (27) index 0 value 0 ptr 0 opt 0.000000
opcode effGetParamDisplay (7) index 0 value 0 ptr 1241304 opt 0.000000
opcode effGetParamName (8) index 0 value 0 ptr 1241444 opt 0.000000
opcode effGetParamLabel (6) index 0 value 0 ptr 1241444 opt 0.000000
opcode effGetParamDisplay (7) index 0 value 0 ptr 1240972 opt 0.000000
opcode effStartProcess (71) index 0 value 0 ptr 0 opt 0.000000
getCurrentProcessLevel() inside process() - returned [0]
opcode effStopProcess (72) index 0 value 0 ptr 0 opt 0.000000
opcode effStartProcess (71) index 0 value 0 ptr 0 opt 0.000000
getCurrentProcessLevel() inside process() - returned [4]
opcode effStopProcess (72) index 0 value 0 ptr 0 opt 0.000000
opcode effStartProcess (71) index 0 value 0 ptr 0 opt 0.000000
getCurrentProcessLevel() inside process() - returned [0]
opcode effStopProcess (72) index 0 value 0 ptr 0 opt 0.000000
opcode effClose (1) index 0 value 0 ptr 0 opt 0.000000
- KVRAF
- 12555 posts since 7 Dec, 2004
so wavelab does not support it, and cubase only returns 4 while rendering a file, and it doesnt return other values like it should..
0 = not supported
i wonder what would be returned from inside an idle() call.
i guess it is pretty useless other than for simply calling from inside process() to see if it is being called with the intention of rendering a file or not.. i mean if you're already in process() it means the host is in the process thread.. if you're in editor->idle, it means you're in the gui thread. if you're in idle().. it means?.. well, it probably doesnt matter much anyway.
atleast it works to show which hosts support processclass 4.
i notice this:
perhaps calling in that order is better. i'd really like to see what a lot more hosts do.
0 = not supported
i wonder what would be returned from inside an idle() call.
i guess it is pretty useless other than for simply calling from inside process() to see if it is being called with the intention of rendering a file or not.. i mean if you're already in process() it means the host is in the process thread.. if you're in editor->idle, it means you're in the gui thread. if you're in idle().. it means?.. well, it probably doesnt matter much anyway.
atleast it works to show which hosts support processclass 4.
i notice this:
Code: Select all
opcode effSetSampleRate (10) index 0 value 0 ptr 0 opt 44100.000000
opcode effSetBlockSize (11) index 0 value 2048 ptr 0 opt 0.000000
opcode effOpen (0) index 0 value 0 ptr 0 opt 0.000000
- KVRAF
- 6478 posts since 16 Dec, 2002
Yeah, stupidly enough wavelab doesn't seem to support it. It's *especially* stupid since everything gets committed in wavelab using the 'render' button.aciddose wrote:so wavelab does not support it, and cubase only returns 4 while rendering a file, and it doesnt return other values like it should..
0 = not supported
i wonder what would be returned from inside an idle() call.
I think only modes 0 and 4 are significant, and that's why we don't see the other modes used anywhere. Looking at the list the rest of the modes seem quite obsolete.
- KVRAF
- 6478 posts since 16 Dec, 2002
indeed. the lack of standardisation is appalling. One can easily blame most of the host vs. plugin related compatibility problems on that.
Keep the developers guessing, eh, Steinberg?
Keep the developers guessing, eh, Steinberg?
-
- KVRist
- 83 posts since 11 Apr, 2004
hmm, maybe i'm not 100% sure what this thread is sbout, but the steinberg reverb plugin roomworks for nuendo has got a nice button that says "export", it makes the plug automatically switch to "0% efficiency" (how much CPU the plug is eating) during export... so that you can use an efficient but not-so-good-sounding reverb when working, but still get full reverb quality when rendering without having to do anything but making sure the export button is toggled