Impulse Tracker to SPC clicks issues

Started by RG (aka AUDIOMONSTER), May 27, 2025, 11:28:46

Previous topic - Next topic

RG (aka AUDIOMONSTER)

Hi there,

I don't know if this question has already been asked here, sorry if it has, but here it is :

I'm trying to use SNESCONV (from SNESMOD) to convert Impulse Tracker music to SPC format (Super Famicom).

I use, of course, OpenMPT IT format modules, with 16 bytes multiple looped mono samples and respect for SNES RAM limitations (as I did more than 30 years ago on videogame soundtracks such as Mr Nutz or Shaq-Fu) and everything works perfectly, including echo feedback etc...

Except for one really annoying point : once converted to .SPC file, I get audio clicks during play (on any SPC player) on some samples attack when they are retrigged...
(not always, not on all notes/instruments (so I can't figure out the issue))

Would there be anyone who would have used SNESMOD/SNESCONV and encountered (or not) those clicks problems ?

Anything to do with volume ramping or something ?

Thanks by advance for any answer ;-)

Saga Musix

If you could provide a simple test module and the resulting SPC, that would make analyzing the situation probably a bit easier. :)

But as you say, most likely the lack of volume ramping on the SNES will be the culprit. If you want to get a more realistic impression of how the final result will sound like, you can set the volume ramping up and down values to 0 in OpenMPT's mixer settings. OpenMPT may still apply volume ramping in certain situations even with this setting, but it will be closer to the final hardware output.
» 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.

RG (aka AUDIOMONSTER)

Indeed, probably a volume ramping issue, but there should be a solution, as direct hardware composed SNES musics obviously don't show any audio click during play.

The problem probably comes from SNESCONV, which doesn't make accurate volumes values interpretations during conversion from IT to SPC...

Maybe it exists some better working alternative to SNES conv, somewhere...

Thanks for the answer ;-)

RG (aka AUDIOMONSTER)

I'll put a link to some little example, here, in a few days.

IcarusDream

#4
Pardon me, for sabotaging the thread, but I sincerely believe that SNESMod isn't a very good method of making SNES music, especially nowadays when more and better alternatives exist. :-\
When I got into Openmpt around early 2024, my first musical experiments were made with various SNES soundfonts. Consequentially I wanted to convert them using SNESmod. There were always unexpected problems with it.
Either there was noticeable clipping, or the volume got interpreted in the wrong way. In attempts to "make it work" I've made changes that ranged from volume modification, section rewrites, sample alterations and much, much more.
I think that the borderline problem with SNESMod is that it's a total blackbox when it comes to conversion.
You can never know how it will handle your music, especially if one isn't already familiar with how music usually supposed to work on the SNES.
You can still technically attempt and use it for this purpose, by converting each and every revision, each separate channel, so you can identify problems before the project gets too chunky, but IMO, such a process is somewhat frustrating and not very efficient.

