High resolution output

Started by Wurlit, November 04, 2014, 12:21:59

Previous topic - Next topic

Saga Musix

Simply put, it's not the job of a tracker to do that. The code for detecting sub tunes is there, but there's no real use for it in a tracker (it will at some point be used in libopenmpt though, so that all sub tunes can be played with our XMPlay plugin). Your use case of exporting all sub tunes is not a common one for the tracker software.

However: Looking at your example of K_vision.umx actually reveals that ModPlug Player does not do what you want, either. Simply put (after remembering what the original code looked like), the player ignores backwards jumps in the order list and continues playing the patterns that follow after the last pattern of the first tune. This is incredibly stupid, for several reasons:
In your specific example (an Unreal song), the second subtunes starts at a different location. Unreal engine games usually put the start of each subsong at the beginning of the order list, and the rest of the songs follows later. To visually demonstrate this, the order list usually looks like this (numbers indicate which subsong a pattern belongs to):
[1] [2] [3] [4] [1] [1] [1] [1] [1] [1].......... [1] [2] [2] [2] [2] [3] [3] [3] [3] [3] [4]
What does ModPlug player do? Well, it first plays all the patterns labelled [1], and then plays all the patterns following it. This means that it will cut off the first pattern of each sub songs, and more importantly, it continues playing the patterns after subsong 1 with the same global settings (most importantly the same tempo, which usually may differ between subsongs) as the first subsong. This is not what you want.
If you want all subsongs to be exported to WAV, XMPlay is currently your best friend, as it will split them correctly, unlike ModPlug Player.
» 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.

Wurlit

If ModPlug Player handles the patterns so frivolously, you mean for all these years i was listening to a monstrosity? Ouch! And i grew loving exactly that one-tempo-for-all MPP produced, especially near the end of this track.

As for XMPlay, that one recognises all subsongs but cuts the first seconds of the first section unless i manually divide it before the conversion. No big deal but still an issue. The deal breaker is (comparing to natively loading it in Foobar) the additionally cut of another six or so minutes from the end of the last subsong. Heck, so many options, all bear different results.

I understand i'm not a usual case, thus i doubly appreciate your answers. To make it short, i've killed MPP and since XMPlay doesn't offer any improvement over Foobar on my case, if i want to export stereo i'll go with Foobar, no problems here. But i'm sticking with MPT for now, for the various outputs it gives.

Saga Musix

QuoteIf ModPlug Player handles the patterns so frivolously, you mean for all these years i was listening to a monstrosity? Ouch!
Indeed! ;D But no worries, you are not the only person this world being betrayed  by their favourite mod player... I had no idea what the menu music from Extreme Pinball really was supposed to sound like until I played the actual game, and it was so different... ;D

The way I see it, XMPlay does exactly what it should do, i.e. it doesn't cut off anything that's supposed to be there. Whether you like the "correct" behaviour or not is a different story. ;) It jumps over the second pattern because that's where the second sub song starts, if that's what you mean.
» 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.

Wurlit

I mean, if i just load the track and export it cuts the first five seconds or so. If i right-click and divide the sections then export one-by-one, it includes these first seconds but in both cases there's a long part, which i can listen with Foobar but the XMPlay cuts, quite abruptly too. Foobar ends fine by itself but also loops smoothly with the beginning if played on repeat. Well, maybe XMPlay does what indeed the composer wanted (writing music for a game like this, with loops and so), but it doesn't work that well for listening. And where's that six minute part came from?! Ah, the mysteries of numbers...

Saga Musix

Uhm, XMPlay shouldn't be cutting off anything. However, if you start playback before you enable wav export, XMPlay will not re-start export from the beginning but rather from the part where you stopped playing. Maybe that's the issue you're having? And no, there is definitely no hidden six minutes part in K_vision.umx
» 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.

Wurlit

Good day! I surely gave XMPlay another try, you're right about the first part. I figure the behaviour of these programs is a bit finicky, but that's their charm you may say and i would agree up to a point. Unfortunately, i wish you were also true about the missing parts. Man, it's a massacre. Many tracks are affected and i'm not talking about repeating loops, there's another example of a 23s reverb-like tail in another track where XMPlay lowers the cleaver at 8s, something it's not supposed to do. Of all four programs, only Foobar plays it to the end where i can hear the fade-out go on until the volume reaches zero.

Time for another screenshot.


I've included both tracks, no MPT/MPP. I ahould also mention that the first is S3M while the second is IT. Maybe XMPlay excels in handling other formats, but for these two it malfunctions somehow. Myself, i see no other option than to forget about the instruments and proceed with stereo files. But i'm fine with what i have, it saves me so much time and space, and forces me to be even more creative when restoring the audio.

Just for the sake of conversation i'm willing to mess around more and, you know, i can always send you settings and files if you're curious and have some time to kill. It's about you now!

Saga Musix

Those extra 6 minutes come from the fact that the third subsong jumps into the first subsong, which both OpenMPT and XMPlay treat as "I've been here before, I can stop playing now", while Foobar apparently treats it as it has never played those patterns before. This third subsong is unused in the original game and is most likely a leftover that has been forgotten while cleaning up the module, hence it jumps back into the first subsong and plays it at half speed. This is one more reason for preferring XMPlay's behaviour over Foobar's.
In the case of EndEx, that shorter subsong jumps into a non-existing pattern and just keeps playing the samples that were triggered before. Again, this tune looks like it's a leftover and is not actually played in the game, hence there is no real definition of what is right and what is wrong. Just because Foobar plays more patterns, that doesn't automatically mean that it's correct. ;)
» 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.

Wurlit

