MintAMP - Mini Internet Amiga Media Player
==========================================
MintAMP is a lightweight multiformat audio player and internet radio client
for classic Amiga computers. It uses fixed-point decoders designed for m68k
systems and outputs directly through Paula using audio.device, so AHI and a
sound card are not required.
This archive contains two complete MintAMP drawers:
MintAMP-v1.4.0-68030 For 68030 and 68040 systems
MintAMP-v1.4.0-68060 Dedicated build for 68060 systems
Open or copy the drawer which matches the processor installed in your Amiga.
The 68060 edition contains a dedicated 68060-safe and 68060-optimised MP3
path. It is not intended for 68030 or 68040 processors.
Each drawer contains three player editions:
MintAMP ReAction/ClassAct edition
MintAMP-GT GadTools edition for systems without ReAction
amiga_mp3dec.fastexp Command-line edition
Features
--------
- Local MP3 playback using the Helix fixed-point decoder
- Dedicated 68060 MP3 build with optimised low-rate synthesis, Huffman,
mid/side stereo and planar sample conversion paths
- Local and streamed AAC-LC ADTS/AAC+ playback
- Local FLAC playback
- Local Ogg Vorbis playback using the fixed-point Tremor decoder
- Classic WMA playback (WMAv1/WMAv2 in ASF containers)
- Uncompressed PCM WAV playback (8/16/24/32-bit, mono or stereo)
- Amiga IFF-8SVX playback, including Fibonacci-delta compression
- Bundled modular AAC, FLAC, Ogg, WMA, WAV and IFF decoders
- HTTP and HTTPS internet radio: MP3, AAC/AAC+, Ogg Vorbis and lossless
FLAC, with .pls/.m3u station links followed to the stream
- Radio Browser station search and editable favourites
- Live ICY station, artist and title information
- Station names and titles in any language shown in the Amiga's Latin-1
fonts: curly quotes and dashes become plain ones, other accented
letters lose the accent, Cyrillic and Greek are spelled in Latin
letters, emoji are left out
- Station artwork using JPEG, PNG, WebP, ICO and a subset of SVG
- M3U and PLS playlists of files and radio stations
- Iconify to a Workbench AppIcon while playback continues
- ID3 tag display and track ratings
- Configurable output rate, quality, channel mode and buffering
- Reduced-rate and reduced-subband modes for slower systems
- Direct Paula audio output; no AHI installation required
Requirements
------------
- AmigaOS 3.0 or later
- Motorola 68030 or better
- Fast RAM is strongly recommended
- A running TCP/IP stack providing bsdsocket.library for internet radio
- AmiSSL v5 for HTTPS streams
- ReAction/ClassAct v44 classes for the MintAMP ReAction edition
Use MintAMP-GT if ReAction/ClassAct is not installed. Local playback does not
need a TCP/IP stack or AmiSSL.
Installation
------------
Extract the complete archive. Its root contains:
MintAMP-v1.4.0-68030/
MintAMP-v1.4.0-68060/
MintAMP-v1.4.0-68030.info
MintAMP-v1.4.0-68060.info
Choose the drawer matching your processor:
68030 or 68040:
Use MintAMP-v1.4.0-68030
68060:
Use MintAMP-v1.4.0-68060
You may leave both drawers together or copy only the required drawer to your
preferred location.
Keep every file inside the selected drawer together. Its layout is:
MintAMP-v1.4.0-68xxx/
MintAMP
MintAMP.info
MintAMP-GT
MintAMP-GT.info
amiga_mp3dec.fastexp
ArtCache/
decoders/
aac.decoder
flac.decoder
ogg.decoder
wma.decoder
wav.decoder
iff.decoder
Start MintAMP or MintAMP-GT from Workbench. For internet radio, start the
TCP/IP stack first. Install AmiSSL from util/libs/AmiSSL-v5-OS3.lha to play
HTTPS stations.
Command-Line Edition
--------------------
amiga_mp3dec.fastexp is the command-line edition. Open a Shell, change to the
selected MintAMP drawer and use --play followed by a local filename or direct
stream URL.
Examples:
amiga_mp3dec.fastexp --play "Work:Music/example.mp3"
amiga_mp3dec.fastexp --play "Work:Music/example.aac"
amiga_mp3dec.fastexp --play "Work:Music/example.flac"
amiga_mp3dec.fastexp --play "Work:Music/example.ogg"
amiga_mp3dec.fastexp --play "Work:Music/example.wma"
amiga_mp3dec.fastexp --play "Work:Music/example.wav"
amiga_mp3dec.fastexp --play "Work:Music/example.iff"
Direct internet radio:
amiga_mp3dec.fastexp --play "http://example.com/direct-stream"
amiga_mp3dec.fastexp --play "https://example.com/direct-stream"
amiga_mp3dec.fastexp --play "http://example.com:8000/listen.pls?sid=1"
Station links that name a .pls/.m3u playlist or redirect are followed to the
stream, as in the GUIs.
Useful options include:
--rate 22050
--mono
--stereo
--fast-lowrate
--fast-mem
--quality 0
--subband-cap 16
--buffer-seconds 4
--volume 80
Example reduced-rate playback:
amiga_mp3dec.fastexp --play "Work:Music/example.mp3" --rate 22050
--stereo --fast-lowrate --fast-mem
Run amiga_mp3dec.fastexp without arguments to display the complete option
list.
68060 Edition
-------------
The 68060 drawer contains a dedicated MP3 build created for real 68060
hardware. The new path avoids expensive instructions which require software
emulation on the 68060 and adds selected 68060-clean assembly optimisations.
The 68060 build includes:
- Dedicated 68060 polyphase synthesis
- Fast reduced-rate playback paths
- Optimised MP3 Huffman decoding
- Optimised mid/side stereo processing
- Optimised planar 8-bit sample conversion
The established 68030 decoder path remains available in the 68030 drawer.
Internet Radio Notes
--------------------
MintAMP plays HTTP and HTTPS MP3, ADTS AAC/AAC+, Ogg Vorbis and FLAC
streams, and follows .pls/.m3u station links and redirects to the stream.
Radio Browser search, favourites, ICY metadata and station artwork are
available in both GUI editions.
Version 1.1 increases the compressed radio input buffer and improves network
worker scheduling, rebuffer handling and HTTP/HTTPS read throughput.
Lossless FLAC stations play too, whether they send FLAC inside Ogg (as most
Icecast stations do) or plain FLAC. Pick "FLAC" as the codec in the radio
search to find them. A 16-bit/44.1 kHz FLAC station needs roughly 1 Mbit/s;
a 68060 with a fast network card is recommended. 24-bit and high sample-rate
stations are reduced to 16 bits and the selected output rate, and at 2.5-3.5
Mbit/s usually exceed what a classic Amiga's network can sustain.
Very high bitrate streams can still depend on the radio server, TCP/IP stack,
network conditions, processor speed and selected output settings. A 128 kbit
MP3 station is the safest choice for uninterrupted playback on classic
hardware. Streams at 192, 256 or 320 kbit may require a lower output rate or
may occasionally rebuffer.
HLS/M3U8 streams are not supported. Internet stations must provide a direct
MP3, ADTS AAC/AAC+, Ogg Vorbis or FLAC stream URL, or a .pls/.m3u playlist
naming one.
Playlists
---------
The playlist window (both editions) holds local files and radio streams
together:
Add Files add audio files from a file requester
Add URL add the stream typed in the URL field (Return works too)
Load... open an .m3u, .m3u8 or .pls playlist
Save... save the list; name it .pls for a PLS file, otherwise it is
saved as an extended M3U. Station names are kept.
From Favs append your radio favourites to the list
To Favs add every stream in the list to your radio favourites
To export your favourites, press From Favs and save the list. To import a
station list, load it and press To Favs.
A playlist file can also be opened straight away: pick it in the main file
requester, give it on the command line ("MintAMP Work:Radio/Jazz.pls"), or
double-click its icon after setting the icon's Default Tool to MintAMP or
MintAMP-GT. Started that way, it begins playing at once.
When a station's .pls lists several servers and the first cannot be
reached, the next is tried automatically.
Radio Favourites
----------------
Open the Internet Radio window and press Favourites to see them.
Add Fav with a search result selected, saves that station; while the
favourites are shown, saves the stream that is playing (or was
last played), whether it came from a typed URL, a playlist or
a forum link
Name/Rename type a new name for the selected favourite (Return works too)
Remove deletes the selected favourite
Move Up/Dn changes its place in the list
Favourites are saved straight away. Up to 50 can be kept.
Format Notes
------------
AAC support is for ADTS files and direct ADTS/AAC+ streams.
FLAC decoding is considerably more demanding than MP3. Usable settings depend
on the processor, file complexity and selected output rate.
WMA support covers the classic WMAv1 and WMAv2 codecs in ASF containers. This
includes compatible WMA Standard files, but not WMA Pro, Lossless or Voice.
Source Code
-----------
Source code, build instructions and development information:
https://github.com/boingball/MintAMP
Credits
-------
Amiga port, GUI front-ends, decoder integration, internet radio, artwork and
m68k/68060 optimisation by Darren Banfi (boingball).
Audio decoder components:
- MP3: Helix fixed-point decoder from RealNetworks
- AAC: Helix AAC through ESP8266Audio by Earle F. Philhower III
- FLAC: libfoxenflac by Alexander Stoeckel
- Ogg Vorbis: Xiph.Org Tremor via Phil Schatzmann's Arduino port,
together with Xiph.Org libogg
- WMA: Rockbox fixed-point libwma, derived from FFmpeg's WMA decoder
Artwork decoder components:
- JPEG: picojpeg-compatible decoder; picojpeg was created by Rich Geldreich
- PNG: LodePNG by Lode Vandevenne
- WebP: compact implementation using parts of Google's libwebp reference
decoder under its BSD licence
The MintAMP-specific ASF/WMA integration, WAV/PCM and IFF-8SVX decoders, and
ICO, SVG and compact WebP artwork handlers were developed with assistance from
Anthropic Claude and OpenAI Codex.
These components remain under their respective licences, including the Helix
RPSL, LGPL, BSD-style and LodePNG terms. See the licence files and source
repository for the complete terms and source code.
History
-------
1.4.0 Lossless FLAC internet radio, including FLAC inside Ogg, the form
most Icecast stations use; "FLAC" is a codec choice in the radio
search.
Station links that point at a .pls or .m3u playlist now play, such
as Shoutcast's "listen.pls?sid=1" and internet-radio.com playlist
generator links. If the first server in a station's playlist is
down, the next is tried. The command-line player follows these
links too.
Playlists can hold radio stations as well as files: Add URL, load
and save .pls as well as .m3u, with station names kept. Playlist
files open from the main file requester, the command line or a
Workbench project icon.
Radio favourites: Add Fav bookmarks the stream that is playing,
favourites can be renamed, removed, reordered and exported or
imported through the playlist (From Favs / To Favs), and up to 50
can be kept instead of 20.
Station names, now-playing titles and playlist titles are converted
for the Amiga's Latin-1 fonts instead of showing '?' for every
character outside it: curly quotes, dashes and "..." become plain
ones, other accented letters lose the accent, Cyrillic and Greek
are spelled in Latin letters, emoji are left out, and other
scripts show a single '?'.
Fixed: streams in a playlist, and MintAMP-GT favourites, started
without the stream check and failed on redirects and playlist
links; station icons sent with chunked HTTP encoding did not load;
FLAC files and streams with blocks over 4608 samples (ffmpeg at
88.2 kHz and above) stopped after a moment; adding, removing or
moving a favourite could freeze the radio window for up to a
minute while every favourite was saved again; some AAC stations
were reported as an unsupported codec (AAC sent with checksums, or
with a missing or wrong stream type), and AAC streams could
occasionally fail to start.
1.3.2 Builds again with the GCC 13 Amiga toolchain as well as GCC 16: the
release link no longer stops with "expected exactly three
___free_all list-head addresses".
1.3.1 MP3 files at 8, 11.025 and 12 kHz (MPEG-2.5) now play. They used to
decode to silence, and the GUI showed the wrong rate and bitrate
for them.
The 68060 edition's AAC decoder no longer uses slow software
multiplies for noise substitution (PNS) or temporal noise shaping
(TNS).
Song titles now show for stations that send their metadata as a
RadioInfo XML document (e.g. Bauer's Portuguese stations).
Double-clicking a station in the Internet Radio browser now plays
it, without pressing Play.
1.3.0 Added CPU-specific AAC, FLAC, Ogg Vorbis and WMA math helpers.
The 68030/68040 editions retain the fast full-result MULS.L path.
The 68060 edition now uses hardware-only partial products, avoiding
software emulation of register-pair MULS.L in all four decoders.
FLAC LPC restoration now has a real implementation behind FLACASM.
WMA FFT, MDCT, complex multiplication and windowing use the new path.
Corrected decoder ASM build wiring and added bit-exact arithmetic
tests.
1.2.0 Added Workbench AppIcon iconification to both ReAction and GadTools.
Expanded and repaired the GadTools Internet Radio browser, including
selection highlighting, list scrolling and persistent searches.
Refined the GadTools player and radio layouts and combined Stereo,
Mono and Fake stereo into one output selector.
Fixed Fast RAM input preload for modular local decoder formats and
exposed the actual Fast RAM and Paula buffer usage during playback.
1.1.0 Added a dedicated 68060 drawer with 68060-safe MP3 synthesis and
selected Huffman, mid/side and planar conversion optimisations.
Added both 68030/68040 and 68060 editions to one distribution archive.
Improved HTTP and HTTPS radio throughput, worker scheduling, input
buffering and rebuffer behaviour.
Increased the radio input ring to 256 KiB.
Improved station artwork refresh when windows overlap the player.
Restored station artwork when replaying the previous radio stream.
Retained the established 68030 decoder path in its own drawer.
1.0.0 Initial Aminet release.
|