home *** CD-ROM | disk | FTP | other *** search
- Changes done in the following versions:
-
- 1.00-1.10
- ---------
- * Created
-
- 1.11
- ----
- * Fixed a bug in layer 2 routine, which made these files sound real weird.
- * Added 8-bit sound support.
- * Added support for ARMs without SMULL.
-
- 1.12
- ----
- * Tuned many things to cajole the compiler into making code I like. This has
- speeded up everything (especially layer 3) quite a lot.
- * The program simply got too fast, which triggered a latent bug, that has
- now been removed.
- * Added an "auto queue" function to the frontend. This queues the next file
- in the same directory if enabled.
- * Added some system vars, that can control the buffer size and the volume.
-
- 1.13-1.14
- ---------
- * Fixed a bug that could happen if none of the system vars were defined.
- * Various speed improvements. Not much, but it's the right direction.
-
- 1.15
- ----
- * Forgot to make the ID3 genre byte available in the file info block.
- * Changed Auto Q to continue into directories it may meet while looking for
- the next file. It will also go up and continue the scan in the parent when
- meeting the end of a directory.
- * Mono was untested and of course it didn't work. It seems ok now, but my
- collection of mono files is very much smaller than stereo, so no
- guarantees.
- * If a tag is present, the player will stop looking for frames when getting
- close enough to the end of the file (and only garbage can be left). Some
- programs seem to align the tag on a 16 bit boundary (guess what machines
- these come from), thus leaving a malformed header just before it.
-
- 1.16
- ----
- * By request, an iconbar icon was added, so you can close/open the window
- without quitting/restarting the app.
- * Some more checks on the frame headers added, so it skips more silly things.
-
- 1.17
- ----
- * Changed the skipping of daft RIFF-headed mpeg streams, so it doesn't skip
- quite so much.
- * More header checking, some more malformed streams work now.
- * Argh, the 'clean' clipping brought back the mono bug. Now gone again.
- * An error now stays displayed for the appropriate time, also if the playback
- stops.
- * Changed some things to make the claims in the help file true, especially
- wrt pausing.
-
- 1.18
- ----
- * Changed the cpu verification code. The plan is to have only one module soon.
- * Changed the autoQ scan to look for files of same type rather than files of
- type AMPEG.
-
- 1.19
- ----
- * MPEG 2.0 layer 3 sounded weird (untested), and a bug was removed that fixed
- it.
- * Made the frontend quit if the module disappears.
- * AMPlayer_Info now returns useful info at all times (e.g. the latest error
- can be returned even if it made the player stop, which it couldn't before).
- * "Stream error" replaced by 3 more descriptive messages.
- * Survives more stream errors now - some weird ones could provoke a data abort
- which wasn't very nice.
-
- 1.20
- ----
- * Put a limit on the number of files that will be skipped while scanning for
- a file to queue (with Auto Q). If that limit is reached, auto Q is turned
- off. Currently the limit is 30, but will be user-adjustable at some point.
- * Added the option of killing the module at the same time as quitting the
- frontend.
-
- 1.21
- ----
- * Skipping back and forth was somewhat erratic at large buffer sizes, so now
- it discards the buffer when the target point has been located. This improves
- response, but means that only fast filing systems can supply enough data
- to have sound while skipping.
-
- 1.22
- ----
- * Changed the SWI and error number bases to allocated ones. (&52E00 and
- &816B00 respectively).
- * Added code to check if SVC stack is almost empty when getting a callback.
- This may get round some NFS/ShareFS problems, but I can't test it myself.
- * Changed the frequency selection so it gets closer to the desired one if
- the exact match isn't available.
-
- 1.23
- ----
- * Changed the frame->time formula so files that last a long time should not
- make the counter wrap around (though I have none of those, so it's untested)
- * Changed the frontend to show the _module_ version to avoid confusion.
-
- 1.24
- ----
- * Did a bit of research, and this enabled me to get some, if not all, of the
- files working, that previously had strange bubbly noises in them. This is
- apparently streams made by Xion and AudioCatalyst.
-
- 1.25
- ----
- * Most of the time, the stack depth checking didn't actually work. This has
- been fixed, and the checking method has also been changed (it now registers
- a callafter to re-register the callback, to avoid getting into infinite
- loops).
- * Finally found the cause of the wimp errors that could crop up when stopping.
- Sadly, the fix is not exactly what I would have wanted, because it means that
- the dynamic area is present until the module is killed (instead of only while
- playing). It does, however, give you the ability to drag the buffer size,
- also when it isn't playing.
- * The stack check level has been made adjustable (probably temporary until a
- nice overall value is found).
- * Added AMPlayer$FileBuffer that controls the input buffer size.
-
- 1.26
- ----
- * Added another auto-queue state to the frontend, which is entered when no
- file could be queued. This means that you stay in auto-queue mode, instead
- of the previous behaviour where it would be turned off.
- * Added the -Cue switch to the *AMPlay command.
- * Added an *AMPause command.
- * Added an *AMLocate command.
- * Added stuff to do with upcoming plugins. It isn't complete, don't use it.
-
- 1.27
- ----
- * Added plugin support.
- * SWI AMPlayer_Info did not preserve all the FP registers in some cases.
-
- 1.28
- ----
- * Extended plugin support.
- * Added SWI AMPlayer_FileInfo
- * Adjust-close on frontend window opens the directory containing the file
- currently playing (if possible).
- * Frontend now uses AMPlayer_FileInfo to verify files when it is looking for
- the next one to queue.
- * If file starts with an ID3v2 header, it will be skipped (how many headers
- and stuff are people going to add before they realise that it's a new
- file format and call it something else?)
- * Variable bit rate MP3 files now work.
- * AMPlayer$Volume is updated when the module is killed.
- * ID3v1.1 tags are now supported (track numbers are now returned)
- * 'Shutdown complete' now stops playing.
- * Less RMA 'thrashing' (reallocation of offset cache is now 'blocky')
-
- 1.29
- ----
- * ID3v2 support added.
- * Resizing dynamic area no longer causes music to stop.
- * Fixed aborts that happened occasionally with varying layers and bitrates.
- * Switching between tracks played at different frequencies is smooth and
- no longer gives helium-voices, or mega-lethargic-voices.
- * AMLocate command now accepts hh:mm:ss and mm:ss instead of the awkward
- hh[:mm[:ss]] format.
- * High and low bitrates described for variable bitrate files
- * MPEG 2.5 at 8kHz and 12kHz now supported.
- * Stereo is around the right way.
- * VBR support for 'total time' added.
- * *AMInfo can now be passed a filename to provide information on that file.
- * Removed API information from !Help
- * Created AMPlayerSWIs manual (Andrew Hill)
- * ID3v2 frame data is now 0 terminated.
-
- 1.30
- ----
- * Fix for misused Xing VBR headers (filesize given as zero rather than
- omitted).
- * Minor correction of a link in the StrongHelp manual.
-
- 1.31-1.33
- ---------
- * ARM coded many routines for speed.
- * Revamped build system.
- * Added application builds (for development only)
- * Added SharedSound support.
- * Added Streaming Interface.
- * Added MetaData Interface.
- * Added Internal Event System.
- * Reworked read_frame routine to back out on lack of data.
- * Reworked read_frame routine to cope with skipping broken data.
- * Reworked all code to run from ROM (Except that using the 8 bit sound system).
- * Added support for Multiple Instantiations.
- * Any pending callbacks are killed on finalisation.
- * Reinit active sound systems on Sound Started Service.
- * Moved AMPlayer module into !System, and added dummy AMPlayer module to
- load the correct variant for the CPU in use automatically.
- * Adjust click on 'AutoQ' clears the queued item
- * Only AMPEG files can be added to the playlist.
-
- 1.34
- ----
-
- [Internal unreleased version]
-
- 1.35
- ----
- * Improved multiple instantiation behaviour - now sends module instantiation
- suffix to SharedSound as part of handler name.
- * Added callback 'safety net' (if AMPlayer comes unthreaded, we rethread on
- a once-per-second basis).
- * Corrected stereo ordering in AMPApp.
- * Added sound system config SWI, together with 'User Sound System' SWIs; this
- enables decode-but-not-play operation.
- * Pulled many tables into the code; this increases ROM usage (or RAM in the
- softload case), but is paid back many times when we start multiply
- instantiating the module. MI is now MUCH faster as no tables are generated.
- * Removed stray SMULL in the synthfp code.
- * Improved EOF handling in streaming case.
- * Bugfixes to frame decoding code; more resistant to broken streams.
- * Added Instance SWI calls.
- * Added instance details to service calls (instance handle in R8).
- * Responds to Sound system layers starting/stopping - so reiniting SharedSound
- (or other systems where supported) does not stop playback. AMPlayer will
- also degrade its sound system if SharedSound is killed, reverting when
- SharedSound returns.
- * Fix for shared sound 'volume scale+mixing' fill code.
- * Fix for RIFF WAVE headers being incorrectly skipped (would previously skip
- starts of some tracks). Also allows us to correctly perform FileInfo
- requests on such files.
- * AMPlayer_Plugin, AMPlayer_Control and the streaming SWIs have had their
- APIs rationalised. We now support directed queries to AMPlayer.
- * The AMPlayer$Volume system variable reflects the base instantiation only,
- and new instantiations receive the current base instantiation volume as
- their initial volume.
- * Improved internal handling of stream starvation.
- * Service_AMPlayer reason code 6 (Buffers becoming free) added.
- * *AMLocate can now take a -ve or +ve offset to move relative to the current
- position.
-
- 1.36
- ----
- * AMPApp: Fixed -w with no output file.
- * Fixed 8 bit sound system detection.
- * Improved FP speed (synth routines).
-
- 1.37/1.38
- ---------
- * AMPApp: Corrected sound system detection to allow all versions to run on all
- machines.
- * Added transient playback. Transient playback instances will automatically be
- terminated when the playback completes.
- * Documentation cross references improved and AMPlayer_Control documentation
- corrected.
- * *AMPlay can now take -Transient to use transient playback.
- * Sped up FP code.
- * Sped up 32x32=>64 routines in AMPxxx6 builds.
- * Added 2x decimation code to FP and 6 builds.
- * AMPlayer$DecimationThreshold now used to set the sample frequency at which
- decimation should kick in.
- * Fixed layer 1 Mono and joint stereo.
- * Fixed (we think) Layer 3 8000Hz.
- * Fixed infinite loop in ID3v2 code.
- * Added magic protection to directed instance calls.
- * FrontEnd: Can select an instance to work with; streaming instances will
- have their buttons greyed for operations which are not applicable.
- * FrontEnd: Ctrl-drag file will play file 'transiently'. Mostly only useful
- for testing.
- * Directed calls are now protected against invalid handles being passed to
- the module.
- * FrontEnd: Indication of frequency improved.
- * On shutdown request we pause music, which prevents a remount of the disc
- after the disc is dismounted; we already stop when shutdown is complete.
- * New huffman table lookup code (htc case).
- * Shrunk huffman tables to halfword (ht case).
- * Shrunk alloc tables from 2 words to 1 word by packing.
- * New bitbuffer functions.
- * Simplified logic in III_dequantize_sample and III_dequantize_sample_ms.
- * Applied ARM Ltds trick for reducing table size - thanks to Andre!
- * Applied single buffer change to dct36 - thanks to Andre!
- * File and stream handling merged. No current benefit, but should allow
- improvements later.
- * AMPlay now takes -next to start the queued track
- * AMVolume can accept +volume or -volume to apply relative volume levels.
- * Stupid bug fixed in III_dequantise_sample_ms.
- * Side info region overflow bug fixed in layer 3; appears present in MPG123
- too.
- * FrontEnd: Pause-Transience bug fixed (paused tracks would cause transience
- requests to be ignored)
- * Addition of AMPlayer_Control buffer size in blocks, as well as bytes.
- * Potential fix for streaming problems (eof being set on unstarted streams)
- * Fix for null instance names (now appear as 'Unknown').
- * Fix for streaming problems; pending queue was being held with 0 terminator;
- thus a race condition existed in which blocks were incorrectly marked as
- being free.
- * Fix for MPEG 1, layer III 64kbps stereo files which exhibited bit errors
- and chirps.
-
- 1.39
- ----
- * Fixed bug in layer II decoding that caused bitrate/layer errors and/or
- crashing.
- * Fixed AMPApp WAV reversal overrun code.
- * Fixed Decimation being stuck with a threshold of 0.
-