PlatformPlayer: Add support for custom MIDI soundfonts #193
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Given this is a bit of an experiment, i don't expect it to be merged, but there's no harm in trying since it would be a nice feature to have.
While it has already been closed, this PR would technically close #74... Had some fun with it this weekend and the prospect of having FreeJ2ME be able to effectively "remaster" midi tracks or simulate some phones like the Nokia Series 30 was very interesting.
Turns out it is possible to alter the soundfont used by a JVM's midi synth, and not only is it easy, but it can also be isolated from system drivers, which means users can just put a .sf2 file on the specified folder, enable the option on libretro or AWT menus, and run with it without having to deal with MIDI shenanigans on linux or windows.
Personal testing showed that while you can load pretty much any soundfont in there, the RAM and processing requirements will vary a lot depending on the used soundfont. On one hand you can make MIDI samples sound like they're coming from a Yamaha Tyros 4 if you really want to, but be ready to use 10+ gigs of RAM just to load some games, but on the other you can use small soundfonts and FreeJ2ME will actually get lighter and some games (Asphalt 4) will load slightly faster.
As an example, running Block Breaker 2 Deluxe with TyrolandGS.sf2 (a soundfont that simulates the Tyros 4 + Roland JV-1010) gets me the following usage stats upon reaching the menu:
