1.18.02.00 DirectX DSP send mappings lost (mptm->it

Started by Skaven, June 09, 2010, 18:00:54

Previous topic - Next topic

Skaven

Full Version:
OpenMPT v1.18.02.00

Introduction:

I have a .mptm project which uses the DirectX DSP effects (currently only Echo). A number of instruments have been mapped to Send to the Echo effect. The song is going to be used in a game, so it is going to be played via BASS.DLL in .it (or rather .mo3) format.


Description of the bug:

When I convert  the song to an .it file and save it, then play it in XMPlay, the Echo effects no longer work.

If the .it file is opened in the old ModPlug Tracker (1.16.0206), it turns out that the Echo effect is there, but all the instruments send to Default, not to the channel the Echo is in.

However, when opening the .it file in OpenMPT (1.17 and up), the FX Send mappings appear correct.


How to reproduce (step by step description):

1) Find a .mptm song that uses DirectX effects via instrument Sends
2) Convert the file to an .it and save it
3) Play the .it file in XMPlay, or open it in ModPlug Tracker (1.16.0206). Observe the instument FX Sends all pointing to Default (aka Master).
4) Open the .it file in OpenMPT 1.17 or newer. Observe the instrument FX sends being correct.

Saga Musix

Do you know if this worked in previous versions (i.e. 1.17)? I think the routing information data format was changed at some point, but I don't know exactly.
» 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.

Skaven

I'm not sure, because I only really started using OpenMPT instead of the old ModPlug Tracker when the multiple sequences feature was introduced.

Saga Musix

Right, I think I can provide a fix soon that will write the assigned plugin number if there is no midi channel assigned to an IT instrument (both numbers shared the same data field in MPT 1.16)...
» 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.

LPChip

I actually am not sure if Bass or XMPlay support the echo. I know it supports other effects.

If you manually assign the echo to a channel, does that work? (just to test things here, not necessarily as a workaround)
"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

Skaven

At least it's worked before. I've made several tunes with Echo on a channel (like FX6), then have some instruments Send to it. The dry/wet mix ends up the same to all the instruments, but it works.

If you need an example, download the Bejeweled 2 or Hamster Ball .mo3 tunes from my homepage:
http://www.futurecrew.com/skaven/music_tracker.html

... and play them on XMPlay. The echo works, and other DSP (like Flange and Distortion) is used too.

Saga Musix

Quote from: "LPChip"I actually am not sure if Bass or XMPlay support the echo. I know it supports other effects.
Yes it does. XMPlay supports all MPT 1.16 extensions, apart from VST plugins for obvious reasons.
BTW, the current "stuff" build should fix the issue. I guess the fix will be available in OpenMPT 1.18.03.00 or whatever the next version is going to be called.
» 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.

Skaven

Wow, that was fast. Thanks!  ^_^   I couldn't download the .exe though, "could not locate remote server".  :?

So how does it work now? Does it convert from .mptm to .it in "the old way" or something else?

Saga Musix

Whoops, link fixed.
Actually, the problem lies not in the MPTM format, but in OpenMPT's IT saver.
Long story short:
- In MPT 1.16, midi channel and "FX Send" were stored in the same variable (you might remember that they shared the same dropdown combo).
- In order to be able to send note data to any midi channel of a VST instrument, the two options were splitted up in OpenMPT 1.17, so the "midi channel" field in the IT instrument header only contained the midi channel now, and the FX Send number was stored in an OpenMPT extension.
- I have now partly reverted this behaviour, so that the FX Send value is stored in the "midi channel" field again, but only if no midi channel is set for the given instrument (to keep the semantics intact).
» 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.

Skaven

Yeah, that should work for most people. Those who use OpenMPT for MIDI probably don't miss the DirectX DSP mappings. :)

Just tested it, the Echo seems to be working in XMPlay/BASS.DLL now. Thanks! ^_^

Saga Musix

Well, there's no problem for anyone here, as this hack is both forwards and backwards compatible. The new behaviour is still used, and the fallback to the MPT 1.16 hack is only used when necessary and possible. :)
» 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.

LPChip

"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

Skaven