Resampling/Repitch ancient DOS and Amiga samples for Polyend Tracker

Hey Elektron friends,
Anyone got a utility or process they could recommend to easily resample the very old and very lo-fi DOS era samples I’ve got saved in many of my old modules? And preserve the pitch?

I want to import some old modules into the Polyend Tracker but it has such stringent sample requirements, nothing old works and my former software trackers took just about every format under the sun.

I’m trying to avoid having to completely redo old modules so they’ll work in the Polyend (at that point it’s no longer worth doing)… and I know I’ll figure this out on my own with some more time… just hoping someone sees this and has an answer off the top of their head :slight_smile:

I’d just as well love to use my decrepit 90’s stuff with the OT and Rytm as well so that is my tie in to the Elektron world (my main rig is the classic dark trinity) - thanks in advance for any optimal suggestions!

Oh, my gosh. I have no experience with this, but this sounds like an awesome idea. Happy to watch this thread and mooch (or buy) samples from you when you’re successful!

1 Like

Should be entirely possible to just import your old projects into the tracker without resampling the audio… or at least it seems that way, I haven’t done this yet.

From the manual…

Polyend Tracker is able to import/export classic tracker project files with their basic properties (samples/instruments, notes/patterns, song structure and volume info).

Open .mod/.it (many other classic tracker project file formats like .xm/.s3m can be opened in the Schism Trackeror Milky Tracker and then converted and saved as .it and so imported to Polyend Tracker).

Export .it files that are compatible with the Renoise, Schism Tracker or Milky Tracker.

Important:

  • Files which you want to import to the Polyend Tracker needs to be placed in the MOD folder on the SD card so they can be accessed. Subfolders won’t be displayed by the browser.
  • When exporting your project to .it file the used LFOs settings are transformed into envelopes.

In the latest beta firmware which you can find on Github, they made it so the Tracker auto converts files so it might be fine to just load them up.

1 Like

Currently, I’ve figured out a method that isn’t too painful, which I will share shortly… first to address other comments…

I can say I’ve tried importing several .it files as-is and the results were totally fubar. When samples did play, they were usually so far out of tune I couldn’t fix it, sample loop points were sometimes off, even the tempo was incorrect in one case, plus some other random stuff I’d have to go back and look at to confirm (instrument numbers changed, volumes out of whack, strange playback of FX commands).

To be fair I did not check playback compatibility with Renoise, Schism or Milky Tracker - I prefer OpenMPT which today I use on a Mac via Wine, just because it’s a heavy hitter and it’s been my software tracker of choice for over 20 years (oh man… I just realized that, wow). Some of what I tried to import was created on Impulse Tracker itself though (the originator of the .it format), don’t know how much closer to spec you could get there. And I have in the past opened many of these modules in Renoise… never had an issue.

I also knew right off the bat many of the samples were going to be 8-bit - raw & headerless PCM, Amiga IFF, SND, other stuff might be 16-bit but it could be whatever from Soundfont, Gravis Ultrasound patch format, Mac AIFF and others… you could actually make an instrument out of literally any file (even non audio like text files) by forcing specifications for raw PCM import and just loading it… like I said, my software trackers did not discriminate :slight_smile: To make matters more complicated, on most trackers (including the Polyend) you can globally transpose the baseline (like middle-C) frequency of the samples.

So, arcane formats + poor/irregular sampling rate + transpositions that may go outside the range of the Polyend = no wonder it doesn’t import correctly.

I’m not trying to trash the Tracker - I still love it (you can read what I said about it here, I’m mos6502 on Muffwiggler) - I’d just assumed I was not observing the requirements in the manual (precisely what was shared in TheGhostCat’s post and the stuff I mentioned) strictly enough, and after all it was meant to be limited in an impulsive, creative way. Importing old, channel-heavy modules that tend to abusively utilize original features into this deliberately 8-channel hardware tracking instrument wasn’t something I had big expectations around. Just a bonus I wanted to figure out (and something Polyend could improve with future firmware updates if they chose).

