Stereo separation and different module formats

Started by cspiegel, August 18, 2023, 05:16:06

Previous topic - Next topic

cspiegel

I'm starting with an assumption that may be wrong, and please correct me if so: some module formats (e.g. 4-channel Protracker) have complete L-R stereo separation, where two channels are played in the left speaker, and two in the right. Other module formats (e.g. FastTracker) support more nuanced panning, allowing the author to place sounds more arbitrarily.

I'm using libopenmpt in a few projects, and I find lowering the stereo separation setting for the L-R separated MODs to be indispensable, especially when headphones are in use.

However, for the formats which support proper panning, I'd prefer to have a stereo separation of 200%, or at least significantly higher than L-R separated MODs.

Is there a way to achieve this?  I can think of a very hacky method of checking the MOD format, and if it's "mod" use something like 100% stereo separation (are there other formats that are L-R?), and if it's anything else, use 200%; but this feels less than ideal.

Saga Musix

Quote from: cspiegel on August 18, 2023, 05:16:06I'm starting with an assumption that may be wrong, and please correct me if so: some module formats (e.g. 4-channel Protracker) have complete L-R stereo separation, where two channels are played in the left speaker, and two in the right. Other module formats (e.g. FastTracker) support more nuanced panning, allowing the author to place sounds more arbitrarily.
That's not how most PC trackers including OpenMPT and by extension libopenmpt implement it. Channels are not hard-panned but instead 50% left / 50% right, which is somewhat pleasant even with headphones. This default cannot change easily because it is possible to change the panning of individual channels by using command 8xx or E8x. This is an extension introduced by PC trackers, but apart from that it's still the same MOD format as on the Amiga. As it's possible that not all channels contain panning commands, it's also not so simple to change this default.

There's a request to be able to force Amiga MODs (which would exclude those containing 8xx or E8x panning commands) to either 100% stereo separation or 0% stereo separation independently of PC formats here: https://bugs.openmpt.org/view.php?id=316
» 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.

cspiegel

Quote from: Saga Musix on August 19, 2023, 21:02:45That's not how most PC trackers including OpenMPT and by extension libopenmpt implement it. Channels are not hard-panned but instead 50% left / 50% right, which is somewhat pleasant even with headphones.
Is this the default setting of 100 for OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT?  If so, then I'm guessing that setting this to 200 will give the "old" behavior of Amiga trackers of complete separation?

Quote from: Saga Musix on August 19, 2023, 21:02:45This default cannot change easily because it is possible to change the panning of individual channels by using command 8xx or E8x. This is an extension introduced by PC trackers, but apart from that it's still the same MOD format as on the Amiga. As it's possible that not all channels contain panning commands, it's also not so simple to change this default.
OK, that makes sense, and I can see the difficulty in dealing with this. I suppose 8xx/E8x were introduced to get around the limitations, so to speak, of the hard L-R separation.  But that means that authors who were aware of 8xx and E8x probably wrote MODs that should have stereo separation honored, given that they could pan to make things sound how they want, vs authors of earlier formats, who had no choice in the matter.

With more modern formats such as FastTracker 2, which (I think?) had panning built in from the start, is it correct to assume that a stereo separation of 200 has the same sound as the original tracker?  And since authors had access to panning, a separation of 200 is how they probably "meant" for it to sound?

Ultimately I want all files to sound as they were intended by the author with the caveat that the earlier L-R separated MODs should have reduced separation, because authors had no choice, and I like the sound better; it's more about which effects are available: since the .mod format can have 8xx or E8x, you can't simply assume that they need a different separation than, say, FastTracker 2.  So, after all that, the default setting of 100 which makes early MODs sound good, but doesn't overly restrict properly panned modules, is probably just fine to use in general.

Thanks a lot for the info, I appreciate it!

Saga Musix

Quote from: cspiegel on August 22, 2023, 19:02:37Is this the default setting of 100 for OPENMPT_MODULE_RENDER_STEREOSEPARATION_PERCENT?  If so, then I'm guessing that setting this to 200 will give the "old" behavior of Amiga trackers of complete separation?
Setting it to 200% may work as a temporary workaround for MODs where you are sure that they contain no panning commands, but in general I would advise against doing so. The stereo separation is done on the final audio signal by means of mid/side processing, not by changing the panning of individual channel, so channels whose panning is modified to not be 50% left / right will not just be pushed further to the left / right, but they start blending into the other speaker signal.

Quote from: cspiegel on August 22, 2023, 19:02:37With more modern formats such as FastTracker 2, which (I think?) had panning built in from the start, is it correct to assume that a stereo separation of 200 has the same sound as the original tracker?  And since authors had access to panning, a separation of 200 is how they probably "meant" for it to sound?
No, 100% pan separation is always the correct setting for trackers / formats with panning support, including FastTracker 2.
As mentioned in the linked issue, eventually there should be a setting for formats or individual files without well-defined panning to configure them with either hard-panning or playing them as mono, but that would not affect XMs or other files with well-defined panning semantics.
» 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.

cspiegel

OK, so if I understand it all, for any module files/types which contain panning commands, 100% is the right setting, and will provide the most "authentic" sound.

For older MODs without panning commands, 200% will provide the most "authentic" sound, but that means L-R separation that sounds especially jarring in headphones, and the default 100% setting will give a good balance between mono and complete separation.

In short, 100% is the "ideal" setting for all module types if you don't want the hard separation in the non-panning MOD files; and the bug report you mentioned would allow for that hard separation in them, while still allowing for the correct (100% setting) stereo separation on all other module types.

Saga Musix

Yep, I think that is a pretty good summary of the behaviour.
» 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.