Skip to content

FTM (Famitracker) to GSN (SNESGSS)

Technical discussion which is not directly related to VGM files. Talk about Hardware and Software.

Moderator: Staff

  • gotanda Offline
  • Posts: 13
  • Joined: 2016-03-26, 17:18:14

FTM (Famitracker) to GSN (SNESGSS)

Post by gotanda »

I made a converter from Famitracker text exports to GSM (SNESGSS sound modules) a while ago to help me with transcribing to the SNES and I figured that I'd share it here in case anyone else on the internet would find and benefit from it (which is kind of unlikely).

The compiled program is at https://www.dropbox.com/s/fhfqvyd9grcda ... N.exe?dl=0 and the source code is at https://www.dropbox.com/s/3hzh0g65hyhu7 ... N.zip?dl=0

Some notes:

-Only notes and volume envelopes get imported across (which I think is fine for most people) instead of sample/fx number.

-The only channels that get imported across are the first expansion channel (the program won't work unless there's one expansion channel, but that channel can be blank), the first two pulse channels and the noise (since that's all I needed), but you can add/remove channels by editing the source code. You also need to have 2 fx spots open for the first pulse channel to get the program to work.

-The output file is called converted.gsm and is put into the same directory as the program (no save dialogue).

-Some parts of the output will need to be manually cleaned up (for example, if there's any syncopation via volume envelopes, then those won't work since PCM doesn't work that way and the 0 volume command is translated to note off in the program.

-The closest tempo in SNESGSS to Famitracker's standard 150 is 03, but these aren't exactly the same, so you'll need to do some editing for this. I don't think the difference is too noticeable, though.

-SNESGSS does have a built-in Famitracker text import feature, but it doesn't allow for any expansion channels and sometimes imports things strangely (like not getting the entire song). I think SNESGSS's text import might be more versatile for the standard available sound channels, but haven't tested it, and I think this would still be useful since you could adapt it to your needs.

I might update it later for more standard use (instead of being specialised for me), but manipulating strings isn't really very fun as far as programming projects go, so I'd recommend editing the source code first.