modplug being used as a VSTi

Started by dacess, July 08, 2007, 12:18:06

Previous topic - Next topic

dBlues

Quote from: "Roman Only"
dBlues: I render them all seperately so that I can mix them in Cubase, as it has a much better eq situation. As for one at a time, I'll be using the tip LPChip just dropped me. :D

I still wish I could use ModPlug in Cubase, though.  :oops:

Sure, thats what I have been doing since I first installed Modplug.  

But back to the original topic. From what I understood before, I think MFC dependency, or rather, mixed UI and other code-architecture, could hinder the Modplug VSTi/DXi-plugin development. If Modplug could somehow be refactored to separate non-UI-specific code under a platform, it would be much easier. This is not the case atm, however, and again it is the same thing that limits Modplug development. But, this is something that probably needs to be accepted and lived with. At least until a mythical diamond-hard-coder comes and refactors everything just like that (smells like irony here...)
Strive for excellence, not perfection.

pelya

Quote from: "Roman Only"
But back to the original topic. From what I understood before, I think MFC dependency, or rather, mixed UI and other code-architecture, could hinder the Modplug VSTi/DXi-plugin development. If Modplug could somehow be refactored to separate non-UI-specific code under a platform, it would be much easier. This is not the case atm, however, and again it is the same thing that limits Modplug development. But, this is something that probably needs to be accepted and lived with. At least until a mythical diamond-hard-coder comes and refactors everything just like that (smells like irony here...)
I think of simpler approach to this matter: create some simple VSTi DLL file which would connect to running MPT with e.x. pipe object, and add sound output device in MPT which will write to that pipe - both tasks seems fairly simple, because there are examples in VST Plugins SDK and MPT sound output devices are based on a simple interface.
Based on that, I see "modplug being used as a VSTi" like this: you start MPT, load some song, start Cubase, load "Modplug_VSTi", they connect to each other somehow, and then you press in Cubase notes C-4 to B-4 to play patterns 1 to 12 in MPT, notes C-5 to B-5 to mute/unmute channels 1 to 12, C-6 to pause/continue the song, C#6/D-6 to increase/decrease BPM etc. etc.

bvanoudtshoorn

Nice idea... Quite Linux-y, with all its pipes. =) The only problem would be minimising latency. Any additional layer will necessarily add a degree of latency, so the vst-i interface to mpt would have to be _very_ highly optimised.

dacess

I have zero technical knowledge in this area, but i gather now that it must be very difficult to link Modplug with Cubase as a vsti or re-wire. However, do any of you guys think that it would be easier to link Modplug to Cubase via midi time-code? Then once your happy with the arrangement and mix you could render the file to wav and load into Cubase as an audio file.

pelya

