new dx/dxi/mfx wrappers

Audio Plugin Hosts and other audio software applications discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

Seems to be a problem with the shell remembering the wrapped plugin when saved in an Ext project.

I'm guessing this would be resolved by wrapping each plugin with the shell2vst ?

Regardless this is great stuff.

Post

I hope it works out also. The Ntonyx MFX worked like a dream in Cakewalk Studio.. Never tryed them in Sonar..

L
Image

Post

polac wrote:
mbncp wrote:Thanks 8)

The mfx, at least, has a little problem, as I can only open a single mfx plug in eXT, when I open a second one I have no GUI.
In VSTHost, it's even worse, can't open a single gui.
Any idea ?
Thanks for that info, something similar did also happen with the dx/dxi pendants, but I think it is fixed with this version now. :)

http://xlutop.com/buzz/zip/dxshell_v1.01b.zip
Thanks, all good now. :)

Now, if you get bored, it would be great to add the ISonarTransport interface.
declaration:

Code: Select all

#ifndef _ControlSurface_h_
#define _ControlSurface_h_
typedef enum SONAR_TRANSPORT_STATE
{
	TRANSPORT_STATE_AUDIO,	// on/off state of the audio engine
	TRANSPORT_STATE_PLAY,
	TRANSPORT_STATE_SCRUB,
	TRANSPORT_STATE_REC,
	TRANSPORT_STATE_REC_AUTOMATION,
	TRANSPORT_STATE_LOOP
}
SONAR_TRANSPORT_STATE;

typedef enum SONAR_TRANSPORT_TIME
{
	TRANSPORT_TIME_CURSOR,
	TRANSPORT_TIME_LOOP_IN,
	TRANSPORT_TIME_LOOP_OUT,
	TRANSPORT_TIME_PUNCH_IN,
	TRANSPORT_TIME_PUNCH_OUT,
}
SONAR_TRANSPORT_TIME;

//B1B5DBD1-6E24-4522-BEB3-AE 01 6D 1D 31 DF
extern "C" const GUID __declspec(selectany) IID_ISonarTransport =
	{ 0xB1B5DBD1, 0x6E24, 0x4522, {0xBE, 0xB3, 0xAE, 0x01, 0x6D, 0x1D, 0x31, 0xDF } };

interface ISonarTransport;

DECLARE_INTERFACE_( ISonarTransport, IUnknown)
{
	STDMETHOD( SetTransportState )(THIS_ SONAR_TRANSPORT_STATE transportState, BOOL bValue ) PURE;

	STDMETHOD( GetTransportState )(THIS_ SONAR_TRANSPORT_STATE transportState, BOOL* bValue ) PURE;
	
	STDMETHOD( SetTransportTime )(THIS_ SONAR_TRANSPORT_TIME transportTime, MFX_TIME* pTime ) PURE;
	
	STDMETHOD( GetTransportTime )(THIS_ SONAR_TRANSPORT_TIME transportTime, MFX_TIME* pTime ) PURE;
};

////////////////////////////////////////////////////////////////////////////////

#endif // _ControlSurface_h_
and the code:

Code: Select all

//------------------------------------------------------------------------
//  -- ISonarTransport
//------------------------------------------------------------------------

HRESULT CMfxWrapper::SetTransportState(SONAR_TRANSPORT_STATE transportState, BOOL bValue )
{
	return E_NOTIMPL;
}

HRESULT CMfxWrapper::GetTransportState(SONAR_TRANSPORT_STATE transportState, BOOL* bValue )
{
	return E_NOTIMPL;
}

HRESULT CMfxWrapper::SetTransportTime(SONAR_TRANSPORT_TIME transportTime, MFX_TIME* pTime )
{
	return E_NOTIMPL;
}

HRESULT CMfxWrapper::GetTransportTime(SONAR_TRANSPORT_TIME transportTime, MFX_TIME* pTime )
{
	if(pTime && pTime->timeFormat == TF_TICKS && transportTime == TRANSPORT_TIME_CURSOR )
	{
		pTime->lTicks = TODO // position of the beginning of the next buffer in PPQ
		return S_OK;
	}
	return E_NOTIMPL;
}
As we have only live events and no way to get current position, this would allow to generate events not based on incoming events.

Post

