Switching to Timidity 2.13.2
|Reported by:||oldnemesis||Owned by:||spiff|
|Priority:||4 - Normal||Milestone:||9.04 "Camelot"|
|Component:||Other (un-categorized if does not fit anywhere else)||Version:||GIT|
Upgraded Timidity to version 2.13.2. Timidity 2.13.2 provides the following advantages:
- Better sound quality due to better (but more CPU-hungry in terms of 2004) implementation of resampling, effects, and reverb;
- Support for soundfonts;
- Handles modern MIDI files as it properly supports more events.
- (there is actually much more, I just listed what I know)
The following changes are made to Timidity core:
- Timidity converted to library with similar API (added to timidity.c and playmidi.c)
- Since sound output is now going through default audio queue (aq_), we're now getting wave data through added buffer output interface.
- Fixed numerous memory leaks on Timididy shutdown. We're a shared library now :)
- Removed support for non-MIDI files (500K of code). Could be added back if anyone really want to use it to handle MOD/XM/S3M and other Really Old Stuff from tracker scene. Saved almost 600K though, so makes sense.
- Removed URL and archives support as we're supposed to handle only .mid/.kar files using wrapped fopen() which will take care of everything.
- Added support for working without configuration file if there is a soundfont file at path q:\system\players\paplayer\timidity\soundfont.sf2, in which case no configuration is needed.
The following changes are made to the Timidity integration:
- Added ErrorMsg() function which returns error message to make the API less ugly;
- Added Cleanup() function which should be called before unloading the shared library;
- Integrated bugfixes from patch #5461 (which could be now discarded as the code changed);
- The patch is integrated into XBMC build system (less work for ya :)
- MIDI files play a little faster using current SVN on ALSA output. I backported the changes down to 16447, and it looks like this issue is only affected revisions 16538 and up. Music plays fine on 16537 and below. I see there were some changes in player. Please someone more experienced take a look on that :)