If somebody can point me to a place to download a beta firmware, please share, all I found on Github was a bug report template.

1 Like

To do this easily, and there may be easier ways than my way - it does only take a couple of minutes tops for all the samples in one song:

Download the latest version of OpenMPT (free, and at the time of this post the latest release was Aug. 20 this year):
https://openmpt.org/download

Open ancient/noncompliant module.

Go to the Sample tab, and for each one select Resample in the Edit toolbar:
https://wiki.openmpt.org/Manual:_Samples#Edit_Toolbar

The Resample dialog box appears:
https://wiki.openmpt.org/Manual:_Resample

Enter 44100hz (if you’re trying to make stuff Polyend friendly!). Choose a resampling filter and click OK - bearing in mind, the filter algorithm has a considerable effect on the “quality” of the result - with quality being subjective if we’re talking about oldschool samples. The default “r8brain” setting is pretty good for clean-sounding material but if you want an especially gritty DOS/Amiga 8-bit digital feel… try linear, cubic or none at all.*

One you have done this for all samples (thankfully it retains the 44100 setting you typed in the first time), click the dropdown next to the floppy disk icon (still within in the Sample page) and select Save All.

Now that you have all of your samples exported somewhere and at 44.1kz, time to up them all to 16 bit. Lots of free tools will do this. I chose Freac (supported on Windows/Mac/Linux), here:
https://www.freac.org/

In Freac… among the bottom options, change Selected Encoder to “Windows Wave File Output” and press the gear icon next to it to configure - set it to “signed 16-bit PCM”. Drop in your exported samples, and click the play icon at the top to convert.

If you don’t like the file naming, in the Configure menu at the top of Freac - under Encoders - change the stuff under Output Filenames.

Boom, all that hideous mess is now ready to rock in Polyend Tracker, Octatrack or whatever. And after resampling everything to 44100 in OpenMPT, modules seem to import better even if they remain 8-bit. I still had to change the sample tuning to zero on many samples in Polyend Tracker but no big deal, I have yet to try reimporting the 16-bit versions back into the module, might fix it since it’s the manual’s requirement. Tempo and sample volumes were still all over the place but again no problem; the way the Polyend handles gain seems very different from software trackers I use so I adjusted for that plus their nice FX sends.

It probably takes longer to read my walkthrough than actually do this conversion :wink: Worth the details if it helps others.

*For more on resampling filters, read this from the FAQ:
" OpenMPT must resample all samples to a common mix sample rate (which is typically 44.1 or 48 kHz). This resampling step can be done using filters (interpolation) of varying quality. A perfect filter would not add any frequencies to the output signal that were not in the input signal. But such a perfect filter does not exist, and OpenMPT instead offers several filters of varying quality and speed (higher quality filters stress the CPU more than lower quality filters).

If modules were only using high-quality samples that already contain enough high-frequency content, i.e. samples that are being played close at the mix sample rate, you could always just use OpenMPT’s highest-quality resampling filter and everything would sound bright and nice. However, many modules rather use samples that use a much lower sample rate, which means that these samples theoretically do not contain any high-frequency material. But when using a low-quality resampling filter (e.g. linear resampling, as it was used in many trackers in the 1990s), the cheap algorithm cannot prevent ghost frequencies (so-called aliasing) from occurring, so these low-quality samples end up sounding much brighter than they should in theory — this is a wanted effect in many legacy modules. On the other hand, using a high-quality resampling filter will suppress these aliasing frequencies better and the module will in return sound muffled.

This is why older modules and chiptunes typically sound better with “worse” resampling filters, while a high-quality module with good samples will sound better with OpenMPT’s best resampling filters. For Amiga module formats, you may enable the Amiga Resampler for accurate reproduction of the Amiga’s sound characteristics."

2 Likes