Oops, sorry, missed the OnInput/OnEvent mode parameter, so the GetTransportTime is not that important.
But there seem to be a little bug with OnEvents. NotesOn are ok but with NoteOff events, m_byVel gets the noteoff velocity. I think that m_byVel should be 0 and m_byVelOff to the value of VstMidiEvent::noteOffVelocity.
And speaking about the OnInput/OnEvent parameter, maybe it could be good to have an extra one (auto), using OnInput in stop mode and OnEvent when the sequencer is running.
And eventually a 4th one (host), depending of the kVstMidiEventIsRealtime flag, but I'm not sure a single host is filling this.
Too bad also that not a single host deals with VstMidiEvent::noteLength.

Post

I LOVE YOU!
Thanks so much, now I can continue using my beloved timeworks CompressorX. You don't know how happy you have made me.
SOUND!

Post

Aaah, there's one thing:
The DX wrapper does not seem to report the plugin's latency to the host...
SOUND!

Post

i tried TcMfxAcidSpew.dll from tencrazy,it loaded in eXT but no action,i thought it might need shelling so i tried to dragndrop onto shell2 but it said 'not a valid vst' .
i've never tried a mfx plugin before,so it might be my fault,but i did register the midi plugin(i read that you needed to).
i tried nicolas fournel's mfx too,but i couldn't seem to register them,anyone else tried these ones in eXT and do you need to 'shell' them and register them all?

Post

Very good questions.
I would like to repeat my question. If the GUI of an MFX is visible does it mean it has been properly registered? It's good to know this so you need not spend time looking to find fault in that direction.

Sure would be nice to be able to use MFX inside energyXT.

I have read somewhere that for Cubase the 1.08 MFX wrapper has a few issues which after all these years has never been fixed.

Post

just tried the dx wrapper and that works great!
dragndrop it into eXT and you get a little list to choose from,no latency in the standalone main screen.dx+dxi working fine,though on loading the saved song it didn't remember which fx or instrument and just hung at the list until one was chosen.although it did remember the preset of synth1 which suprised me.not sure it remembered the dx effect,but that could all be plugin related i guess.cool.thanks for this one. :)

Post

another thank you. :)

Post

For those (including me)that may be asking how set this up.

knockman wrote in another post
unzip the dxishell.dll and dxshell.dll files to your plugin directory, then navigate to them in your host, when you click on them you'll get a "menu" from which you can select the dx plugin you require. if that doesn't work it seems you may have to convert them for certain hosts. i just tried this in energyXT and it worked a treat.
Good to know it works well in energyXT but I energyXT inside Cubase and hope it will just as well.

But what I am looking forward to is using my MFX as a VSTi in EnergyXT.
BTW will the Cubase MFX also work in the Midi Wrapper? I supsect the Cubase MFX are not true MFX. Correct?

Post

Kalamata Kid wrote:For those (including me)that may be asking how set this up.

knockman wrote in another post
unzip the dxishell.dll and dxshell.dll files to your plugin directory, then navigate to them in your host, when you click on them you'll get a "menu" from which you can select the dx plugin you require. if that doesn't work it seems you may have to convert them for certain hosts. i just tried this in energyXT and it worked a treat.
Good to know it works well in energyXT but I energyXT inside Cubase and hope it will just as well.

But what I am looking forward to is using my MFX as a VSTi in EnergyXT.
BTW will the Cubase MFX also work in the Midi Wrapper? I supsect the Cubase MFX are not true MFX. Correct?
I honestly dont see the MFX ever working %100. It seems to be a complex issue with on/offline plugs. I've only gotten 2 out of like 20 MFX to actually work and they already come in free VST plugin version.. I will be very surprised if the wrapper ever does what it's suppose to..

This is the only one that seems to make sense to even bother using.. ImageAnd again Soma or NicFit have something similar and much more stable.. Check my sub-thread here..

L
Image

Post

MFX is such a nice idea. Too bad it has been neglected. :cry:
Two out of Twenty equals ten percent. :cry:
Very sad. :cry:

I do not understand the issues but software developers shave done much more complex things. Midi in comparison looks very simple. Obviously I cannot see the forest through the trees. :cry:

Post

Honestly - my problem is not with people not supporting MFX. I'm more annoyed that some great looking MFX plug-ins haven't become VST midi ones. Grrr!

Regards
Caleb
Happiness is the hidden behind the obvious.

Post

Caleb, actually that may be even better.

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”