#22
Nah, i've stopped thinking about correct versions a few posts ago. Nothing is correct and everything is, that much is clear. About those six minutes now, that was my first impression, too. But the first few seconds do exist in the game (they're used for the change), and then it doesn't just jump there, it feels rather an intentional command (?), having slower tempo et al. The same happens with the EverSmoke track. Another one and a half minute extra. Sure, they're both 95% leftovers, but the software catches them. There's a lot of music in general that didn't make it to the final product, be it a game, movie or whatever, it's a nice thing to be able to enjoy previously unheard material. Something i'd miss, if i was solely relying on XMPlay.

My point is that, besides hiding tunes, if XMPlay was treating these tracks normally, they wouldn't end so spasmodic comparing to other software. If they were supposed to end like XMPlay renders the sound, shouldn't the tracks be presented in-game the same way? And if it only sees what you hear when playing, why even grab the beginning of these unused audio in the first place? I agree, neither software is "correct", but one reveals more and has a smoother playback than the other. If it wasn't for the EndEx fade-out i wouldn't be that much suspicious, really.

EDIT: Listening EverSmoke more carefully, there's a repeat on the half third section of the Foobar version, but still the other half is unique. This and a double export of a third section of another track (two tracks, same exact music) are the flaws i've found in Foobar.

Saga Musix

Quote from: Wurlit on November 09, 2014, 17:32:38
Nah, i've stopped thinking about correct versions a few posts ago. Nothing is correct and everything is, that much is clear. About those six minutes now, that was my first impression, too. But the first few seconds do exist in the game (they're used for the change), and then it doesn't just jump there, it feels rather an intentional command (?), having slower tempo et al. The same happens with the EverSmoke track. Another one and a half minute extra. Sure, they're both 95% leftovers, but the software catches them. There's a lot of music in general that didn't make it to the final product, be it a game, movie or whatever, it's a nice thing to be able to enjoy previously unheard material. Something i'd miss, if i was solely relying on XMPlay.
Yes, there might be some music that didn't make it into the final product, but the stuff that XMPlay cuts off doesn't really belong into that category. To give a nice analogy, what you are getting here is something like "Look, here are the first 10 seconds of Thriller, followed by Billie Jean at half speed. it's an entirely new song that noone ever heard before!" - well, uhm, I would hardly say that's a new song. You are still enjoying Billie Jean there, but at half speed. ;) Are you really saying now that you are missing something if you didn't listen to it? Using that argumentation, you could say that you always miss something when you don't make use of a bug or undefined behaviour.

Quote from: Wurlit on November 09, 2014, 17:32:38My point is that, besides hiding tunes, if XMPlay was treating these tracks normally, they wouldn't end so spasmodic comparing to other software.
You should probably turn on fade-out in XMPlay so that they don't end so "spasmodic", then also looping songs have a nice ending. In-game, the songs were obviously looping, but at one point you may want to listen to something different in your music player, so fading out after a repetition or two is the way to go here.

Quote from: Wurlit on November 09, 2014, 17:32:38EDIT: Listening EverSmoke more carefully, there's a repeat on the half third section of the Foobar version, but still the other half is unique. This and a double export of a third section of another track (two tracks, same exact music) are the flaws i've found in Foobar.
EverSmoke also has no unique material that is missing in XMPlay - the part that you may identify as being cut off is the main body of the second subsong, but played slightly faster. These things should be easy to understand and visualize if you look at OpenMPT's order list - Grabbing a recent test build will also help there since they will tell you where the hidden subsongs start if you go to Player -> Estimate Song Length. Then you can closely follow which subsongs starts at which position and where they overlap.
You may even turn off looping in the General tab to better understand where the overlapping beings, as OpenMPT will then stop at the same places as XMPlay does.
» 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.

Wurlit

This is what happens through my scope when trying to relate mood with numbers. Maybe it's not the place to speak metaphorically but, hey, i'm pretty sure you have your way to do the translation programming-wise.

Foobar is like a plastic surgeon. It gives something musical to the output, somehow builds a seamless skin around the skeleton. Those ~10 track tunes in question have a continuity, they blend together. Voila, instant soundtrack. Does what i'd do manually myself. Almost what ModPlug Player does but retaining the integrity of given patterns to the likes of OpenMPT and XMPlay. It just helps. Setting the additional material and the ending treatment aside, both Foobar and XMPlay behave exactly the same. No misinterpreted tempo or anything. That is exactly what i was looking for. I mean, after you broke my harmonic relation with MPP! XMPlay treats the numbers like a... robot (ain't them all?), where i suppose for that purpose does indeed what it should.

Quote from: Saga Musix on November 10, 2014, 00:12:37
Are you really saying now that you are missing something if you didn't listen to it? Using that argumentation, you could say that you always miss something when you don't make use of a bug or undefined behaviour.
No, these things don't correlate like that, and this is our argument. As a listener, i'm not missing a bug when i hear a proper fade-out, for example. I did mess with the fading option in XMPlay but what it does is add a loop and fade with it, and still cuts before zero volume - that sounds like a bug to my ears. The additional stuff i hear from Foobar make sense to me, regardless of what both players do to the audio, that's my point.

As for OpenMPT, it served my needs well in exporting and importing back the denoised files, adjusting the loop markers and correcting the clicks, with only a few workarounds. It's too much for me to go through testing every song again. It was a nightmare having to deal with 669 samples individually in the first place. As a side note, i've found ModPlug Player treats four tails better than Foobar, even for just half a second duration. I'll use them. And i'll include as a bonus tracks the three slower tempo "abominations" it renders, as an honoris causa to the deceased.

Composing computer music that period must've been a pain. Though better than composing tunes for the Amstrad CPC-464 back in the day. When i have the time, that would be my next project.