natt
Junior Member
Posts: 248
Registered: 05-11 |
The following modules are in place and have passed basic testing:
mid and mus files:
portmidi player, dependency libportmidi (output to system midi output; so could be drivespace synths, sound card hardware, or even midi out port on a soundcard)
fluidsynth renderer, dependency libfluidsynth (uses a lot of cpu!)
OPL emulator, no extra dependencies (can technically play any midi file, but chews a lot of the non-MUS ones up)
other formats:
mad player, dependency libmad, plays MP3 files
dumb player, dependency libdumb, plays various tracker formats
vorbis player, dependency libvorbisfile, plays vorbis embedded in ogg
I learned the whole autoconf thing as best as I could (and I definitely hate it); the configure script detects all the new libraries, and the program should function fine with one or more disabled; those formats just won't get played.
Everything but the portmidi player works with recording capture; the nature of that device means it will never support that. All of the players have file-detection heuristics, which is necessary because you don't get extensions in wad files. It's not perfect though; in particular, as far as the mus2mid code is concerned almost anything is a legal mus file if you disable the check for "MUS\x1a" at the beginning.
I still have to add resampling for the mad and vorbis players, fix the pc speaker soft synth (it currently has an unnecessary SDL mixer requirement), and do some debugging and cleanup. There's also the question of UI+settings; there are a number of options available now (preference in which MIDI player to use, output device selection for portmidi, soundfont selection for fluidsynth) that aren't exposed to the user yet.
|