How do we use this remapper? And which versions is it compatible with?
Inviato Tue 26 Aug 08 @ 6:07 pm
The information provided by DJ Cel is the mapping of controls to an ID, you will still need to write the whole C++ plugin.
I would write a RMX mapper, but I don't have one I can use to do so :(
I would write a RMX mapper, but I don't have one I can use to do so :(
Inviato Tue 26 Aug 08 @ 6:32 pm
hey Scott, if it would help, you can borrow mine for a couple of weeks, or whatever time frame you need, on a cheeky proviso, if you could see if it were possible to use one of the jog wheels (preferably the right one) to control the video transitions for mixing, or if you know that isn't possible the offer is still there.
Inviato Tue 26 Aug 08 @ 8:33 pm
djbeware wrote :
How do we use this remapper? And which versions is it compatible with?
We have to write a script in C++ and compile it to a rmx.dll, wich stored in the Directory where VDJ installed - for Windows Vista
Quote :
C: Users USERNAME Documents VirtualDJ Plugins ControlDevice rmx.dll
After stored it in the Directory we have to bound in it, over the Settings==>Remote Device or so. I have a german Version an its called there Einstellungen==>Fernsteuerung.
SBDJ wrote :
I would write a RMX mapper, but I don't have one I can use to do so :(
Thats really my problem too! I never wrote a script in C++ before, only in PHP and MYSQL. But i will try it with the information in the forum.
I used MS Visual C++ Express Edition to Test with the following code from another user in this forum. He posted it a few month ago - i think it was on march - but DJCel answered to him, that he need a new header (DJCMapper2) to use this code for the new RMX. And now he posted this header above in this forum.
That is the Code he posted:
Quote :
#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>
#include "vdjPlugin.h"
#include "vdjDevice.h"
#include "DJCMapper.h"
#include "DJCMapper2.h"
//////////////////////////////////////////////////////////////////////////
// Class definition
//////////////////////////////////////////////////////////////////////////
class CLOOSHYBRO : public IVdjPluginDevice
{
public:
HRESULT VDJ_API OnLoad();
HRESULT VDJ_API OnGetPluginInfo(TVdjPluginInfo *infos);
ULONG VDJ_API Release();
HRESULT VDJ_API OnParameter(int id);
HRESULT VDJ_API GetDeviceType(int *type);
HRESULT VDJ_API OnButton(int chan,int button,int down);
HRESULT VDJ_API OnSlider(int chan,int slider,int absvalue,int relvalue);
HRESULT VDJ_API OnTimer();
private:
// For example:
int skip_32;
//int effect_mom;
};
//////////////////////////////////////////////////////////////////////////
// Initialization
//////////////////////////////////////////////////////////////////////////
HRESULT VDJ_API DllGetClassObject(const GUID &rclsid,const GUID &riid,void** ppObject)
{
// This is the standard DLL loader for COM object.
// You don't need to change anything in this function.
if(memcmp(&rclsid,&CLSID_VdjPlugin,sizeof(GUID))!=0) return CLASS_E_CLASSNOTAVAILABLE;
if(memcmp(&riid,&IID_IVdjPluginDevice,sizeof(GUID))!=0) return CLASS_E_CLASSNOTAVAILABLE;
*ppObject=new CLOOSHYBRO();
return NO_ERROR;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnLoad()
{
// For example:
DeclareParameter(&skip_32,VDJPARAM_SWITCH,1,"Skip 32 beats with track search buttons",1);
//DeclareParameter(&effect_mom,VDJPARAM_SWITCH,2,"Make effect buttons momentarily active",1);
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnGetPluginInfo(TVdjPluginInfo *infos)
{
infos->Author="Put your name here";
infos->PluginName="LOOSHYBRO";
infos->Description="Description of your plugin";
infos->Bitmap=PLUGIN_BITMAP;
infos->Flag=0x00;
return S_OK;
}
//------------------------------------------------------------------------
ULONG VDJ_API CLOOSHYBRO::Release()
{
delete this;
return 0;
}
//////////////////////////////////////////////////////////////////////////
// Device detection
//////////////////////////////////////////////////////////////////////////
HRESULT VDJ_API CLOOSHYBRO::GetDeviceType(int *type)
{
// For example, for Hercules devices:
*type = PLUGINDEVICE_DJCONSOLE;
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnButton(int chan,int button,int down)
{
if (button=DJC_PREV_TRACK_A)
{
SendCommand(strparam("skip_beat",-32),0);
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnSlider(int chan,int slider,int absvalue,int relvalue)
{
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnTimer()
{
return S_OK;
}
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>
#include "vdjPlugin.h"
#include "vdjDevice.h"
#include "DJCMapper.h"
#include "DJCMapper2.h"
//////////////////////////////////////////////////////////////////////////
// Class definition
//////////////////////////////////////////////////////////////////////////
class CLOOSHYBRO : public IVdjPluginDevice
{
public:
HRESULT VDJ_API OnLoad();
HRESULT VDJ_API OnGetPluginInfo(TVdjPluginInfo *infos);
ULONG VDJ_API Release();
HRESULT VDJ_API OnParameter(int id);
HRESULT VDJ_API GetDeviceType(int *type);
HRESULT VDJ_API OnButton(int chan,int button,int down);
HRESULT VDJ_API OnSlider(int chan,int slider,int absvalue,int relvalue);
HRESULT VDJ_API OnTimer();
private:
// For example:
int skip_32;
//int effect_mom;
};
//////////////////////////////////////////////////////////////////////////
// Initialization
//////////////////////////////////////////////////////////////////////////
HRESULT VDJ_API DllGetClassObject(const GUID &rclsid,const GUID &riid,void** ppObject)
{
// This is the standard DLL loader for COM object.
// You don't need to change anything in this function.
if(memcmp(&rclsid,&CLSID_VdjPlugin,sizeof(GUID))!=0) return CLASS_E_CLASSNOTAVAILABLE;
if(memcmp(&riid,&IID_IVdjPluginDevice,sizeof(GUID))!=0) return CLASS_E_CLASSNOTAVAILABLE;
*ppObject=new CLOOSHYBRO();
return NO_ERROR;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnLoad()
{
// For example:
DeclareParameter(&skip_32,VDJPARAM_SWITCH,1,"Skip 32 beats with track search buttons",1);
//DeclareParameter(&effect_mom,VDJPARAM_SWITCH,2,"Make effect buttons momentarily active",1);
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnGetPluginInfo(TVdjPluginInfo *infos)
{
infos->Author="Put your name here";
infos->PluginName="LOOSHYBRO";
infos->Description="Description of your plugin";
infos->Bitmap=PLUGIN_BITMAP;
infos->Flag=0x00;
return S_OK;
}
//------------------------------------------------------------------------
ULONG VDJ_API CLOOSHYBRO::Release()
{
delete this;
return 0;
}
//////////////////////////////////////////////////////////////////////////
// Device detection
//////////////////////////////////////////////////////////////////////////
HRESULT VDJ_API CLOOSHYBRO::GetDeviceType(int *type)
{
// For example, for Hercules devices:
*type = PLUGINDEVICE_DJCONSOLE;
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnButton(int chan,int button,int down)
{
if (button=DJC_PREV_TRACK_A)
{
SendCommand(strparam("skip_beat",-32),0);
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnSlider(int chan,int slider,int absvalue,int relvalue)
{
return S_OK;
}
//------------------------------------------------------------------------
HRESULT VDJ_API CLOOSHYBRO::OnTimer()
{
return S_OK;
}
While Debugging that code VDJ open, but the program hang - so that i'm not able to steering with the beatskip-button on rmx. In the Options==>Remote-Device the GeneralMidi is colored red
show here:
With the compile function in MSVisual C++ i dont become the needed dll. Only 3 files wich named
debug_CLOOSHYBRO.dll.embed.manifest
debug_CLOOSHYBRO.dll.embed.manifest.res
debug_CLOOSHYBRO.dll.intermediate.manifest
So i dont know what to do next.
Hope that somebody help us ;-)
Inviato Tue 26 Aug 08 @ 11:27 pm
larsdaslandei - For me it's not the coding that is a problem, I've written a fair few plugins already, it's the fact I don't have an RMX ;)
Tayla,
Interesting offer, I'm not sure what you mean by controlling the video transition though - are you talking about using the jogwheel to select a transition, or actually perform it?
Regards,
Scott
Tayla,
Interesting offer, I'm not sure what you mean by controlling the video transition though - are you talking about using the jogwheel to select a transition, or actually perform it?
Regards,
Scott
Inviato Wed 27 Aug 08 @ 5:33 am
SBDJ wrote :
larsdaslandei - For me it's not the coding that is a problem, I've written a fair few plugins already, it's the fact I don't have an RMX ;)
Ok Scott! Thanks for your answer!
But its my problem now, because i want to code a device-plugin for the RMX. i really have the RMX ;-)
Perhaps you know how to build the needed dll-file?
Inviato Wed 27 Aug 08 @ 7:50 am
sorry Scott i didn't explain myself properly, i mostly only use music vids, normally when i have deck 1 playing i like to crossover onto deck 2s video to mix them up or let the punters see which vid will be coming up next, but just now i can only do that with my mouse, thought it would be more useful and convenient using the right jog wheel to do this, but still have the master crossfader have it's functions when mixing. hope that explains it a little better, but i doubt it, lol.
Inviato Wed 27 Aug 08 @ 8:16 am
Well you could use a shift-key with the jogwheel to perform a video crossfade, then decouple the a/v crossfaders so the video is not affected by the master crossfader until it passes the point you faded to with the jogwheel, whereby they then couple again?
Hows that sound? Confused? ;)
Hows that sound? Confused? ;)
Inviato Wed 27 Aug 08 @ 8:36 am
hehe, yes, be simpler for my hands and brain if jog wheel was the only thing that i needed to move, once again i forgot to mention that i have no use for the jog wheels as they are now, also while i got my cheeky head on would it be possible to assign both sets of six buttons to bring a square from the clip bank into the video window. thanks for your time on this Scott
Inviato Wed 27 Aug 08 @ 8:45 am
Clipbank control is easy enough, should be able to set those buttons up so they can be toggled through various sets of functions - for example clipbank, loop, sampler, effects etc...
Inviato Wed 27 Aug 08 @ 8:52 am
you are making my day scott, now there is just one other thing if you.... lol
Inviato Wed 27 Aug 08 @ 9:12 am
Well theoretically I don't need the RMX to make the mapper, I can always build a test DLL and send it to you, repeat and rinse. I suggested the same thing to Bagpuss for a VCI-100 mapper as well.
Regards,
Scott
Regards,
Scott
Inviato Wed 27 Aug 08 @ 9:16 am
you do realise your talking to a complete idiot when it comes to computers scott don't you, lol. as for the loan of the rmx the offer still stands if required.
Inviato Wed 27 Aug 08 @ 9:42 am
Otherwise we have to wait for next mapper version from DJCel. I hope that last not too long :)
Inviato Wed 27 Aug 08 @ 9:55 am
Well I've already started putting together a mapper...
If you lived closer Tayla I'd pop by and borrow your rmx lol
Regards,
Scott
If you lived closer Tayla I'd pop by and borrow your rmx lol
Regards,
Scott
Inviato Wed 27 Aug 08 @ 10:02 am
Nice news scott
I - We wait hopefully ;-)
And good Luck
I - We wait hopefully ;-)
And good Luck
Inviato Wed 27 Aug 08 @ 10:37 am
i could send it by royal mail or courier if you like scott.
Inviato Wed 27 Aug 08 @ 10:51 am
Hey scott!
If you need help or response to a beta of your new mapper, send the dll 4 testing and i would do it.
Pehaps you can send me a sniplet of the source code, than i can learn to prog in c++ too - only if you want to do. That would be nice.
Greetings,
Lars
If you need help or response to a beta of your new mapper, send the dll 4 testing and i would do it.
Pehaps you can send me a sniplet of the source code, than i can learn to prog in c++ too - only if you want to do. That would be nice.
Greetings,
Lars
Inviato Thu 28 Aug 08 @ 6:43 am
is it finished yet, lol... just kidding scott
Inviato Fri 29 Aug 08 @ 7:59 am
lols copy that ^
Inviato Fri 29 Aug 08 @ 8:39 am