ModPlug Central

OpenMPT Development (Archive) => Bug Reports => Bug Report Archive => Topic started by: Skaven on June 09, 2010, 18:00:54

Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 09, 2010, 18:00:54
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.
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Saga Musix on June 09, 2010, 18:21:00
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.
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 09, 2010, 18:29:32
I'm not sure, because I only really started using OpenMPT instead of the old ModPlug Tracker when the multiple sequences feature was introduced.
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Saga Musix on June 11, 2010, 16:44:20
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)...
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: LPChip on June 11, 2010, 21:22:20
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)
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 11, 2010, 21:26:49
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.
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Saga Musix on June 11, 2010, 21:30:54
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 (http://sagagames.de/stuff/mptrack.exe) 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.
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 12, 2010, 10:02:10
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?
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Saga Musix on June 12, 2010, 10:34:16
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).
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 12, 2010, 11:00:16
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! ^_^
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Saga Musix on June 12, 2010, 11:04:08
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. :)
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: LPChip on June 12, 2010, 18:23:57
I guess this can be closed then?
Title: 1.18.02.00 DirectX DSP send mappings lost (mptm->it
Post by: Skaven on June 12, 2010, 18:39:38
Yep!  :)