ggsound music fix

This is nothing more than the official ggsound conversion python script made into a windows executable.
You'll now have music and sfx function exactly within the parameters of ggsound and not the mysterious subset in nesmaker.
noise arps are no longer inverted, etc.


1.) just drag and drop your famitracker exported txt files onto this and it'll cough up an appropriate .asm file
into the same directory your text file resides in.

2.) right click on the sound tab and select 'Load Converted Famitracker .asm' and select your newly created .asm file.

3.) It'll throw up an error, IGNORE IT and select continue.

4.) song labels function exactly the same in your screen settings, and SFX labels are still respected.
it just doesn't seem to like to preview in the program.

5.) enjoy as it compiles just fine.
 

Attachments

  • ft_txt_to_asm.rar
    5 MB · Views: 278
  • error.png
    error.png
    175 KB · Views: 4,780
  • exe.png
    exe.png
    25.4 KB · Views: 4,780
  • import.png
    import.png
    139.3 KB · Views: 4,776
  • labels.png
    labels.png
    160.4 KB · Views: 4,778

CutterCross

Active member
Honestly, I never even noticed there were problems with noise arps, since I almost NEVER use them. But that's fantastic man!

Maybe also provide a .zip file for those who can't open .rar files out of the box?
 
Ah, you're right! zip below.

i also just noticed i can't attach an mp3 of how noise gets effected.
it basically swaps high and low pitches.
 

Attachments

  • ft_txt_to_asm.zip
    5 MB · Views: 194

Raftronaut

Member
WOW

I thought I was losing my mind when my noise arpeggios did not seem to be working correctly last night. I poured over my famitracker files and couldn't figure out where my oversight was.... I cannot wait to try this fix.... thanks so much
 

Mugi

Member
okay so how do i import this shit ?

i import an asm and it's fine, then i import another and it imports fine, and deleted everything i earlier imported ?
so how do i import a song without it removing previously imported songs
 

dale_coop

Moderator
Staff member
In Famitracker, in Module -> Module Properties, from here, you can create multiple songs in 1 Famitracker file (there 's an Import File button)
 

Mugi

Member
....... suddenly i dont like NES music that much anymore :p

oh well, time to start from scratch, my composer wont be pleased
 

chronosv2

New member
You should actually just be able to import multiple songs into the same file without having to remake it. I actually did that with my Desolate Desert ROM because I had already made what would become its overworld theme a long time before I had the idea to turn it into a game. The biggest thing might be consolidating instruments if there are a lot of them to import.
 

Mugi

Member
okay new issue :p

i cleaned up the tracks, the instruments and now i have a txt with 3 tracks and a blank sound effect, which can be imported fine through nesmaker and it works just fine, aside the fact that it sounds off because of the noise arpeggios.
trying to convert the txt to asm with the fixed converter though just returns an error: "Keyerror: 3"
not particularly descriptive in order for trying to figure out what's the deal..... -__-

any ideas ?
 
issue was solved in the discord.

for everyone: make sure your triangle instruments aren't using volume envelopes other than 15 and 0.
 

Mugi

Member
okay so, for the people using this, i finally figured out the cryptic "keyerror" messages out in the GGsound converter.

maybe im just stupid and everyone else already knew what they mean, but they gave me and digit a real headache as the ftm file of dimensionshift's soundtrack randomly stopped converting multiple times and would always just return a cryptic
" keyerror* " message, which neither of us had any clue what it meant.

so this happened again yesterday and i spent some good 8 hours recreating the instruments and the tracks for the game before i finally got bored of it and dug into the sourcecode of the converter itself.

the keyerror messages the converter spits out are related to the insturment envelopes used (marked as MACRO in the famitracker exported txt file)

here's how they're read:

keyerror 0 = volume
keyerror 1 = apreggio
keyerror 2 = pitch
keyerror 3 = hi-pitch
keyerror 4 = duty/noise

in my case, an unused hi-pith envelope was created, that was not being used by any instrument on the list, but it appears that famitracker doesnt actually purge unused macros, so this hi-pitch envelope was still being exported to the txt, preventing
it from converting because GGsound does not support hi-pitch.

to get rid of it, i actually had to go and manually edit it out of the exported txt file.

this is the number the error message refers to in the exported txt file.

macrotype.png



so for example, if you have a high-pitch envelope in the file, this number is 3, which will make the converter tool spit out an error message "keyerror 3"


hopefully this will spare someone from the pain i had to go through yesterday :p
 

FrankenGraphics

New member
About running out of instruments.. There's a good reason for song files to be sharing the same project file. This way, you save a lot of space on sharing instrument and envelope definitions across multiple songs.

A problem with FamiTracker specifically is that it can't have more than 64 instruments, which is a bit thin across a total max of 64 songs. (It was never written as an actual game composing tool, but it's still the best around). Even if you have let's say 10-15 songs, there's still a point where you need to get a bit creative with how instruments and enveloped can be reused across different channels and contexts.

GGsound actually supports 256 instruments for the same project file, but there's no existing DAW that is up to the task.

Envelopes entries needing to be 0 or 15 for triangles sounds like something i should look into, because it severly limits the reusage ratio. Two routes i could go about it.. Either by changing the engine itself or by extrapolating unique bass instruments after the export fact in a new py script (pro: no engine fork. con: expanding song sizes by some).
 

misterjosel

New member
functionalform said:
issue was solved in the discord.

for everyone: make sure your triangle instruments aren't using volume envelopes other than 15 and 0.

What's the issue with volume envelopes on triangle instruments? I've been reusing instruments with volume envelopes meant for other channels on the triangle, and haven't had any problems...
 

FrankenGraphics

New member
Well, if there's nothing in ggsound that forces it to be F in order to be on (which struck me as odd), then needing to set it to either 0 or F is misinforming.

For the hardware, any value between 1 and F is "on", which luckily means you can reuse instruments from other channels on the tri channel, and vice versa.

Edit: Confirmed. Setting the volume envelope to any value above 0 plays the bass in ggsound as well as other drivers.

Good, that's one item to strike off the modifications list ;)


Been talking with Derek about implementing support for instrument change messages without setting/re-setting note. It looks like a probable improvement w/o sacrifice, but i'll need to modify the py converter as well. So that's for after i've finished my current projects.
 

WillElm

New member
Anyone else have an issue with this, where you drag your text file on it, the program seems to run, the window disappears, and nothing else happens? No asm file produced.
 
Top Bottom