logicomacorp / WaveSabre

Official WaveSabre repository
MIT License
245 stars 33 forks source link

Factor out sample loading/management from Thunder/Specimen #72

Closed yupferris closed 3 years ago

yupferris commented 3 years ago

The primary motivator here is to more easily support building WaveSabre (especially the VST plugins) on platforms other than Windows by isolating the Windows-specific stuff as much as possible. Note that this patch doesn't actually isolate the Windows-specific sample loading bits entirely, as the wave format struct leaks out - but I think the best way to handle this is to do this step first, and deal with the rest once we have actual code for other platform(s) to compare to, and reconcile things then.

A secondary motivator is that this code was basically duplicated, and arguably should have been shared initially. However, we chose not to do that as Thunder is technically deprecated, so we thought we'd just leave it as-is and move on. However, there seems to be some interest in getting older songs running on other platforms and not just new stuff, so this bit of maintainence makes sense.

Size-wise, this adds 20 bytes or so compressed, which is low enough to ignore in most cases.

This supercedes #52.