First post, by Prog
I hope that posting this in the right section doesn't limit its traffic, because this is really a separate topic from something like Basilisk.
I'm trying to do more or less what this bloke did. He extracted the sound samples and the MIDI files from the Mac version of SimCity 2000, but there were a few errors in his.
The instruments in the game loop just like modern sample-based soundfonts, and terminate looping when the midi note is released. Similar to a release envelope, the notes are cut off a certain length of time (usually 2/3 of a second, but varies depending on the song) after the midi note is released. Unlike modern release envelopes, this is not a linear fade out over the course of the time, but a hard cut after the specified length of time. Can this be replicated in a soundfont? I only see a linear release option for the envelope. What about in the MIDI files? Like, can I script a command that adds something like a note-cut event a certain time after each note? I dunno if such a thing exists, but I can use a workaround like that. Or perhaps there's another instrument bank format that actually supports what I'm trying to do here.
Here, have a few samples:
The original game audio, emulated in Basilisk II. Notice the crescendo strings at the beginning, and their abrupt cutoff. This cutoff happens 40 frames after the MIDI note is released
My W.I.P Reconstruction, with no release sounds. The sounds all end abruptly on the note release. The first string chord is so short, it's inaudible here. You will also probably notice the bass drum track here that you could only barely hear as a floppy fuzzy noise, and I think that's because someone at Maxis messed up converting between hex and decimal, resulting in the wrong octave being assigned the bass drum sample. But that's a topic for another day. You'll also hear the better quality, as this is being rendered in CD-quality as opposed to 8-bit 22.255 khz. Between the low sample rate of the samples and the output, it's amazing how much quantization distortion is in the original.
My W.I.P Reconstruction, psuedo-infinite release. As you can hear from the first note, this one plays the entirety of the sample. However, it should be cutting, instead of playing the WHOLE sample, which causes issues like the strings fading out of the first chord in this example, or the flute being downright obnoxious in other songs.
My W.I.P Reconstruction, 1 second release. I would have set this to .667 seconds, but Viena is buggy. Anyway, you can hear how the strings "fade to black" quickly, providing a happy medium between the previous two examples but ultimately still falling short.