Short: Multi format audio player with GUI Author: Thomas Wenzel (www.toms-home.de) Uploader: toms-aminet-upload toms-home de (see note below) Type: mus/play Version: 3.33 Architecture: ppc-amigaos Homepage: http://www.amigaamp.de/ Note: Aminet admins only: Use address from [Uploader] field to contact me All others: Use the email address stated on my homepage www.toms-home.de Introduction ------------ You want an audio player that really makes use of your high spec Amiga? Here it is! AmigaAMP is a GUI based audio player using various built in and loadable decoding engines. Playback is done through the AHI audio system. Supported formats and decoders ------------------------------ MP2, MP3 amp built in AIFF, WAV, 8SVX sndfile built in FLAC flac built in OGG vorbis/opus built in M4A mp4ff/faad2 faad.library needed MOD, S3M, XM modplug built in various TNPlug TuneNet plugins Please note that M4A-DASH files directly recorded from youtube streams can not be played! However, they can be converted into regular M4A files using ffmpeg: ffmpeg -i Downloaded_File.m4a -vcodec copy -acodec copy Playable_File.m4a About TuneNet plugins --------------------- AmigaAMP supports TuneNet plugins in its own Plugins folder. When opening a file the built in decoders will be tried first. If none of them matches the file format then all TuneNet plugins in the Plugins folder will be tried. Since support for sndfile, flac, ogg and modplug is built in, it doesn't make sense to have the corresponding TNPlugs installed in the Plugin folder. They'll will never be used and just slow down the loading process. If a plugin can't be loaded for whatever reason a requester will pop up when starting AmigaAMP. To get rid of this requester you have to fix the plugin or delete it. If a plugin crashes, don't blame me! :) Disclaimer ---------- This software is provided 'as is' free of charge. No ads, no telemetry, no subscriptions required! If you like it - use it. If you don't like it - use something else. :-) Requirements ------------ AmigaOS 4.1 or higher PowerPC processor AHI audio system AmiSSL 4.3 or higher for HTTPS support faad.library for M4A playback (faad_library.lha package from OS4Depot) Differences between AmigaAMP2 and AmigaAMP3 ------------------------------------------- Feature list | V2 | V3/PPC | V3/68k ----------------------------+------+--------+------- 680x0 support | X | | X PPC/WarpUP support | X | | X PPC/PowerUP support | X | | PPC/AmigaOS4 support | X | X | Fully AmigaOS4 native | | X | | | | MHI support | X | | X Prelude/MPEGIT support | X | | mpega.library support | X | X | X faad.library support | | X | | | | MPEG audio (MP2/MP3) | X | X | X Uncompressed PCM (AIFF/WAV) | X | X | X FLAC support | | X | OGG support (vorbis/opus) | | X | M4A support | | X | AAC support | | X | MOD/S3M/XM/IT support | | X | X MIDI support | | X | | | | Fast EQ for MP2/MP3 only | X | X | X Generic EQ (all filetypes) | | X | | | | Visualization plugins | X | X | X TuneNet plugins | | X | Preferences ----------- AHI: Basically, a "Stereo++" mode should be used because only this supports balance (panning) settings. AHI-Units: The music unit is not important, it is only for an audio handler in DEVS: DosDrivers. AmigaAMP does not use this. The units 0-3 should actually be used to distinguish different hardware, e.g. unit 0 = sound card, unit 1 = Paula. The application using AHI (e.g. AmigaAMP) can then be told which unit it should use. Speaking of unit usage: AmigaAMP uses AHI in high-level or device mode. This is a non-exclusive, shared mode in which several applications can play something simultaneously via the same unit. AHI then mixes this automatically. AHI-Frequency: This is the frequency or sampling rate at which all channels are mixed together and sent to the hardware. All audio data that is not available in this sampling rate must be resampled by AHI in real time. This results in quality loss and also leads to increased processor load. It is therefore best to set the sampling rate that is used for most of the music you want to play. Advanced settings: These can actually remain untouched. They are only important when AHI is used to mix many short samples. AmigaAMP does not do that. Now for the AmigaAMP settings: Program: Allow multiple instances: If this is not checked then starting AmigaAMP a second time simply brings the running instance to front AND passes the parameters of the call to it if necessary. You can, for example, simply drag an MP3 file onto the AmigaAMP icon in WB Dock, then the current playback is stopped and the new title starts playing. If this is chacked then you can start AmigaAMP several times. By the way, the additional instances save their settings in separate files, namely ENV: AmigaAMP.prefs, ENV.AmigaAMP.prefs1, etc.. In this way, separate settings can be defined for the different instances, including their own window positions. The cool thing is: If you move the volume control of one instance while holding down the SHIFT key, the volume control of the other instance moves in the opposite direction. So you can crossfade between two pieces of music like a DJ. :-) Of course, this mode only makes sense if the Amiga has enough power to play several files simultaneously. For AIFF this is usually no problem. For MP3, there is hardly anything to be done without a decoder card. But it would be possible to use one instance via a decoder card and have the second decoded in software. Double click: Refers to what should happen when a playlist entry is double-clicked. Should be self-explanatory. Save Format: Specifies which information is stored when a playlist is saved. Scan Method: Specifies whether the metadata should be fetched from each individual file when loading a playlist. No Scan - does not do this at all. Read duration on demand - determines the playing time for each entry that is currently visible in the playlist window or becomes visible by scrolling. Scan Time In The Background - determines the playing time for all entries in the background. Scan Time And Tag - determines the playing duration and all metadata for all entries in the background. Autoplay File: Starts playback as soon as a file is opened. Autoplay List: Starts playback of the first entry when a list is opened. Read ID3 Tag: Reads the metadata a.k.a. ID3 tags for each track at the beginning of playback. GUI: Windows The left column should be self-explanatory. Backdrop / Immovable: Permanently sets the windows to backdrop in skin mode and protects them from being moved. In this way you can, for example, blend the AmigaAMP surface with your Workbench background if you do it cleverly. Use System Font: Normally AmigaAMP uses the character set stored in the skin for the title display in the main window. However, it only supports capital letters and no country-specific special characters. But it always looks perfectly matched. If the check mark is set, AmigaAMP tries to use the system character set in the narrow title display, with umlauts, special characters and everything. Sometimes this works better, sometimes worse. The best thing is to try it out. GUI: Visualisation: Changes the behaviour of the visualisation in the main window. It is best to try out what looks like and what suits you best. Audio: Volume: This is the startup volume setting of AmigaAMP. Values higher than 0dB are meant to bypass the limit imposed by AHI for multiple mixing channels. If there's only one channel set in the AHI prefs, this might lead to overdrive. To prevent this from happening accidentally, there is a check mark "limit to 0dB". Use Equalizer: Specifies whether the equaliser should be switched on when the application starts. AHI unit: Which of the AHI units AmigaAMP should use. Keep AHI Unit Open: If this option is checked, AmigaAMP keeps the AHI unit open all the time. This speeds up the start of playback, but also permanently occupies one of AHI's mixing channels. If only one channel is configured, no other application can play audio at the same time. Swap Audio Channels: There were setups where the left and right channels were swapped. You can use this to swap them back again. System: Buffers: Loading Indicates the size of 'chunks' in which the data is read from the hard disk. The best value depends strongly on the hard disk controller. Rule of thumb: The newer and more modern the controller, the larger the optimal value. However, "As File" should only be selected if AmigaAMP's regular hard disk accesses during playback would interfere with other applications. Buffer: Playback Indicates the length of each 'chunk' that is transmitted to AHI. Smaller values mean faster response to moving the volume and panning controls but make playback more prone to dropouts. 1/2s is a good compromise. Asynchronous Loading: Uses the asyncio.library to load files. Depending on the system, this may have advantages or disadvantages, but you have to try it out. Again, the newer and more modern the hard disk controller, the more likely it is that asynchronous loading will be advantageous. Task priorities: Now it becomes tricky. Since AmigaOS is more or less a real-time operating system, you can assign a higher priority to real-time-critical tasks. And AmigaAMP consists of three tasks. :-O Main: Is responsible for the entire operation. Its priority should be at least as high as that of playback. Recommended value: 5 Playback: Values greater than 0 mean that playback and decoding have priority over 'normal' applications, thus slowing them down for smooth playback if necessary. Recommended value: 5 Visualization: This is a matter of taste whether you prefer a smooth visualisation or not. If yes, then use a large value (e.g. 10), if no, then use 5 or less. Pattern: The pattern to which the file names displayed in the file requester should match. If is entered here in angle brackets, AmigaAMP generates the pattern itself to the best of its knowledge based on its supported formats. Decoder: Here you can switch between the built in AMP engine and external mpega.library. Using mpega.library only makes sense in special cases, for example a slow Amiga Emulation setup. If in doubt just leave it at "Internal". History ------- 3.33 - Bug fixes: * Fixed repeat track/all functionality. * Corrected error message for unsupported stream format. * Fixed wrong memory deallocation when closing the about requester. - New features: * Added pulldown menu items for repeat track/all and shuffle. 3.32 - Bug fixes: * Loading whole directories now automatically expands playlists found in these directories. * Fixed wrong behaviour when double clicking on a playlist stream entry while another stream is still in connecting status. * Fixed handling older visualisation plugins which use an early version of the API. - New features: * Each playlist entry now has its own error status. * More detailed documentation about AmigaAMP's settings. 3.31 - This was a OS3.x/68k only release. 3.30 - Bug fixes: * Pulldown menus now work across all ReAction windows. * If a datatype can't load the cover image from memory then AmigaAMP will write it to T: as a file and try to load it from there. * Fixed radio station name taken from stream metadata in playlist. * Up to ten reconnect attempts when shoutcast server reports 'unavailable'. * Fixed handling ID3v2 tags in front of FLAC files. * Fixed loading / adding whole directories. * Fixed initial state of EQ/Playlist buttons in skin mode. * Reworked visualisation routines for better synchronicity. * Fixed incomplete equalization in generic (non-mpeg) equalizer. * Automatically save current equalizer setting when saving prefs. * Fixed SSL connections that require Server Name Indication. - New features: * AISS images for playlist buttons in ReAction GUI * Multi-select playlist in ReAction mode. * Snapshot windows directly via pulldown menu entry. * More buttons can use AISS images (configurable option). * Popup menu for "Add..." button in ReAction playlist window. * ARexx macro support. Macros must have .rexx extension and start with a line saying /* AmigaAMP ARexx Macro */ * Automatic adding of .pls to saved playlist filename. * Now using octave-spaced equalizer band frequencies. 3.29 - Bug fixes: * Fixed conversion from UTF16LE in ID3v2 tags. * Fixed some more bugs in PLS parsing. * Fixed memory leak in M4A tag reader. * Fixed decoding of MPEG 2 Layer 3 files. * Fixed window position messages to plugins in ReAction mode. - New features: * Find-function in playlist * EQF (Equalizer preset file) support * Added EQUALIZER ToolType to load a specific setting at startup. * Added choice between skin font and system font for track info display (still experimental). * Added opus codec support for ogg files. * Tries to read cover.jpg from folder of audio file if no embedded cover picture could be found. * Gapless playback 3.28 - Bug fixes: * Fixed getting string from URL requester. * Fixed division by zero bug in ICY header parsing. * Hardened ID3v2 tag parsing -- could crash on rare occasions * Fixed "Loading: As File" routines. - Improvements: * Revised PLS parsing. It's much faster now. - Updates: * Implemented sndfile support in 68k version. * Updated Swedish catalog. 3.27 - Streaming: * Added XSPF playlist support. * Fixed playing MP3 files directly via HTTP. * Added HTTPS support via AmiSSL. * Revised stream URL parsing, especially during relocation. * Revised stream connection error display. * Fixed string conversion in case converting from UTF-8 fails. * Fixed connection timeout error requester. - ReAction: * Revised equalizer button height. * Made left hand side and right hand side buttons in main window the same width. * Time/remain toggle by clicking on time display. - Skinned: * Corrected display of character 'a-acute'. * Fixed right mouse button handling code. - OGG: * Fixed error handling while reading OGG files. - MPEG: * Fixed amp playback of MPEG 2.0 files (smaller frame size). - GUI: * URL string in URL requester is now static. - Features; * Added MIDI support by using GUS patches installed in SYS:Utilities/Timi/GUS. * Added raw ADTS (AAC) support for both streaming and file based playback 3.26 - Fixed MP3 length calculation (especially for VBR) in 68k version. - Improved MP3 header detection. - Fixed possible lockup when closing AmigaAMP. - Fixed playlist loading bug introduced with v3.25. - About requester now also shows processor architecture (68k or PPC). 3.25 - Added support for mpega.library. - Fixed closing files. - Improved stability of built in amp decoder. - Fixed file pattern so that dragging directories on AmigaAMP's AmiDock icon now works again. - Fixed loading of .pls files containing relative paths. - Fixed trailing zeros in day of month of recording filenames. - Fixed data curruption when deleting entries from the playlist. 3.24 - Completely reworked shoutcast streaming code. - Fixed handling of empty ID3v2 comment fields. - Fixed drawing of skinned equalizer "AUTO" gadget. But it doesn't do anything. :-) - Localized some more strings. - Fixed older OS4 version compatibility. - Fixed buffer overflow in MPEG reading routine. - Fixed redrawing current time display when changing skins. - Fixed background fill in playlist time display for spaces. - Refined ID3v2 tag reading and added ID3v2.2 support. - Fixed updating changed config file. - Changed layout of info window, added more fields. - ESC key now also closes the info and the prefs window. 3.23 - Fixed handling of application.library messages. - Fixed potential crash when rescanning skins or plugins. - Fixed handling of brackets in file names from command line. - Added support for COMM field in ID3v2 tags. - Fixed major bug in playlist clearing routine causing memory corruption. 3.22 - Added URLIdentifier and Description to RegisterApplication(). - Show requester when ReAction classes can't be opened. - Fixed broken plugin menu in ReAction mode after rescanning. - Added support for multimedia keys. - Updated spanish catalog. - Adapted code for AmigaOS 4.1 FE SDK 53.30. - Added full path to current file to streaminfo/trackinfo structure so that plugins can make use of it. - Fixed greyed out menus for info and playlist. - Fixed bug when loading skins with missing equalizer and playlist bitmaps. 3.21 - Replaced connection popup window with info in title bar (reaction) or info line (skin mode). - ReAction: Added iconify gadget to main window. - Fixed long filename handling. - Set default for "Show TagEditor" to FALSE. If this setting doesn't exist in the prefs file then info window will not be shown. - 68k: Fixed internal memory overflow when calculating plugin data. - "Engine" part of amigaamp.prefs is now compatible with AmigaAMP2. - 68k: Changed visualization routine to support high resolution and peak-dots. 3.20 - OS4/PPC Version: Added AAC streaming support. - OS3/68k Version: Fixed AHI reopen leak which led to lockups after playing some files in a row. - Fixed crash when trying to change buffer sizes on the fly. This feature is no longer available, AmigaAMP has to be restarted. 3.19 - Fixed window position saving bug. - Fixed DIRECTORY ToolType. - Extended support for BufferSize=File to more file types. 3.18 - Fixed infinite loop when updating prefs while AmigaAMP is running. 3.17 - Added proper 10s timeout to shoutcast connection routine. - Fixed buttons in main window if no button images could be loaded. - Fixed column widths in playlist window. - Localized ReAction Playlist and EQ windows. - Changed volume button size. - Changed playlist to show stream titles instead of stream URLs. - Moved Info/Equalizer/Playlist menu items from Project- to Window-menu. - Added AREXX commands for playlist: CLEAR, SELECT and REMOVE. 3.16 - Fixed rejecting unsupported AAC streams. - Fixed rejecting damaged MP3 files which contain HTML code instead of audio data. - ReAction: Added mute button, fixed menu deallocation bug. - Fixed restarting playback when selecting "Play" from the menu. - Fixed screen title of main-, equalizer- and playlist-window. - Dynamically enabling/disabling Prev/Next menu items. - Added ReAction Equalizer. - Added "Previous"/"Next" menu entries. - Improved playlist keyboard navigation. - Fixed handling of UTF-8 strings in shoutcast header. - Implemented workaround for ID3v2 tags which are marked to be ISO-8859-1 but are in fact ISO-8859-5 or similar. - Fixed long string leftover bug in tag reading routine. - Fixed UTF-8 support for reading OGG files. - Fixed scanning of stream length (=-1) from M3U files. - Fixed truncated genre display for shoutcast streams. 3.15 - Fixed disabled string gadgets in info window. - Unlock pubscreen when iconified. - Fixed AREXX open/add commands to work with playlists. - Changed playlist loading code to always accept headerless playlists when their extension is (.pls|.m3u|.playlist). - Completely revised charset conversion routines resulting in much better UTF8 support. - Revised plain M3U playlist loading, now also works via HTTP. - Fixed time display of long tracks in skinned playlist window, added time display to reaction playlist window. - Added automatic reconnect for shoutcast streaming if connection was lost. 3.14 - Completely revised PLS and M3U loading routines. - Allow loading a headerless playlist if it's opened as a single file via CLI, Eject or Drag&Drop. - Updated italian catalog. - Remember Info window position. - Added new iconset by TommySammy. 3.13 - Fixed some more playlist/directory handling bugs. - Fixed cover drawing and uniconifying of tag editor window. - Added pattern matching filter to modplug loader. - "Autoplay file" now also works for dragging files on the playlist window. - Dragging directories on AmigaAMP's AmiDock icon now works. - Switched play list handling to saving and loading WinAMP style .pls files. - Revised window depth arrangement and alignment code - Updated WinAMP5 skin. - Use mouse wheel in equalizer window to move sliders. - Fixed clearing of comment field when opening MP3 file without comment. - Fixed format display in main ReAction window. - Fixed initial playlist display in ReAction window. - Renamed info win to just "Info" because it can't edit tags any more. 3.12 - Fixed bad last minute bug in cleanup routine (this is why 3.11 was never released). Auto depth-arrange attached windows in skinned mode. - Revised window dragging routine in skinned mode. 3.11 - Added cover display. - Added "FilePath" config option. - Changed loading of whole directories to pattern matching files only. - Big internal code change, switched unskinned main- and playlist-window to ReAction. 3.10 - Fixed loading of skins that don't have an eqmain or pledit bitmap. 3.9 - Revised handling of wsz skins. - Fixed AppIcon position handling. - Fixed UTF8 conversion in FLAC metadata. - Automatically sort files alphabetically when loading directories. - Added new skin and iconsets by DjNick, TommySammy and Samo79. 3.8 - Automatically load whole directory if no specific file is selected. - Fixed crash when shuffling playlist while playing. - Fixed bug which left files open after unsuccessful playback. - Updated catalog files. - Fixed handling of brackets in directory names. 3.7 - Added TuneNet Plugin support. - Now using faad.library instead of built in AAC decoder. - Fixed automatic opening of playlist window in ReAction GUI mode. 3.6 - Added new GET... AREXX commands. - Fixed picky streaming sanity check. - Fixed 'disabled' status for tag editor Save/Clear-buttons. - Fixed crash when quitting AmigaAMP while visualization is stopped. 3.5 - Added Rec option, changed URL requester to ReAction. - Fixed tag editor layout. - Added MOD support through libmodplug. - Improved playlist scanning. - Added region.txt support for skins. - Fixed opening/closing Eq/Playlist when changing prefs while AmigaAMP is running. 3.4 - Added localization. - Switched about window and tag editor to ReAction. - Changed pitch step setting to 1/4 semitone (w/o SHIFT) or 1/16 semitone (w/ SHIFT). - Fixed HTTP redirection when requested file is a playlist. - Prevent playlists from being scanned for tags. - Fixed loading of skin colours (e.g. playlist background). - Added M4A support. Play your iTunes music! 3.3 - Fixed default analyzer colours for built in base skin. - Added "" file pattern option. - Added AsyncIO support to libsndfile reading routine. - Tag info window title now shows full path. - Only the first instance of AmigaAMP will load the default playlist. - Included new prefs editor. 3.2 - Removed QUIET ToolType, added SKINPROGRESS instead. - Reverted to loading skins and plugins from PROGDIR: by default. - Added unicode support to ID3v2.3, added basic ID3v2.4 support. - Fixed DSI error when starting AmigaAMP in skin mode but not all elements could be loaded. - Added OGG support. - Implemented loading base skin from memory. - Changed "shuffle" to "random play" behaviour. 3.1 - Fixed AREXX interface for OPEN and ADD. - Fixed opening files by clicking on their default icon. - Improved playlist navigation via keyboard. - Fixed mouse button handling routine. 3.0 - Initial AmigaOS4 release. Documentation ------------- This version DOES NOT fully replace AmigaAMP 2. It's a successor with some new features added and some old legacy code removed. It only supports AHI for playback. All decoders are built in, so there's no "External Engine" any more. The Record function will automatically record any shoutcast/icecast stream when switched on. It will create files in the directory specified as "Rec Path". It can be switched on or off at any time. It will NOT record normal files, just shoutcast/icecast internet streams. The MIDI support needs the GUS patches from the AmigaOS4 contribution package "Timi" to be installed in SYS:Utilities/Timi/GUS which is the default install path. AmigaAMP comes with its own timidity.cfg file which you can change to your liking. Sorry, no further documentation at the moment. Just play around with it a little bit -- I'm sure you'll figure out what it does. Legal ----- Fraunhofer IIS and THOMSON multimedia grant a free license to use their MPEG Layer-3 audio compression technology for this kind of software.