Short: Optimised MP3 (MPEG 1 Layer 3 audio) decoder Author: Fraunhofer institute and Johan Hagman Uploader: Troels Walsted Hansen (troels stud cs uit no) Type: mus/play Requires: ixemul.library V45+ Architecture: m68k-amigaos This is a decoder for MPEG 1 Layer 3 audio (often refered to as MP3). It is based on the same freeware source as the other two archives currently on aminet (mp3.lha and mpeg1_iis.lha), but the source has been optimised a lot by Johan Hagman. I downloaded the source after a tip from Cstar on irc, and compiled it with ADE gcc. This decoder is more than 4 times faster than the one found in mp3.lha. It is also completely selfcontained, you don't need the external tables/#? files anymore. I changed the makefile for ADE gcc and changed the source to write a raw PCM file instead of an AIFF file with a header. This means you can make the decoder write to the PIPE: device and have some other program read the audio data from the pipe at the same time. I use this for converting mp3 files to mp2. To convert an mp3 file to mp2 for realtime playback with the mpegaudio.lha delitracker player on aminet execute the following commands in a shell: stack 100000 run mpeg3play -o pipe:mp3 musicin pipe:mp3 -b128 (You need the pipe device mounted, I think it is found in some other archive on aminet..) You can also decode mp3 files to a PCM audio file and play it back using for example Play16. To do that, try the following commands: stack 100000 mpeg3play -o play16 tracks=2 bits=16 freq=44100 hifi Here's some timings I made on my CS060mkII equipped A4000. I used "timer" from the Executive 2.0 package to make the timings, so they should be as exact as possible. The file is spot1.mp3, 130836 bytes, 416 frames, 11 seconds of audio. The suffix of the decoder filenames indicate the CPU they were optimised for by the compiler. Decoder Time w/CyberPatcher Time w/o CyberPatcher ---------------------------------------------------------------- decode020-040 0:09:17.67 0:09:19.51 decode020881 0:06:49.29 0:04:47.49 decode040 0:05:41.69 0:04:26.27 decode040881 0:05:32.96 0:04:19.18 mpeg3play000 0:04:36.61 mpeg3play020 0:04:45.35 mpeg3play040 0:01:07.13 mpeg3play040881 0:01:00.68 0:00:59.06 Yabbadecode060 0:01:05.04 0:01:10.51 Yabbadecode060 is a work in progress. Just like mpeg3play it is based on the original mpeg1_iis sources and it has been optimised by Stefan Burström and compiled for 060 with SAS/C 6.57. All the other decoders were compiled with ADE gcc (which does not have an option to optimise for 060). As you can see from the timings, mpeg3play is currently the fastest decoder available (even if it is still far from realtime). Troels Walsted Hansen, troels@stud.cs.uit.no, Troels on IRC