On another note, here's a Pirates of the Caribbean DKC mashup I did using SNESmod very early in 2024 which I never posted, because I considered it to be somewhat bad :'( .
I don't think that there will be a better pretext for posting it, so here it goes O:-) : MEGA

Edit: I actually got curious. What methods/software did you use back in the 90s to convert IT format modules to be played on the SNES?

RG (aka AUDIOMONSTER)

#5
During the early 90's, no internet, no easy tools, no help from Nintendo, so we had to use a home made Protracker conversion tool which was not the best (lacking effects, no echo etc) but kind of worked.

About SNESMOD (SNESCONV), I think it works perfectly with all effects, including for echo/filter settings, but the "only" issue is those volume ramping glitches.

IcarusDream

#6
Thank you for the input!
I've kind of made an over-exaggerated rant over SNESMod :-X . I know that calling it a "black box" isn't true, given that its features and limitations are fairly documented. I had some other annoying issues with it, which I haven't seen mentioned by other people online. Very early on I've made a musical loop using the Mario All Stars soundfont. I didn't do anything that would've been impossible on real hardware, but some of the samples just didn't work properly, making a buzzing noise.
I tried to change the pitch, but that was not it. The solution I found for this is to resample the problematic samples, however I'm clueless to why had this happened to begin with.

This thread motivated me to look into some other methods of making SPC's while composing on Trackers, so I will share my finds:
There is a VST called c700 which meant to emulate the SNES hardware. I imported the samples into it and mapped to the same instruments. There is an option to get an SPC file through this VST (with a separate plugin called playercode.bin), but it works in an odd way. When I set the number of loops to zero, the converted SPC can just bugged out less than a halfway through. You can also set a specific loop position (in the middle of the song) via ppq, but I haven't figured if there is any way to do so seamless loops with that option.
If the song is meant to be looping right from its beginning, there shouldn't be any serious problems with the loop I believe.
I've put that old POC cover I've made through that method, and the clicking was gone. Again, this is like the third thing I've made using Openmpt, so I knew very little, and it's not very good :-[ . While I made some adjustments, It wasn't a serious attempt to fix this cover and its problems, but more of a test: MEGA
Also, one important thing to mention, is if you want to get the SPC files, you have to play through the entire song. The file will be generated in the selected folder.

There's a third method which takes converting the samples into BRR via the c700 VST, then exporting the .it module as midi, then converting it to MML, then adjusting the MML file and converting it to SPC via AddmusicK. Kind of a messy and gimmicky process, but this is an option nonetheless. It also implies that one has to know MML as-well.

I also want to point out that Furnace Tracker has a pretty decent emulation of the SPC700. While as of writing of this post there isn't an option for SPC exports, the dev said it was planned as a feature for the 0.7 release: https://github.com/tildearrow/furnace/issues/700. If they'll implement it properly then it will likely be the easiest and the most efficient way of making SPCs. Another important point is that Furnace can import patterns from OpenMPT (via copy-paste), so you won't have to rewrite your music again.

IcarusDream

I didn't expect to write a follow up the day after, but with the recent release of OpenMPT 1.32 you can now set the ppq in the c700 VST properly. Example (same old track but with midsong loop):MEGA

RG (aka AUDIOMONSTER)

I forgot, of course, to mention that I take care of setting sample loops to 16 multiples, otherwise you get bad clicking loops.

Interesting point, about Furnace, I'll check it out, thanks for the information ;-)

About C700, yes I know it, but I'm not a big fan of the interface, and above all, I kind of like to stay on OpenMPT for several multiple reasons (for instance, I compose music for films and games on OpenMPT, and sometimes need to convert my music on multi supports)

But above all, I just love working on OpenMPT more than any other DAW ;-)

slipofpaper

You can reduce some clicking by adding fade-in to the samples (if not already present). You can also use a D0F effect in the module itself for fade-out, or B9 in the volume column (dunno how well SNESMOD will work with it though).

IcarusDream

Quote from: RG (aka AUDIOMONSTER) on June 01, 2025, 07:30:43bout C700, yes I know it, but I'm not a big fan of the interface, and above all, I kind of like to stay on OpenMPT for several multiple reasons (for instance, I compose music for films and games on OpenMPT, and sometimes need to convert my music on multi supports)
I also prefer Trackers and the workflow of OpenMPT in particular to traditional DAWs. OpenMPT is a powerful host for VST plugins as-well.
VST's usually have gimmicky interfaces, though generally, using them through OpenMPT isn't much different than using sample based instruments or OPL.
One thing to keep in mind is that VST's by in-large depend on MIDI commands, rather than Tracker ones, though certain tracker effects will still work with them as intended.

Quote from: slipofpaper on June 01, 2025, 08:19:39You can reduce some clicking by adding fade-in to the samples (if not already present). You can also use a D0F effect in the module itself for fade-out, or B9 in the volume column (dunno how well SNESMOD will work with it though).
My track already relied on module effects for fade-out. I also modified some of the samples, and while it reduced the clicking, much of it was still there.