Short: MPEG audio player with GUI (68k/PPC) Uploader: Thomas Wenzel (wenzel@unixserv.rz.fh-hannover.de) Author: Thomas Wenzel (wenzel@unixserv.rz.fh-hannover.de) Type: mus/play Version: 2.2 Homepage -------- http://amigaamp.amiga-software.com Introduction ------------ AmigaAMP is a GUI based MPEG audio player using mpega.library on the 68k processor or the amp decoding engine in the PPC version. Sound is played back using the AHI audio system. AmigaAMP is NOT another frontend for the CLI based mpega. Anyway, if you've got problems not related to the user interface but with AHI, AsyncIO or mpega.library, PLEASE contact the corresponding author directly. I wouldn't be able to help you in this case. Requirements (not included in this archive!) -------------------------------------------- AmigaOS 3.0 or higher 68030-50MHz processor or better mpega.library (Aminet:util/libs/mpega_library.lha) asyncio.library (Aminet:dev/c/AsyncIO.lha) AHI audio system (Aminet:mus/misc/ahiusr.lha) Recommended ----------- PowerUP and ppc.library v46 AmigaOS 3.1 (OS3.1 AND PowerUP v46 are needed for the spectrum analyzer!) Features -------- - FREEWARE! No beta, no nag requesters and no expiry date! - GadTools based font sensitive user interface - Alternatively WinAMP compatible user interface - Fast, synchronous spectrum analyzer (almost no latency) - Workbench application (you can drop icons on its window) - Easily configurable - AHI device-level access (uses default audio mode automatically) - PPC (PowerUP) support - ID3 tag editor (artist, title, albm, etc.) Limitations ----------- - The PPC version doesn't support MPEG2.5 yet, I'm working on it - Only simple level meters in the 68k version - No realtime spectrum when using AmigaOS 3.0 -- sorry guys! - No realtime spectrum when playing MP2 files yet History ------- v2.2 - better CyberGraphX compatibility - editable playlist including loading and saving (from the menu) - time/remain display - freaky animation in the bottom right corner :) - autoscrolling song/artist text in WinAMP mode - skin display while loading on highcolor/truecolor screens - random play (shuffle) - more alphabetically sorted genres - key sensitive genre requester - pitch shift (+ and - keys on numeric keypad, * resets speed) - improved PUBSCREEN and SCREENMODE capabilities - fixed internal crossfader Start two aamps and hold shift while dragging the volume slider - support for 'nums_ex' and 'volbar' named skin images v2.1 - configurable playback buffer size (should cure many problems!) - fixed a bug that caused truecolor skins to be dithered even on truecolor screens - Skin pictures can have any extension you like as long as the name is correct. - Fixed a bug in the PPC loader for 48 kHz MPEGs - asynchronous filerequester - Skins can be reloaded at any time. - auto-play after opening a file if playback was active before opening - corrected some skin positions - visualisation for the 68k version, too (level meters) - MaxFreq finally works v2.0 - so many changes it was worth bumping the version number :-) - position of genre listview gadget fixed - fixed bugs when playing mono or 22.05 kHz files - digital volume control - AREXX interface (see AREXX.readme) - automatic detection if another AmigaAMP task is already running - alphabetically sorted playlist (not editable yet) - configurable buffersize - WinAMP lookalike GUI (see below) - Improved fontsensitivity of old GUI - cached taginfo -- will be written when the file is closed v1.1 - name changed to AmigaAMP - PPC version - ID3 tag editor - commandline support v1.0 - initial release called MPEGAHI Getting started (configuration) ------------------------------- Important! You need a properly installed and configured AHI audio system to run AmigaAMP. Without a correct setup the sound may be very poor and AHI will draw too much CPU power! First of all run the AHI setup program in your Prefs drawer. Select one of the units from 0 to 3 but not the Music unit. If you don't use unit 0 for anything already I recommend using that one. Select one of the "fast stereo++" audiomodes that matches your audio hardware. For Prelude playback I recommend "Prelude:Fast 16 bit stereo++ realtime". Now you need to know what sampling rate most of your MPEG files have. Probably it's 44100 Hz because that's the standard CD rate. If you have a slow processor you may want to run AmigaAMP in frequency division mode to reduce CPU load. Have a look at the table below for the recommended settings. It is important to set the frequency slider to your mostly used frequency divided by your chosen frequency divisor. For example, if you're going to playback lots of 44100 Hz MPEGs and frequency division is 1:2, set the Frequency slider to 22050 Hz. If you don't plan to have several programs playing back audio at the same time, please leave the Channels slider at position 1. The remaining settings depend on your audio hardware. Ok, press the "Save" button in the bottom left corner. Now it's time to configure AmigaAMP itself. If you've chosen another AHI device than 0, you have to change the AHIUNIT tooltype of AmigaAMP first. If not, just start it by double clicking on its icon and pop up the setup window by chosing Config... from the menu. Set the sliders and checkmarks to the recommended settings, save them using the menu and close the settings window again. That's it! AmigaAMP is now configured. You may want to fine-tune the settings later. The overall performance depends on the speed of mpega.library AND the the speed of your soundcard's AHI driver. Recommended settings (tested with Prelude:Fast 16 bit stereo++ realtime) ------------------------------------------------------------------------ | Layer 1/2 | Layer 3 Processor | Quality|FreqDiv|Mono | Quality|FreqDiv|Mono ----------+--------+-------+-----+--------+-------+----- 68040-40 | high | 1:2 | off | medium | 1:2 | on 68060-50 | high | 1:1 | off | high | 1:1 | off PPC604e | high | 1:1 | off | high | 1:1 | off Note: In fact only the 68k version is affected by these settings. Advanced settings ----------------- * Bufsize: Set the size of the read ahead buffer. Try playing with it until you get best results. (Normally 16 to 32K is best) Setting the buffersize to FILE means that the read ahead buffer will be as large as the current track eliminating all disk access during play. Attention! This option isn't 100% stable yet! * TaskPri: Set the running task priority of AmigaAMP. The recommended value for uninterrupted playback is 1. God knows what happens if some 3rd party task rescheduler starts fiddling around with AmigaAMP's internal task priorities... * Read ID3 TagInfo Try to read information about artist, title, etc. Because those are stored at the end of the file it may slow down loading a bit. If this function is switched off, TagInfo can neither be edited nor saved! * Allow multiple instances Normally when you click on an MPEG file project icon while AmigaAMP is already playing another one, no second AmigaAMP task will be launched but the already running task will start playing the new file. This behaviour can be switched off. You have to start AmigaAMP twice manually and then save the config with "Allow multiple instances" switched on from both running tasks. * Limit volume to 0dB The volume slider ranges from silence to +6dB volume so that you can boost more silent recordings. If you don't want to turn the volume above normal accidentally, you can switch on this option. * ToolType: DIRECTORY Default directory to display in filerequester. * ToolType/Keyword: SCREENMODE Tell AmigaAMP to use its own screen. The mode has to be specified in decimal or hexadecimal format. Hex values have to be preceeded by <0x> or <$>. Example: SCREENMODE=0x50021303 * ToolType/Keyword: PUBSCREEN Name of the public screen that AmigaAMP will display its GUI on. Example: PUBSCREEN=DOPUS.1 Usage (how to load and play sounds) ----------------------------------- Most of the buttons should be self-explanatory because they can be found on almost every CD player or tapedeck. However, as a computer program, AmigaAMP is based on files, so there may be slight differences. The bottom line buttons from left to right are: - Eject Stops playback, empties the current playlist and opens a requester to select one or more files - Skip back Moves to the previous track in the playlist if there is one. - Stop Simply stops playback. (What else did you expect? :-) - Play Starts playback if there's at least one track in the current playlist. If it's not, opens a requester to select tracks. - Skip fwd Moves to the next track in the playlist if there is one. - Pause Pauses playback at the current position Just above the control button's there's a position slider. As you play a file, it's button moves from left to right to display the relative playback position within the current track. You can use the mouse to drag this slider to a new position. Keyboard shortcuts ------------------ CURSOR RIGHT skip 10s forward CURSOR LEFT skip 10s backward CURSOR UP increase volume CURSOR DOWN decrease volume SPACE play/stop P pause NUM + increase speed by one semitone NUM - decrease speed by one semitone NUM * normal playback speed Z skip back one track X play C pause V stop B skip fwd one track N eject About the WinAMP GUI -------------------- Since WinAMP v1.80 you can load customizeable textures (so called skins) for the GUI. The skins consist of several bitmapped pictures together in one directory and contain the the look of the window itself as well as images for all the gadgets. Because more and more people ask me to make AmigaAMP look like WinAMP I now included an alternative GUI routine that can load those WinAMP skins! I've included my three favourite examples in the "skins" directory. There are three subdirectories called - base -> the original WinAMP design - sex -> a very colourful appearance :-) - eXquisite -> wood case and polished brass knobs :) To activate one of those GUIs you have to start AmigaAMP with the options NewGUI and Skin=. If you just want the WinAMP like basic look you can simply type "AmigaAMP NG" where NG is the shortcut for NewGUI. For the other designs a highcolor display mode on a graphics card is strongly recommended. Although the pictures all have the extension .iff they can be any format that you have a datatype for. If you find a working BMP datatype (try loading the pictures with multiview first) you can even copy WinAMP skins direcly. AmigaAMP will try to load pictures with the extensions iff or bmp automatically. At the moment not everything of the WinAMP GUI is really functional. For example there's no spectrum analyzer for MP2, no graphic EQ and the shuffle button won't work either. Anyway, most of the rest is working! Legal stuff ----------- AmigaAMP is copyrighted freeware. It may be distributed freely as long as no modifications are made to the executable and this document. A nominal fee may be asked to cover distribution costs. AmigaAMP may not be used for any commercial purposes or included with any commercial product without the written permission of the author. It may not be advertised, offered or distributed together or in conjunction with commercial products. The only exception is the Aminet archive. No responsibilities are taken for damaged speakers, amplifiers, Amigas or any other components or data involved while using AmigaAMP. Although I've done some beta testing I can't guarantee that AmigaAMP will not crash! If you find any bugs, let me know. Here's the original amp.readme: ------------------------------- amp MPEG audio decoder readme file (version 0.7.5) (C) Tomislav Uzelac 1996,1997 amp is free software and can be _used_ freely by anyone. If you want to do anything else with it, be sure to check the Legal section of this document for legal issues. THERE IS NO WARRANTY FOR THIS PROGRAM. Please check out the Legal section of this document. 1. Introduction 2. Installation 3. Running 4. Feedback 5. Contributing 6. Legal 1. Introduction amp (Audio Mpeg Player) is an MPEG audio decoder which I originally started putting together as a side project of the MPEG hardware design project at FER/Zagreb - just to confirm my knowledge of the standard. It works with both MPEG1 and MPEG2 audio streams (except for the multichannel extensions defined in MPEG2), layers 2 and 3. There is a gui for amp, written in Tcl/Tk by Edouard Lafargue. It is available at the amp home site ftp://ftp.rasip.fer.hr Another gui supported is the Sajber Jukebox, written by Joel Lindholm. The following people contributed their time and knowledge to amp: Karl Anders Oygard, Ilkka Karvinen, Lutz Vieweg, Dan Nelson, Edouard Lafargue, Andrew Richards, George Colouris, Dmitry Boldyrev, Andy Lo A Foe, Thomas Sailer, Justin Frankel amp home location is ftp://ftp.rasip.fer.hr/pub/mpeg/ and the mailing list: send 'HELP' in the body of the message to: multimedia@rasip.fer.hr If you want to find out more about MPEG, best places to start are http://www.mpeg.org http://www.mpeg2.de 2. Installation Installation should be simple enough if amp was ported to your system, just do a ./configure make You can edit the makefile further to suit your system. If configure fails to make a usable Makefile, you'll _have_ to edit it yourself. Linux users should try real-time playing support, as described in doc/realtime.txt. Some people that might pass on this feature are those with slower machines (i.e. 486's), or SMP systems (see the doc/linuxrealtime.txt file). Some versions of the linux C library produce an error when compiling amp with realtime support. A quick fix is to edit /usr/include/sched.h and replace _P in the offending line with __P. ./configure --enable-realtime make chown root.root amp chmod u+s amp ... this requires /dev/dsp to be both world readable and writeable. If you have a special group for people allowed to use the sound device (for instance, a group called sound), you can do a: chmod g+s amp or make your audio card world read/writeable (not recomended) chmod o+rw /dev/dsp* 3. Running: 'amp -h' gives you usage & options. If your computer is on the slower side, direct playback might not work, but you can decode it to .wav or raw pcm and play it later. 4. Feedback Send in your makefiles, opinions, bugreports, fixes; anything related to this program. You can also send me unlimited amounts of money, sugar, milk, etc. If you find any mpeg audio files that amp has trouble decoding, please tell me about this via e-mail . 5. Contributing Please contribute to amp. If you want to know what is going on in amp development, you can join the developers mailing list mpeg_audio_developers@rasip.fer.hr There are certain debugging facilities that I made in amp, but are disabled in the current release (they are neither nice nor user-friendly). If anyone enhances them (they are in dump.c) to the point that they're actually usable I'll be happy to include the changes in the release. I think this kind of debug output would be very useful to people studying these audio algorithms. 6. Legal This software can be used freely for any purpose. It can be distributed freely, as long as it is not sold commercially without permission from Tomislav Uzelac . However, including this software on CD_ROMs containing other free software is explicitly permitted even when a modest distribution fee is charged for the CD, as long as this software is not a primary selling argument for the CD. Building derived versions of this software is permitted, as long as they are not sold commercially without permission from Tomislav Uzelac . Any derived versions must be clearly marked as such, and must be called by a name other than amp. Any derived versions must retain this copyright notice. /* This license is itself copied from Tatu Ylonen's ssh package. It does * not mention being copyrighted itself :) */ THERE IS NO WARRANTY FOR THIS PROGRAM - whatsoever. You use it entirely at your risk, and neither Tomislav Uzelac, nor FER will be liable for any damages that might occur to your computer, software, etc. in consequence of you using this freeware program. Tomislav Uzelac