VOGONS

Common searches


First post, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

Does anyone know of a utility that can convert an XMI format music file that has numerous subsongs contained in it to seperate MIDI files of all of the subsongs? I have extracted the XMI format music files from Star Trek: Judgment Rites, and they all have numerous subsongs contained in each of the files.

Note that I can play all of the subsongs in a single XMI file using XMPlay (with XMPlay's MIDI plugin installed). But, the usual XMI2MID utilities only convert the first subsong contained in any given XMI file to a MIDI file, but not the rest of the subsongs.

Does such a thing exist? Any help would be greatly appreciated 😀

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 1 of 6, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

You know, I'd be curious about a utility as well just to beable to piece together the System Shock 1 XMI's anyway I want them, but I would need like you said; Standard MIDI Files of each individual subsong by itself.

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 2 of 6, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie
DracoNihil wrote on 2024-05-20, 07:54:

You know, I'd be curious about a utility as well

I've done a lot of internet searching, and it really baffles me that I can't find a utility to do this.

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 3 of 6, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

I found a utility that seems to work! The utility will extract and convert all of the subsongs in a single XMI file to separate MIDI files 😀

Note that the FULL path must be entered for filename of the XMI file (even if the XMI file is in the same folder as the utility), or otherwise the utility will fail.

In other words, THIS does NOT work:

SSPlayer.exe -extractall Music.xmi

But THIS WORKS:

SSPlayer.exe -extractall C:\XMI_Music_Files\Music.xmi

Anyhow, I have attached a ZIP to this message with the utility. AND, for anyone interested, a ZIP with the General MIDI format XMI and converted MIDI files from "Star Trek: Judgment Rites".

Note that STJR had a *LOT* of duplicated music throughout the various XMI files. I extracted and converted ALL of the XMI files, and then did a byte-for-byte binary file comparison for all of the duplicate converted MIDI files. I then deleted all of the duplicates, hence the strange filenames of the MIDI files in the "Star Trek Judgment Rites\MID" folder in the ZIP. Nevertheless, the MIDI files *ARE* the complete collection of all of the different music and tunes in STJR 😀

Filename
SSPlayer_v1.0.zip
File size
53.85 KiB
Downloads
7 downloads
File comment
XMI to MIDI Converter
File license
CC-BY-4.0
Filename
Star_Trek_Judgment_Rites_Music.zip
File size
355.25 KiB
Downloads
4 downloads
File comment
Extracted and Converted MIDI files from Star Trek: Judgment Rites
File license
CC-BY-4.0
Last edited by rfnagel on 2024-05-21, 14:53. Edited 1 time in total.

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 4 of 6, by aqrit

User metadata
Rank Member
Rank
Member

fwiw, they seem fairly easy to extract using a hex-editor.
Each header chunk starts with "FORM".
Just need to fixup the big endian file size remaining at offset 0x1C.
And the number of tracks at offset 0x14.

At least, on the sample files I'm looking at in the DIGPAK sdk.

Reply 5 of 6, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

Originally I thought about using a hex editor too. That is, until I realized that there were dozens of subsongs in each of the 17 XMI files 🤣. After I used the utility to extract them all, there was somewhere around 175 resulting MIDI files. Although, MANY of them were byte-for-byte duplicates.

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 6 of 6, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie
rfnagel wrote on 2024-05-20, 21:31:

I found a utility that seems to work! The utility will extract and convert all of the subsongs in a single XMI file to separate MIDI files 😀

SSPlayer_v1.0.zip

Good find, thanks Rich!

“I am the dragon without a name…”
― Κυνικός Δράκων