## Version 4.2.6 - 2003-10-06

- Fixed problem of odd length MP3s causing hiccups while synced.
- Fixed leading double slashes in pageheader for some skins.
- Fixed scrolling problem in playlists when using the remote.
- Added French localization improvements by Nicolas Guillemain.
- Reordered the shuffle links on the EN and Default skins to match the remote..
- Under panther, the archname has changed. Allow for both darwin and darwin-thread-multi-2level as the dir name for finding binaries.
- Fixed a problem where WAV, MOV, Ogg and AAC files were being cut off.
- The progress indicator and remaining time still isn't correct, but the audio works.
- Quick And Dirty solution to moving iTunes Music Libraries around.
- Handle multiple and corrupted ID3 v2.1 PIC tags.
- Fix a debugging message for the timers.
- Fix a divide by zero error (though I'm not sure how to trigger it...)
- Added feature to control display size when powered off, separately from the size when powered on. Added player setting for this to menu.
- Submitted fix for some versions of oggdec.
- Fixed a potential memory leak (in some versions of Perl) in the ID3 parser. Should be faster too.
- Make sure we use the default port (9090) for CLI under Windows.
- Adding submitted Dutch localization from Paul Roomberg.
- Supress warning on zero length WAV files.
- Danish translations courtesy Morten Fischer-Madsen.
- Accepted patch to sort albums properly when shuffling by album.
- Do more error checking when trying to obtain local IP addresses.
- Accepted patch for improved slimp3.pl script.

## Version 4.2.4 - 2003-09-10

- Norwegian translation improvements, courtesy Georg Engstrand.
- The MP3::Info library didn't handle the unsynchronization bit in the ID3 standard. Now it does. Should fix a few broken MP3 files.
- Fixed a problem where the Windows service would stop if the user logged out.
- Some debugging code re-enabled for debugging streaming.
- Added some version string information to the Windows executables.
- Build using the perferred ActiveState releases: perl 5.6.1 (build 635) and perl dev kit 5.2.0 (build 520). ActiveState Perl 5.8 has a serious bug in opening remote streams.
- Fixed a bug in the scan code that caused scanning recursively through windows shortcuts to fail the second time.
- Updated Swedish from Johan Hubner and Andreas.
- Updated the FAQ.
- Dark Side of the Moon is a great album. Don't put clicks and pops between the "tracks" if using a cue file. It turns out that seek() won't seek to a fractional byte.
- Fixed another problem with CUE files. We were inserting the occasional space character between songs. This forces the MP3 decoder in SLIMP3 to resync, which is usually fine, except with CUE files. So now, we do some extra work to send an even number of bytes of contiguous data.
- Another fix for the number button functions when browsing the music library from the remote.
- Fixed a problem where we should reset at the beginning of the current playlist when we've reached the end even if we've got repeat off.
- Make sure we are non-blocking on outgoing HTTP streams for all platforms.
- Point the update code to the new domain so it doesn't interfere with our web logs.
- Make the fade resolution a bit higher which should make pausing and unpausing a bit smoother.
- Fixed a problem where the audio would continue if we're buffering while we try to pause.
- If we're scanning and you hit pause, don't bother fading.
- Added a bunch of obscure Mac file type codes.
- If itunes has a song and it is missing some id3 tag information, the content type could have been lost. Reuse it if we need to.
- Default to 320kbps transcode bitrate for all transcoding. It's cheaper (computationally) and transparent to all but the most golden of ears.
- When we restore the saved playlist at startup, restore the play position.
- Added a path to LAME installed with the iTunes LAME encoder, which is a neat bit of software.
- Don't close a streaming HTTP connection if there's just no data. Close it if it's not connected.

## Verison 4.2.3 - 2003-08-08

- Localization
  - German localization patch from Gernot Ficker.
  - Craig Brannan submitted a patch which I rewrote to allow the user to override the strings files (with files named strings.txt, slimp3-strings.txt and .slimp3-strings.txt) in the executable, home or OSX library directories.
  - Nicolas Guillemain updated the french translation for us.
- Player Interface
  - Fixed nasty display problem when browsing an album.
  - If you have the sort by filename option turned on, then you can use the number buttons to jump alphabetically when browsing the file system from the remote. Funny windows quote characters can be mapped to apostrophes.
  - When showing search results, we were sometimes doing funny things to the titles.
  - Rework the rewind and scanning code. Press and hold to start scanning FWD or REW. Press and hold again ( or continue holding) to speed up the scan. Press PAUSE or PLAY or the opposite direction to end scanning. Max out ffwd at 256x
  - When we get to the end of the playlist and repeat is turned off, stop playing, then reset at the beginning.
  - Fixed a problem where choosing to play an album in the path: Genre -> All Albums -> specific album wasn't playing the right thing.
  - Fixed a problem where long, doubled, briefly-displayed lines were jumpy.
  - Added a player setting (available from the Player Settings web page) to have volumes synced as well as the playlist.
  - Felix Mueller discovered and fixed some rounding errors in the progress bar.
- Windows
  - Postulated fix for windows shortcuts not being recursed properly during scans and recursive plays.
- Debugging
  - Give some more warning about missing items requested from HTTP server.
  - Remove an extraneous print command used for debugging.
  - Try harder to update CVS for nightly builds.
  - Use portable strftime formats. Fixes crasher on 10.1.5 and bogus logging on many platforms.
- Networking
  - Don't open up our old port of 1069 anymore. Use the latest client.
- Formats
  - Fixed ogg a bit. Use oggdec instead of ogg123, as it's part of the standard ogg release. Fixed a problem where we weren't quoting the path to ogginfo...
  - The reliable i2c support is, well, unreliable. Turning it off to address the problems we're seeing with player lockup.
  - Improved performance of transcoding to work on windows.
  - Append .exe to the executable name when looking for the binary.
  - Fix the WAV parser to read and ignore unknown chunks, rather than crapping out.
  - Temporarily added -x option to the LAME command for Ogg playback, as most of this happens on x86 machines. This will be cleaned up later.
- Streaming
  - We may not know if a stream is a playlist or a file or what, so we need to check to see if it's an HTTP URL when browsing and do the right thing.
- Performance
  - Simplify doublesizing. All characters are handled through the hash now. Added accessor functions to add new characters to the hash or update existing ones. Kerning has not changed, except to avoid it if the last character was a digit. Added back in the newTimer return value so that timers can be killed specifically.
  - Fixed the problem that was locking up players. We were sometimes sending volume commands too often. Now we throttle at 10 per second.
  - Reworked the fade_volume parameters to give a overall time rather than a fade amount per tic.
  - Reworked the persistent syncing code. Fixes a couple of problems including the doubling of playlists upon every server restart.
  - Only select on streaming sources, not pipes because it's not appropriate and it doesn't work on windows.
  - Get rid of the die() calls in stream.pm to keep the server from crashing. We've got a rare bug that was causing death while synced, usually after many hours. It will spew out some diagnostic information so maybe we can figure out what's going on here.
  - We don't need to clear the caches if we are just forgetting about a single item.
  - Ignore reserved folder names if they are indeed only folders.
  - Jason Holtzapple submitted fixes for YEAR and TRACKNUM tags.
  - Sync states are now preserved across server restarts.
- Web Interface
  - Many, many from Kevin for Fishbone.
  - Fixed problems with cue files.
  - Put a link to our website so folks that are trying out the software can buy the darned thing.
  - Fixed a small layout problem in the default status header.
- Linux
  - RPM version numbers can't have - in them, but they can have _
- Automation
  - The button command was only accepting function names, not button names. Now it accepts button names, and if that doesn't work, looks for the appropriate button function.
  - Fixed a logic bug in the "listen" cli command.
  - When asking for a player name or address via the CLI, you can pass the ID or the index to get a valid answer.
  - Added CLI command "player ip" to return the ip address.
  - KDF fixed a problem in the CLI where the player name command could crash the server crash.
- Firmware
  - Added a command line option to the firmware updater to change the player's MAC address (which is only really useful if you have the wrong kind of display in your player). Usage: update_firmware.pl --newmac=00:01:02:03:04:05
- Documentation
  - Make sure the button list is consistent in the HTTP and CLI docs.
  - Point the FAQ at the corporate website for information about wireless.
  - Rober Moser documented his text input module saying: What is this? Docs before code, what could that maniac be thinking?!?
  - I clarified the CLI and HTTP docs to reflect that fact that we usually use MAC addresses to identify players these days.
  - Tweaked the FAQ layout and updated the questions themselves.
- MoodLogic
  - Patches to fix MoodLogic from Gerald at MoodLogic. Do make sure you have updated to the latest version of MoodLogic if you are using it.

## Version 4.2.2

- Mac OS X
  - Fixed a problem where the installer wouldn't start on pre-Jaguar OS.
  - Apple's protected AAC files (.m4p) can't be played, so they shouldn't show up.
- Web Interface
  - Fixed a problem where some pages were getting truncated.
  - Improved performance of loading playlists in the web inteface.
  - Fixed a problem where blank titles might appear in the web browser.
  - Fixed a problem where radio station titles might have reverted to the URL.
  - Fixes to the Fishbone skin.
- Player Interface
  - In double-size mode, show more feedback, especially when you press PLAY or ADD.
  - Fixed a problem with alignment in double-sized clock.
- General
  - Fixed a problem where the server might unexpectedly stop.

## Version 4.2.1

- Mac OS X
  - Fixed a problem where certain iTunes playlist would appear empty.
  - Fixed the ability to set your rendezvous name to nuthin' to disable rendezvous.
- Unix
  - Victor came through with a fix to the RPM for default file ownership.
- Player Interface
  - Plugins are sorted like everything else.
  - Added shuffle by album to the shuffle menu.
  - Fixed the crasher in the Information.pm plugin by disabling the code that assumes there's only one directory with Plugins in it.
  - Gave some version numbers to the standard plugins.
- Web Interface
  - Added support for ID3v2.2 cover art.
  - iTunes lies about cover art and says it's JPEG when it's clearly PNG. We see through this.
  - Don't look up cover art if we're browsing a playlist.
  - Fixed a problem where the metadata from streaming stations was getting lost.
  - Patch from KDF to fix a problem with Fishbone.
- Streaming
  - Some web servers lie about content types and call everything text. We guess the content type from the suffix in this case. Fixes a bunch of streaming stations.
- Localization & Internationalization
  - Updated French translation from Nicolas Guillemain.
- Misc
  - Also, updated the reference from Extras to Plugins.
  - Consistent handling of IP addresses. We only cache the paddr for a client, rather than the ipaddress and the paddr. When a player's IP address changed, they were getting out of sync and could actually crash the server. As a side effect, it's a bit more efficient in packet handling.
  - Abstract out the defaultName from the given name for a player so we can give it a default name and know if it's using its default name. Looking right at IP addresses isn't the right way Don't keep duplicate (IP address and MAC address based) entries in the client hash.

## Version 4.2

- Mac OS X
  - Added support for AAC (.m4a) and QuickTime Movie files under Mac OS X. Requires the installation of LAME to work. Due to restrictions from Apple, Apple Music Store files (.m4p) do not work.
  - To work around a bug in the Mac OS X System Preferences application, make the Firmware Updater description field a bit bigger so it doesn't get cut off.
  - iTunes now expresses the current Music Library folder, so we use that as a default.
  - The 60's playlist has a very funny apostrophe in it, which didn't get converted from unicode properly. Now it does.
  - Mac users can now install plugins in ~/Library/SlimDevices/Plugins and /Library/SlimDevices/Plugins. They can also install skins in ~/Library/SlimDevices/html and /Library/SlimDevices/html, helper executables (such as LAME) in /Library/SlimDevices/bin and ~/Library/SlimDevices/bin and IR files in ~/Library/SlimDevices/IR and /Library/SlimDevices/IR.
  - iTunes playlists with slashes (and other funny characters) in the titles now work correctly.
  - If you specify an empty Rendezvous name for your server, it won't start the mDNS responder and thus not appear via Rendezvous.
- Windows
  - Problems with Windows shortcuts have been improved.
- Unix
  - Log files specified from the command line are now appended by default.
  - Log file format includes time as well as date.
  - RPM has been improved to install server as root, run by the user named "slimp3".
  - SIGHUP causes the server settings file to be reloaded.
  - Victor Brilon fixed several issues with the RPM.
- Player Interface
  - Fixed the doublesized search entry page nastiness.
  - Jacob Potter fixed the Shooter Plugin.
  - Fixed a problem with reloads on the SenseMaker skin.
  - We now identify players by MAC address, not IP address, so if the IP address changes, the player settings follow it. This change may require you to adjust your player settings again.
  - Robert Moser fixed the dreaded cursor flicker bug! Stud!
  - Added ability to use menu function to go to arbitrary plugin. Example: button = menu_PLUGIN.SlimTris
  - Added function to invoke arbitrary function in an arbitrary mode. Example: play.hold = modefunction_PLUGIN.SavePlaylist->save
  - You can now shuffle by album or by song. Press the shuffle button to rotate through these settings. Courtesy Guy Albertelli II.
  - Press and hold the ADD button to play the selection next instead of at the end of the playlist.
  - The Information plugin has been updated with a lot more information.
  - Don't always jump to the top of Home whenever you navigate there.
  - When using the number buttons when browsing the music library, they should scroll proportionally (1 to the top, 0 to the bottom, 2-9 proportionally in between.)
  - Added an additional player setting to disable auto brightness control altogether. This will reduce annoyance in some wives.
  - Fixed a problem in song title search results where they weren't sorted. Now they are.
  - Fixed a bug where pressing play on Browse Genres->SomeGenre->All Albums->All Songs would fail.
  - When the screen saver kicks in, it should jump to the currently playing song if you are already in the Now Playing playlist.
  - Fixed a problem where the current song might be thought to be after the last song.
  - Improve the plainTitle to be more friendly for songs that don't have ID3 titles defined. _ are turned to spaces, HTTP urls are cleaned up and displayed.
  - The clock display is centered correctly when in double-height mode.
- File Formats
  - A bit of work trying to make ogg playback more robust.
  - Note: LAME doesn't know about every sample rate, nor does it handle mono input well. Transcoding files with these characteristics (11.025ksamples/sec, mono) won't work.
  - Fixing Ogg support on the Mac. For some reason, the byte order was being swapped from native order. Now we use native order in both LAME and ogg123.
  - Fixed the problem where transcoded songs (Ogg, WAV, AIFF, M4A, etc...) were getting cut off.
  - Improved (but not fixed completely) progress information for transcoded songs.
  - Did you know that WAV files can have ID3 tags in them? I didn't, until this morning, cover art and all. Neat.
  - Adding composer tag from id3 v2.4 support.
  - When available, support for the TSOP, TSOT, TSOA ID3v2.4 tags to provide explicit sorting information for artist, title and album names.
  - Fix some path handling code for both windows and unix. Look for binaries like ogg123 and lame in the path and some well known places. Under windows, use the File::Which::which() routine to dig it up.
  - We now add a tag to the cache which indicates whether we've loaded the tags from the file. Don't bother reloading if it has been done before.
  - We weren't displaying the composer information from ID3 v2.2 tags, just 2.3.
- Web Interface
  - Adding contributed Fishbone (Kevin Deane-Freeman) and xml skins (Fred Thomas).
  - There is now a built-in debug log facility, available from the web interface. View the log at: http://server:9000/log.txt by default the last 100k of log is kept around for viewing.
  - There is now an option to disable the adding of composer, band and orchestra entries from ID3 tags to the Artists list.
  - Songs can be deleted matching specific genres artists albums or song titles from the current playlist. This is available in some skins.
  - Skins can now tell if the player is off.
  - Custom file names can be specified for cover art in the settings.
  - Fred Thomas cleaned up the skin files to do the escaping of the player id's in the files themselves instead of in the perl code.
  - Removed translation of \ to / in M3U parsing. This was causing duplicates in song counts and the info database.This was REALLY old code, so I'm not sure if it will break any playlists, but I expect not.
  - Case-insentivity and article handling has been speed up and made more consistent.
  - File URLs displayed when getting song info under iTunes fixed.
  - PLS files can now be renamed from the web interface.
  - Statistics changes: Performance improvements in calculations of statististics. We don't calculate the per-list-item statistics unless the skin specifically requests them. We don't display the statistsic in the web interface unless they are available. The Stats aren't available until the scan is complete.
  - Display the ethernet MAC address and IP address on the player settings page.
  - Kevin Deane-Freeman updated Fishbone skin.
  - Removed some restrictions in the names of playlists. Now you just can't have control characters, slashes, backslashes or dots in the names.
  - Moved transcoding settings to their own settings page.
  - Robert Moser updated the button mapping documentation.
  - The total time statistic wasn't being reset at the beginning of a rescan.
  - Added the ability to adjust parameters for all html (and xml and text pages) in a skin. Create a template file called "include.html" at the root of your skin. This file is parsed for every html and xml response. Put a line in it like:
    [SET itemsPerPage 10000000]
    in there to set the items per page to be essentially unlimited. You can also put [EVAL ] items in there if you want to do some calculations or other adjustments for every page.
  - Guy Albertelli II submitted a patch that allows us to display artist, album and song counts while browsing by genre artist and album. Neat.
  - Improved the consistency in the UI for handling sync groups in the player settings page. Synced players appear as one virtual player.
  - Added cover art to missing places in the EN and Default skin, including the browse browse music folder view.
  - Clicking on the currently playing song title in the Default skin bring up the song info page
  - Don't truncate suffixes in folder names.
  - Wake up the brightness if the player starts or stops from the web interface.
  - Add All Songs to Album browse page.
  - Added Thorston Faltings' Purple skin, which is quite nice.
  - Added hitlist page to EN skin.
  - Remove the border around the cover art in the default skin.
  - The server now checks (by default) every day for software updates and notifies the user. There's an option to disable this feature in the Additional Server Settings are.
- Streaming
  - Robert Moser updated the streaming code to improve blocking under Perl 5.8 on Windows and to make it cleaner all around.
  - The URL for streaming from the server to an MP3 player can be "http://server:9000/stream.mp3" or just "http://server:9000/stream"
  - CPU usage for streaming has been reduced through optimization.
  - Added a SliMP3::Protocol::idle() routine that is safe to call in order to give audio streaming some time while blocked in other areas, such as loading up long song search results. Used for in browseid3 and playlist page generation now. Could be used elsewhere.Any incoming IR data is queued up later, but other UDP packets are processed immediately. Don't use this routine if you are in the middle of modifying the playlist.
  - Don't allow sync between HTTP and SLIMP3 clients, as it doesn't work.
  - Some protocol, i2c and decoder cleanup from Sean.
- Localization & Internationalization
  - French localizations have been improved.
  - Lieven Hollevoet also provided us with a strings.txt localization tool.
  - Some more German improvments, courtesy Thorston.
- Automation
  - Significant improvements and updates to Fred Thomas' XML skin. There is now XML skin documentation available in the technical documentation area.
  - The commands "playlist play <item>", "playlist add <item>" and "playlist insert <item>" now work on songs, playlists or directories. The "playlist append" and "playlist insertlist" commands are now depricated.
- Documentation
  - The printed User Manual has been updated.
  - The FAQ has been updated substantially.
  - A remote streaming instructions page has been added to the documentation.
- Misc
  - Added some additional feedback if firmware update fails.
  - The option --d_server prints out details about the stages of startup and shutdown so we
    can see what's taking so long.

## Version 4.1b1

- Mac OS X
  - Fixed support for iTunes 4.0 library importing. (Note: This fixes support for MP3s, AAC is not supported yet.)
  - Fixed a problem with firmware updates on Mac OS X version 10.1.5.
  - Update the iTunes rescanning to trigger on the file modification date changed and 60 seconds passing since we last finished scanning.
- Windows
  - The Windows installer will stop the SLIMP3 service before upgrading.
  - Cosmetic improvements to the installer.
  - Fixed a problem where Moodlogic could cause the server to stop unexpectedly.
  - Fixed a problem where the server could exit if it found a corrupted WAV file during the startup scan.
  - Robert Moser provided a fix for a problem with leading slashes in some web links for songs when UNC paths were used to specify a music folder.
- Unix
  - Added Rendezvous support for i386-freebsd and i386-openbsd, courtesy Mark Langston.
- Player Interface
  - Made sorting a bit smarter for lists of songs (search results and the like) so the songs are now sorted by the title when appropriate.
  - Rob Funk suggested a fix to the problem where shuffled playlists didn't shuffle the first track.
  - The PAUSE button wasn't properly disabled when the player was off. This meant that you could resume playback without turning on the SLIMP3. Fixed by adding pause.single and pause.hold in the Default.map file.
  - Patch accepted to fix time slippage in alarm clock and to fix volume display in alarm clock when in double-height mode.
  - When the player is off and the brightness is set to dark, don't reset the brightness unless the user presses the brightness button or turns the player on.
  - Performance improvements to fix a problem that was causing server slowdown when double-height text was being displayed.
  - Press and hold ADD when browsing the Now Playing playlist to delete the song and move it to the Zapped Songs playlist for further inspection.
- Web Interface
  - Added the display of cover art to the song information and browse album screens for the Default and Lite skins. If there's an image in the ID3 tag, use it. If not, then look for a file called cover.jpg, then one called albumartsmall.jpg, then one called folder.jpg in the same folder as the file in question.
  - Fixed a problem where jumping to an album title that began with an article would jump you to the wrong place.
  - Help pages now have the appropriate look and feel for the default skin.
  - There were a couple of extra spaces in popup menus in the setup pages sometimes. Not anymore.
  - Rob Funk also suggested that we do allow recursing into playlists in the saved playlist folder, but not in the music folder. He's smart.
  - Fixed a dumb problem where LT and GT functionally were switched.
  - Adding facility for plugins to have preferences on the plugins page of setup. Plugins using this facility will need a setupGroup procedure which returns a hash ref to the group parameters desired and a hash ref to the preferences to be controlled.
  - Added an CSS entry for <code> in the Default css style sheet.
- Streaming
  - Fixed a number of problems that were causing some streaming stations to fail.
  - If an icy-name: header is sent in a remote stream, use that as the name.
- Localization & Internationalization
  - Improved German translation from Thorston Faltings.
  - Removed some extra spaces from the strings.txt file.
- Automation
  - Added the suggested "playlist save" command to save playlists from the command line. Also, added a syntax to load a saved playlist by it's simple name "jazz" instead of "__playlists/jazz.m3u" for simplicity and brevity.
  - Added a --d_command option to watch the command execution.

## Version 4.0

- Mac OS X
  - User Wolfgang Rutter found that iTunes importing breaks if you have perl 5.8 installed and provided a fix.
- Windows
  - The Windows options to stop server when quitting are only useful and enabled when not using the Windows service version of the SLIMP3 server software.
  - The Windows service would sometimes not respond if there were no players connected. Now we force the server to wake up every second to make sure it's responsive.
  - The installer won't prompt for a Library or Playlists folder when upgrading.
- Linux
  - Fixed a problem where the /etc/sysconfig/slimp3 file was rewritten badly in an upgrade.
- Player Interface:
  - Fixed a number of bugs with the new Alarm Clock feature.
  - Fixed a minor issue with buffer calculations for streaming.
  - Non-moodlogic users can now press and hold PLAY to play.
- Web Interface
  - Fixed some cosmetic issues with the SLIMP3 Standar skin.
  - Fixed some cosmetic issues with the SenseMaker skin.
  - The XML skin is now hiddend from the user interface, but is still available.
  - CSS for the Default skin now are inlined for faster loading and better rendering.
  - Hashed passwords are no longer displayed.
  - Password protection settings are now grouped together to reduce confusion.
  - When you switch skins, now provide a link to reload the whole page to see the new skin.
  - Song info now shows last modified date for song files.
- File Formats
  - Made parsing invalid CUE files more robust.
  - Fixed a warning that happened when you tried to get info on an MP2 stream or file.
  - Fixed a problem where some WAV files were confusing the server. WAV files are completely ignored unless LAME transcoding is turned on.
- Streaming
  - The server sends an iTunes-like identifier to streaming stations in order to get them to send to SLIMP3. This fixes many problems with streaming stations.
- Localization & Internationalization
  - Improved localization in the Default skin.
  - Improved translations for German.
- Automation & Networking
  - The no longer crashes when scanned by a port scanner.
- Player Firmware
  - Firmware is now officially version 2.2, which is identical in function to 2.2a1.

## Version 3.1b5

- Mac OS X
  - Fixed a bug in the installer where the user could end up with two copies of the software installed.
- Windows
  - Improvements to the installer to make it easier to set up your music library folder and playlist folder preferences.
  - The MoodLogic support now handles the case where the MoodLogic database is in an inconsistent state. Relaunch the MoodLogic software and it will fix the database automatically, then re-enable the MoodLogic support from the SLIMP3 server settings.
  - There was a memory leak happening in the SLIMP3 Windows service for each page that was reloaded via the web interface. This has been fixed and as a side effect, the web serving should require less CPU load.
- Linux
  - Fixed a problem where the /etc/sysconfig/slimp3 file was rewritten badly in an upgrade.
- Player Interface:
  - There is now an Alarm Clock setting, available from the player remote interface! Choose a time and a playlist to start and turn it on to wake up to your favorite tunes. Thanks to Kevin Deane-Freeman for his great work on this!
- Web Interface
  - If the user powers off while playing an HTTP stream, stop the stream.
  - Fixed a problem in sorting when displaying a long list of albums as the result of a search.
  - Cosmetic improvement to the display of song and album information on the default home page.
  - Nick Balestra has submitted a new skin: SenseMaker.
- File Formats
  - Sped up reading and writing of M3U and PLS files.
- Plugins
  - Some improvments to the Plugins architecture, making it easier to build complex plugins.
- Player Firmware
  - Fixed a problem where the player wouldn't arp for the server address often enough.
  - Updated IP packet format to conform to RFC3514
  - Firmware is now version 2.2a1.