First, you need “GBA Music Ripper” (https://www.romhacking.net/utilities/881/), “STOS” (http://web.archive.org/web/20181006225816/http://www.geocities.co.jp/Playtown-Yoyo/6130/download/stos_raki.zip) and your ROM. I recommend putting everything in one folder. Open the Command Prompt, and go to the directory where you saved your stuff. This is done with the command “cd [path]”.
Now type “gba_mus_riper.exe [gamename].gba”, to rip them.
If it says that it can't detect the Sappy Engine, run stos.exe, open your ROM and then click on “Search”. It will give you a bunch of addresses, where you usually need the first one. With the new address, type “gba_mus_riper.exe [game].gba 0x[address]”.
If it still says that it can't detect a Sappy Engine, then your game doesn't use the Sappy Engine. You could alternatively type “gba_mus_riper.exe -sb [gamename].gba” to separate the Songs into their Banks. This just makes the output a bit more organized and much easier if you plan on working with the midis later. You will now find a new folder which will have the same name as the game. In here you will find all the midis and the soundfonts. To get the samples from a soundfont, you can either A) use a soundfont editor, like “Vienna” (http://www.synthfont.com/VienaSetup.exe) . Or B) use a soundfont to wav converter, like “Extreme Sample Converter” (https://www.extranslator.com/index.php?page=demo)
Vienna method: Open the soundfont, select the Sample folder, select your sample and click export.
Extreme Sample Converter method: Select sf2 as your source type, navigate to the folder where the soundfont is located, select wav as the destination type, select your file and click convert.
As the end result, you should have all the midis and sounds from the game. This is not limited to songs, you will also get the Sound Effects, along with hundreds of midis whose sole purpose is to play the sample. So if you later want to search for a certain song, I recommend sorting them by length.