Yep, solid archives are unpacked to memory, and then automatically freed when not accessed for a while.
I just hope it won't bug out with a 512 MB solid archive on a 512 MB system.
There doesn't appear to be any markers (or other special meta-events) in this file. Do you have any details of the looping system used, eg. what's 0x74 and 0x75?
I can only paste you the sourcecode of the converting program (both FF7 and Duke Nukem loops inserting). Hope that helps.
case 1:
if(!loopPointUsed)
{
smfInsertControl(smf, sseq2mid->track[trackIndex].offsetToAbsTime[offsetToJump], midiCh, midiCh, 0x74, 0);
smfInsertControl(smf, absTime, midiCh, midiCh, 0x75, 0);
loopPointUsed = true;
}
loopCount = 0;
break;
case 2:
if(!loopPointUsed)
{
smfInsertMetaEvent(smf, sseq2mid->track[trackIndex].offsetToAbsTime[offsetToJump], midiCh, 6, "loopStart", 9);
smfInsertMetaEvent(smf, absTime, midiCh, 6, "loopEnd", 7);
loopPointUsed = true;
}
loopCount = 0;
break;
The loopchanges work quite fine, thank you! Now to reprocess all those midi files... Argh...