High resolution output

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

Previous topic - Next topic

Wurlit

So, i've read an old topic here about the 24 and 16 bit debate but i'm still confused as to what happens if i want to use plug-ins inside OpenMPT, like equaliser etc which process the sound at higher depth. I have tracks with 16 bit samples with various sampling rates (somehow usampling the hz causes weird modulation so i decided to leave them at their original values). Will i gain the whatever "air" the plug-ins are adding if i mixdown the final stereo files to 24/96, or should i mixdown the channels to 24/96 without the plug-in effects and import them into a DAW and work there? I mean, if the engine of the tracker doesn't somehow convert the signal back to 16 bit internally before the export, there's no reason for the additional use of another program. But since this way i'll be converting the sampling rate too, wouldn't the extra step of using a DAW be a better approach in the end?

Saga Musix

OpenMPT's mixer always runs at 32 bit integer precision, no matter what the sample bit depth are (you have to add 12 bit of volume amplification on top of those 16 bit anyway, so that's 28 bit dynamic range for 16 bit samples). VST plugins always run at an internal resolution of 32 floating point bit as well (which is equivalent to 24 bit integer precision), so there's not thing to worry about.
» 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

That clarified things a... bit! But what about the rate? Most of the samples are around 8 to 20khz, so that's really low. And i can't upsample through the "samples" tab because it causes undesirable mangling on a few. It doesn't affect all of them and not the samples themselves, it rather gives a tremolo effect on playback, don't know why. So, assuming a couple of VSTs do oversampling, how does OpenMPT handles it, is it the same working with such a low rate and mixdown to 96khz? Or would be better to export and work on already 96khz upsampled files?

Saga Musix

You have to keep in mind that low-quality samples do not suddenly get pristine by merely upsampling them. Much of their charm comes from the fact that trackers in the past used very cheap resampling algorithms - such as no interpolation at all or simple linear interpolation. Even OpenMPT's best resampling algorithms - Polyphase and XMMS - are merely 8-tap filters, while modern resamplers (such as the one in r8brain or sampler VSTs) often use dozens, sometimes even hundreds of taps for "perfect" resampling.
But this kind of perfect resampling simply destroys the sound of the original samples which were meant to sound rough and edgy (mostly because bad resampling adds aliasing frequencies in the treble range of the spectrum, so the samples sound "fresher" than with perfect resampling, which would just result in no treble at all). I don't quite know what you are doing, but it sounds like you are doing some kind of remix project with oldskool modules, so I would recommend to stick with the original sample tracks and bouncing them to WAV in OpenMPT using its own resampling algorithms, and then do the postprocessing somewhere else, or even right in OpenMPT if you like.
» 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 agree. I do not expect the samples to sound better just by resampling, but i rely on equalisation and possibly some subtle reverb to do that, at least up to a degree. I want to prepare the ground and retain as much quality as i can from the enhancing. Having the sound rough and edgy is one thing and certainly has its place on the vintage side of things (which i also like) but the thing here is i had to deal with lots of broadband noise. Now i want to give some sparkle back to the mix and spruce it up a bit. I'm remastering an old game soundtrack and i want to remain faithful to the feeling and intentions of the composer so, yes, i work only with the provided samples. So you say it's best to work with the resampled versions instead of messing with the plug-ins before the upsampling. I guess i wanted to make it easier by having to use just the tracker as it is, without any bouncing out and in again. But anyway. Thanks, man.

Saga Musix

You should probably also play around with using different export sampling frequencies when bouncing out of OpenMPT, since you will probably get slightly different aliasing artefacts depending on whether you export at e.g. 48 KHz vs 96 KHz. Maybe it makes a difference that would be useful for your project. This kind of stuff is always subject to a lot of experimentation. :)
» 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

So there i thought everything was peachy... There's another issue with the bouncing. Some tracks have two or three sections and i can't find a way to make the tracker see them, it plays and exports only the first section from each track. The old ModPlug Player does the job fine though (!) but unfortunately doesn't export individual instruments or channels and only goes up to 48khz. Did i overlook something through the options?

Another thing i noticed is that with Foobar, it also plays fine plus it divides the sections on the playlist so you can see the parts. But one section plays different than how ModPlug Player does. They're like two versions which are triggered somehow depending on the way each decoder functions. Well, in any case the "correct" version is the MPP one, Foobar likes to play the tune that isn't used in-game. Welcome to the Twilight Zone...

Saga Musix

You can select parts of the order list contaning "hidden songs" and then right-click to export them as well.
» 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

Got it. I was using the per instrument export, which misses the "hidden" patterns. Exporting with the channel option works but the outcoming files don't have the same duration as the instrument option, so i have to align them afterwards. I wonder why doesn't work both ways. Oh well, you miss something, you gain something.

Saga Musix

#9
Huh? That should most definitely not happen. I'll look into it...

EDIT: Nope, can't spot a difference. Whether you use channel export, instrument export or none of the two should have no influence at all over the export length. Maybe you accidentally chose a different amount of order items?
» 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'm sorry, i don't understand what you mean by your question. I just open the file and go to export, then i bounce normally to stereo, or select either the channels or the instruments option. The channels one gives me some tracks with smaller duration than the rest, but only this includes the audio the first two choices miss. I could give you an example .s3m if you want, i've already tried it with a couple of files and had the same results. Pity, because the instruments output is ideal for mastering reasons.

Saga Musix

Quote from: Wurlit on November 07, 2014, 21:04:37
I'm sorry, i don't understand what you mean by your question.
Well, you said you wanted to export sub tunes, and for that you have to specify the orders that are covered by this subtune - so I simply assumed that you might have accidentally chosen a different amount of orders when exporting by instrument.
Anyway, all the per-channel and per-instrument export modes do is muting channels and instruments and doing the export several times. I cannot reproduce them changing the length of the exported files and I would be very surprised if they did that, because there's no code that could cause that.
So, please verify that the application you're trying to load the files into isn't trying to be smart and removes silence at the end of the imported files or whatever. Load the exported files right into OpenMPT's sample editor and look at the sample length there. OpenMPT will definitely not try to cut silence or anything, so you should be able to verify there if the files have the same length indeed. If they don't, please provide an example file and the exact steps you are doing to reproduce this.
» 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

#12
I've loaded the files in two players, an audio editor and the tracker, they all show the same results. Here are some screenshots from the players and the first two channels through OpenMPT.

Foobar normal output:


Pot Player normal output:


Foobar channel output:


Pot Player channel output:


Foobar instrument output:


Pot Player instrument output:


OpenMPT channel 1:


OpenMPT channel 2:


There's one minute difference between the normal/per instrument exports and the channels due to the missed parts, and a deviation of some seconds between the channels themselves.

Saga Musix

Ooops, hahaha, now I know what the problem is. In S3M files, muted channels are not evaluated at all, i.e. also global commands like pattern jumps will not be executed. Hence, per-channel export is a bad idea to use with S3M files the way it is currently being done (I think it's fixable but it may take a while). In the meantime, you may want to convert those S3M files to IT before exporting. The difference between the two formats should be negligible.
» 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

Funny how easy the workaround is sometimes. Now all exports have the same length, well, although i still have to go through every mix and look for hidden mixes. Where's the magic button to surface those submixes instead of auditioning every pattern? It just puzzles me why does the tracker pass by those sections whereas the old player plays and renders perfectly.