Change instrument patch on selected track
Closed this issue · 2 comments
Is it doable? I mostly want this for Golden Sun and The Lost Age, but I'm sure it could be useful in other games as well.
In GS2 especially there are a couple songs with "disabled" tracks, such as track 03 highlighted below (the most known case is one of the overworld themes missing a percussion track, this one is Lemuria)
I ripped them in GbaMusRiper and assigned the midis in question the correct instruments, in this case it's "Choir Aahs" (patch 52, like track 02 in the pic), and you can hear the result here.
Side note, for some reason GS2 has terrible sounding percussion, like it was pitched down or something, while GS1 is working fine. Maybe it's just me, but not sure why.
Edit: I re-checked and GS1 also has this problem.
I've listened to the GS soundtracks in agbplay a lot and I don't rememmber there being issues with the instrument's pitch. The reason it is most likely wrong in your case is because of the wrong Sound Driver mode that is selected in the agbplay.ini. There are Entries for the german versions of Golden Sun (AGSD and AGFD). For example:
[AGFD]
ENG_VOL = 15
ENG_FREQ = 9
ENG_REV = 0
ENG_REV_TYPE = GS2
TRACK_LIMIT = 10
Just copy those to the section of AGFE and you're good. Sadly agbplay currently does not offer an automatic way of detecting these. In this case it'd be handy to have the same config for multiple languages (i.e. games sharing configs) but because it wasn't that essential when initially writing agbplay I didn't implement that.
As for changing the instruments: I didn't really plan agbplay for editing tracks. For that kinda thing you might want to check this out:
https://github.com/Kermalis/GBAMusicStudio
You could change the instrument (or because the instrument change isn't there replace the redundant key shift event) there and then load the ROM back into agbplay.
Going to close this since I don't plan on implementing this and this not being a bug.
If someone else wants to this, go ahead. But I never had the intention to edit files with agbplay.