GNOME Bugzilla – Bug 549673
Support USF, PSF, PSF2
Last modified: 2011-05-19 08:13:17 UTC
Hello, It would be pritty cool if Gstreamer supports the *.amr Format. There is also no possibility to play *.USF (Ultra 64 Sound Format) or PSF2 nativly. There Are many other Console Formats, the most of then will support by Audacious. Could be Implemented any time? :) Thanks.
Regarding amr, gstreamer can decode and encode amr-wb and amr-nb if you ave the libs installed (there are notes included with the plugins). Regarding the other formats, it wont happen automatically. For a start you could collect ressources - where to find samples file, where to find specs or ideally libs that render them. Even better if you try to write a plugin.
Chris, are you intending to help?
Created attachment 122469 [details] An audacious plugin. It can play a lot of console Formats. It can used as example.
PSF A PlayStation Sound Format (PSF) file is a sound data file (akin to SPC from the Super NES) ripped directly from a Sony PlayStation video game. The PSF format was created by Neill Corlett in 2003. Neill Corlett later created the PSF2 format. Highly Experimental is the name of the Winamp plugin that plays PSF and PSF2 files. This plugin can improve on the original Playstation sound by playing the PSF's at sampling rates above 44.1 KHz. Generally PSF files contain a number of samples and a sequence player program. This takes far less space than the equivalent streamed format of the same song (WAV,MP3) while still sounding exactly like the original song (as opposed to formats such as MIDI which depend on the creator's accuracy and quality of the MIDI synthesizer it's played on). Several PSF subformats also have a miniPSF/PSFlib capability, wherein data that is used by multiple tracks need only be stored once (in the PSFlib) and the differences are stored, with reference to the PSFlib, in a miniPSF file, further increasing storage efficiency. Additionally sections of the PSF are zlib compressed. Generally, background music stored in PSF files can be played forever, as the sequencer properly handles its own loop points, another advantage over streamed formats. A PSF2 file is a sound data file equivalent to the PSF, but ripped directly from a Sony Playstation 2 video game. Both PSF and PSF2 files contains a header which specifies the type of video game system the file contains data for, and an optional set of tags at the end which can give detailed information on the file (game name, artist, length, etc.) The organization of the data is determined by each individual subformat. PSF initially stood only for "PlayStation Sound Format", but with the addition of the PSF2, SSF (Sega Saturn Sound Format), DSF (Dreamcast Sound Format), USF (Nintendo Ultra 64 Sound Format), and QSF (Capcom Q-Sound Format) subformats, a more generic backronym was developed: Portable Sound Format. USF: http://en.wikipedia.org/wiki/Nintendo_Ultra_64_Sound_Format The Nintendo Ultra64 Sound Format (USF) is a file format developed by Adam Gashlin to store sound data (akin to NSF for the NES) ripped directly from a Nintendo 64 video game. USF files are generated manually from the video game's ROM by isolating the program code responsible for playing music, plus the stored music data. The rest of the bytes of the ROM are zeroed, and the resulting data is stored sparsely (zero bytes are not stored in the USF, so unspecified bytes can be assumed to be zero) but otherwise without compression. The file also contains a Project64 save state which is used to initialize emulation upon loading the USF, rather than follow the complete N64 boot process. The ripping process is very manually intensive because the Nintendo 64 has no standard format in which the music playback code and music data are stored in the ROM. USF files can be played back in Winamp through the use of an appropriate plug-in, such as 64th Note (http://www.hcs64.com/usf/64thnote/PJ64v12b3.zip). The basic USF file structure is a subformat of PSF. example files for usf can find there http://www.hcs64.com/usf/ I try to find more information about the formats. greetings from germany Chris
There you can find also example files http://www.zophar.net/music/usf.html
Here ist an Short Specifiaction of the PSF-Format. http://wiki.neillcorlett.com/PSFFormat
What we would need is a library that handles talking to gaming console emulators, as these songs are essentialy programs. The attached code lloks good as a starting point. For gstreamer one could look at the midi plugins in gst-plugins-bad for the gstreamer plugin skelleton. I would not mind if someone wants to work on it, but I don't see it on anyones todo list right now. Thanks for adding the details though.
It would probably make sense to add support for these file formats to game-music-emu ( http://code.google.com/p/game-music-emu/ ). It already supports many similar formats and has a plugin in gst-plugins-bad, that supports playback of all those file formats.
Let's close this as WONTFIX for now, support for this should be added the game-music-emu or another library and then GStreamer will (almost) automatically support these formats.