How to extract MIDI files from .ssf (Saturn Sound Files)? by fedex1 at 5:36 AM EST on February 11, 2020
I would like to convert .ssf files to .midi
I don’t need the tone/soundfont, I just need the midi file that is inside the .ssf file.
I’ve downloaded the .ssf file from the Zophar’s Music Domain (https://www.zophar.net/music/sega-saturn-ssf/nobunaga-no-yabou-tenshouki-with-power-up-kit) / and click on “Download original music files (224 MB)”
I seem to understand that first you need to get the .SEQ from the .SSF, using VGMToolBox -> Misc. Tools, xSF Tools, SSF, seqext/tonext Front End, I tried using it with drag & drop, it say “completed” but nothing really happened, it says something about needing Python.
Also I’ve tried downloading SEQ2MID but I really don’t understand how that work, probably you need to install python but I am not a programmer and don’t know what to do.
----------------------
I then tried to understand how it works, I’ve installed python 2.7.13 (that is an old version) and run the .py script seqext/tonext (downloaded from http://snesmusic.org/hoot/kingshriek/ssf/) using CMD (execute from the directory of the script)
What the program ask is just:
Sega Saturn sequence extractor v0.07 by kingshriek' Usage: python %s <filename(s)> <output directory>
I just write in the CMD: seqext.py Sikok.ssf output
and then it says: --- Sikok.ssf: No sequence data found (and the output folder is created empty)
It is impossible that is not sequenced, I checked and it is not a stream audio, also verified with the ssfinfo.py that contains bank/tone/seq info
What can I do to get midi from .ssf?
------------------------ If someone can make a video tutorial, or explain here, or just convert the files from the Zophar site I linked for me, I appreciate it very much!
So I used SEQ2MID with the help of DosBox, now I can get .midi but there is another problem of course. The midi I get aren't full songs, some songs just interrupt after 30-40 seconds. What to do?
I noticed that songs that are not full are converted with this error line: printf("unknown code: address %x, value %x\n", ftell(fp) - 1, ctl_byte);