I've made some progress on this topic - Get the archive .
Put OpemMPT_VSTi.dll to your VST plugins dir, put OpenMPT_VSTi.exe to mptrack dir.
Run VSTi host (even OpenMPT itself will go :) ) and load .dll - it will show config dialog for the first time (you'll be amased how do I like to write config dialogs ;) ). After you finished with config (typically change path to .exe from archive), restart VST host. Then, when you load .dll, the mptrack window pops up (note "VSTi" in the title). Load some song in mptrack and then send MIDI keys to VSTi DLL:
C-4 to A-4 to start playing patterns 1-10 (in theory, right now it just starts playback from current pattern).
C-5 to A-5 to mute channel 1-10 (mptrack GUI won't show it, but it is muted, really ;) ).
B-5 to stop playback.
Hold A#4 when hitting some key to toggle On Transition mode - that's it, mute toggled and selected pattern played at the end of current pattern (that's the only way to go to some pattern for now).
Hold B-4 and type large number with several keypresses - the selected channel muted / pattern played when you release B-4 (doesn't work yet).
Yeah. Bugs are not just possible - they are expected  8) , so please report them :boogie: .
Oh. That's taken the whole week to code, and it's still prerelease.

LPChip

Quote from: "pelya"I've made some progress on this topic - Get the archive .
Put OpemMPT_VSTi.dll to your VST plugins dir, put OpenMPT_VSTi.exe to mptrack dir.
Run VSTi host (even OpenMPT itself will go :) ) and load .dll - it will show config dialog for the first time (you'll be amased how do I like to write config dialogs ;) ). After you finished with config (typically change path to .exe from archive), restart VST host. Then, when you load .dll, the mptrack window pops up (note "VSTi" in the title). Load some song in mptrack and then send MIDI keys to VSTi DLL:
C-4 to A-4 to start playing patterns 1-10 (in theory, right now it just starts playback from current pattern).
C-5 to A-5 to mute channel 1-10 (mptrack GUI won't show it, but it is muted, really ;) ).
B-5 to stop playback.
Hold A#4 when hitting some key to toggle On Transition mode - that's it, mute toggled and selected pattern played at the end of current pattern (that's the only way to go to some pattern for now).
Hold B-4 and type large number with several keypresses - the selected channel muted / pattern played when you release B-4 (doesn't work yet).
Yeah. Bugs are not just possible - they are expected  8) , so please report them :boogie: .
Oh. That's taken the whole week to code, and it's still prerelease.

Awesome! Now, I need to find myself a sequencer :P
"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

pelya

Version 0.2 of OpenMPT_VSTi is out. All bugs mentioned in previous post are fixed + another config option added to reduce latency ( delete your OpenMPT_VSTi.dll.cfg file and it will show new config dialog again :) ). To control playback with MIDI notes you should have Pattern tab open in VSTi.
This should be enough for e.x. syncing playback of MOD-file and recorded audio track or running two OpenMPTs in sync. When used as VSTi OpenMPT retains all editing features and massive GUI, so it is recommended to disable Follow Song and minimize OpenMPT window. Also Modified flag is cleared with every MIDI note, so it won't ask you to save MOD-file when exits.
Edit: SVN patch for revision 191 - doesn't include any MinGW-specific code, just VSTi implementation.

levon zoltar

ok , first of all this program may be the solution to my problem, BIG UP!! for that,
but i doesnt seem to work properly , can you give detailed instructions please.  i downloaded open mpt vsti 0.2 and put exe file in mpt folder , and dll to my vst folder.. when i open omptvsti in acid pro 6.0 , it opens properly as a vsti .. the sound from mpt goes to acid and, midi messages should also go to mpt .. but theres no sync at all

levon zoltar

it says something... "cannot connect pipe ....."

pelya

Shut down both acid and modplug, then start acid, load VST - modplug should be started automatically from acid, if you'll just launch that .exe it won't work (Cannot connect pipe message may be because of that, or because you moved modplug_vsti.exe to different place - edit your .cfg file then).
And send MIDI notes from acid to start/stop playback in modplug, if you'll hit Play/Stop inside modplug window it will be desynced. Note that start/stop playback in modplug is timely operation and may cause that desync, I suggest starting playback and then jumping to the pattern start with C-4 - A-4.
Oh, and also you may ask Relabs to include that little haxx of mine into SVN :P so it will include latest bugfixes made by him.

LPChip

By going through all the requests, I see that this one is still open. Should we keep it open since there is a VSTi version of modplug now?
"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

Rakib

Keep it open, since it it's not beeing updated with newest versions.
^^

levon zoltar

yea.. keep it open , this vst thing is best direction to develop MPT ... DAW world is full of superslow-mousebased-pianoroll type of sequencers , theres nothing faster than MPT for sequencing ...  i would like to see some day perfect sync with ableton , and drag&drop waw. rendering ( like in maschine.vst)  
this is the way that development should go...  at least for me since i like to play instruments on top of my tracker tracks..  but i think this could be really nice thing for tracker purists also , imagine multiple trackers on ableton perfectyly in sync , live remixin/mixing of songs.. mad stacks of VST effect with abletons great implementation this could be really big thing for those who want to play live their MPT producted songs...

immortalx

This workaround is not stable enough to be usable, so yeah keep it open. A proper implementation of MPC as a VST is the best of both worlds (tracker+DAW). I've made the jump to Reaper just for recording guitar, but when you want to lay down say a drum track  the midi editor is a nightmare! I can do it in no time in MPC and I'm sure that many people dreamed of a DAW with a tracker sequencer
:wink:

Saga Musix

Quote from: "immortalx"I can do it in no time in MPC and I'm sure that many people dreamed of a DAW with a tracker sequencer
:wink:
Well, you dream already became true, just not with OpenMPT.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.