Change Log
version 1.44
released May '08- Server connection methods rewritten resulting in much faster and more
reliable communication.
- The TCP/IP communication mode of the server can now handle multiple connections on the same port. The consequence is that listeners are not needed anymore, and that all clients can connect to the same port number of a server. For each new client that connects a the server forks off a new instance to handle the clients requests.
- Connections between the Palm and the Server are now more robust which has allowed the removal of error catching code in the server. This resulted in much faster communication between the palm and the server.
- Removal of redundant playlist get command in palm has increased playlist tab response greatly.
- Fixed hidden bug in palm which was triggered when we didn't have have cover art.
- Communication modes streamlined: The server mode 4 has been
removed. We now have three modes in the server:
- 1 (RS-232)
- 2 (TCP)
- 3 (Combined RS-232 and TCP)
- 1 (RS-232)
- 2 (TCP)
- more flexible installation environment
- Previous versions of GD had to be installed in the directory /home/music and a user music had to be created. Both isn't necessary anymore. GD can be installed anywhere and no additional user account is needed.
- New installation script: A target directory has to be given as parameter to Install.sh, e.g. "Install.sh /usr/local/giantdisc"
- DB connection parameters in .gdconfig: It is now mandatory to set the parameters dbhost, dbuser, dbpasswd, dbname in .gdconfig. All programs that need to access the database directly need to read the connection parameters from this file.
- The environment variable GIANTDISC_HOME has to be set to the GiantDisc installation directory, i.e. the directory where .gdconfig resides. This can be done automatically by running the script "gdsetenv.sh" from the bin-directory (e.g. in your shell startup-file, like .bashrc or .login). This script then sets the environment variables GIANTDISC_HOME and PATH as needed by GD.
- gdsync.pl now requires two new parameters in .gdconfig: 'remuser' (the user account on the remote host under which GD is running) and 'remhomedir' (the remote installation directory). The two parameters 'remmysqlhost' and 'remport' are now obsolete, because the information can be found in the remote GD configuration file.
- New native shoutcast abilities. A new playertype 30 has been added which uses gdshout.pl to connect to a shoutcast server as a client. See gdshout.pl for more information on how to enable.
- New gdburn.sh which uses disc-at-once mode for writing. It now uses mplayer for file conversion. This change requires you to have enough free space in /tmp to handle a full cd (approx 700MB).
- miscellaneous changes/bugfixes:
- new protocol commands: i-loadtracks, i-shufflelist
- scrobbling now works without gapless playback
- fixed bug 1912039: gdexportdb.pl for ogg files now works properly
- fixed bug 1912224: gdexportdb.pl --replaygain now uses correct filenames
- bugfix: deleting an album now correctly deletes all its cover images
version 1.42
released October '07- support for the pnoJPGlib http://www.bin-people.de/pnoJpegLib/index.html which decodes JPEG images much faster (thanks to Mirko aka TinyToon). Just install the library pnoJpegLib.prc on your Palm. If GD can't find the PNO library, it automatically falls back to the old JpegLib.prc library.
- new options --forceremoteupdate and --forcelocalupdate added to gdsync.pl. They allow to unidirectionally update one server without taking into account modification dates of tracks, albums and files. These options are particularly useful as backup and restore operations.
- enhanced functions for saved playlists:
- saved playlists are now synchronized between GD servers with gdsync.pl
- the "save playlist" dialog allows to search for playlist names to make it easier to extend or replace existing playlists
- whenever a playlist is saved, it's total playtime is calculated. The total playtime is displayed in the search results
- previous versions had the problem, that hitting the search button without specifiying search criteria tried to list all tracks or albums. This could take a long time or even lead to a crash. This has been fixed now with the new option Limit. It is impossible to have more than 200 tracks in the search result, and the error "refine your query" should not appear anymore.
- the entire project including all source code is now available through subversion at berlios.de (svn checkout http://svn.berlios.de/giantdisc/trunk).
- added configuration files option to gdd-listener.pl (thanks to Phil)
- version numbers added to the server and Palm client. A warning message is displayed, if the versions of the client and server don't match. Also, gdsync.pl will refuse to synchronize two servers with non matching versions.
- in all TCP/IP communication modes the transmission speed of images has been considerably increased. The raw image data is directly sent to the palm, without uuencoding and -decoding anymore. Serial connections still use the slow uuencoding transmission.
(note for developers: I had to add a new command class to implement this. In addition to 'i-' (instruction) and 'r-' (request) there is now also a class 'b-' which means binary request.) - an authentication system has been introduced to prevent the database and audio files from damage. You can now allow your friens, wife or children to play with GD without risking any damage ;-)
- grant or deny users the permisions to: edit albums, edit tracks, save playlists, record CDs, shutdown the server
- user account and permissions are defined in a configuration file (see .gdconfig for examples)
- If you don't need an authentication system, then add the following line to .gdconfig
perm:default = edalb, edtrk, edpls, edcom, record, shtdwn
This restores the old, unprotected behaviour you know from earlier versions.
- Changed gdplayd.pl to use mplayer for all stream playback including Real Audio streams.
- Changed gdplayd.pl to support .pls style playlist files (as seen on shoutcast and other internet radio stations). In the past GD users had to download the pls file, extract the stream connection info and enter that into GD. This would often lead to broken streams when the on-line station in question would change or move their streaming servers. Now we simply put the url for the pls file into GD and mplayer then figures out how to connect to the stream. Much more reliable and much simpler for the end user.
- Changed gdplayd.pl to optionnally use aplay for alsa systems and rawplay for oss systems. Currently only affects flac playback. Much better integration into alsa systems (and aplay is installed on alsa systems by default). Added ability to add playerparams for rawplay or aplay.
- Changed gdstream.pl to use mplayer as a generic all-purpose streamer. Since it now handles pretty much every possible format including internet-streams and real-audio.
- Added flac tag support to gdexportdb.pl.
- Added replaygain calculation support to gdexportdb.pl
- Cleaned up gdconfig to be clearer about what changes can be made to the audio decoders.
- Added support for composer field in track and albums. The server, the Palm client, the simple web client and the communication protocol have been extended accordingly.
- Communication protocol has been cleaned (unused functions were removed) and documented. See http://www.giantdisc.org/man/man6.php#Communication_Protocol_API_. This has also been done as a preparation to new WebServices APIs (SOAP or REST) that are planned to be implemented in the future
Important Note for Developers: Due to the addition of the composer field and the cleaning, the protocol is not compatible to previous versions. Clients should be adapted to the new protocol
- In addition to the edit track details window (which can be password protected) a show track details window has been added. It shows more information than the edit window. Usually, the edit window can now only be reached via the show window (as it has already been the case with album records).
- The edit track detail window has been split into two windows. This has become necessary to be able to edit more fields than before (i.e. composer infromation)
- The show album detail window now only shows a small image of the cover. If the cover button is clicked a new window opens and shows a 300x300 pixel sized cover image (it was 200x200 before). Tapping in the middle of the cover image closes the window, tapping the right/left part of the image displays the next/previous image of the album booklet (if available). Note that when you restart the server for the first time, it will generate a 300x300px scaled version of all available cover images. This may take some time, be patient.
Note: The larger cover image can only be displayed, if enough free heap memory is available in the Palm. The total heap memory size is fixed, and does not depend on how many applications are installed. If not enough memory is available, a smaller cover image is loaded and displayed. For example, on Tungsten T and Tungsten T2 models (which only have a heap memory of 800kB) a 200x200 cover image will be displayed instead of a 300x300 image. - Save Playlist: new option to save/append currently played track (instead of entire list) to a saved playlist.
- New view in browse window: "Albums by Recording Date"
- CDDB_get is now an optional package, and is only needed if CDs are to be ripped and recorded.
- ... and many smaller improvements and bugfixes.
version 1.40
released September '05The Palm client of version 1.40 at least requires PalmOS 3.5
- client-server connection: TCP/IP port numbers can be changed now
- multiple client-server connections can now be managed in the client
- Extension to gdupload2player.pl that uploads audio files to a USB attached mass storage device (contributed by Mark Alston)
- Extension to gd-maintenance.pl: With option --checkfiles it goes through all track records in the database and verifies if associated audio files exist (based on Mark Alstons contribution).
- The connections manager now allows to define a default connection. With a default connection, the Palm client will automatically connect to the server on startup without user interaction.
- Extension to gdimport.pl: Added interactive import with option -j and import a bunch of cover images for multiple albums in one step with option -im (contributed by Gabriel Indurskis)
- Display cover images in the Palm: in the album search results, in the playlist (cover of currently played track) and in the album details window.
Prerequisites: a high resolution color Palm model with a screen resolution of at least 320x320 pixels, Yves Piguet's free jpeg library JpegLib.prc (JpegLib.prc is included in the distribution), the Netpbm tools and the tool uuencode are required on the server - Wolfgang Lohwasser has submitted an updated version of his LIRC client that also works with the most recent versions of GD.
- Playlist screen completely redesigned (based on your feedback and suggestions in the forum)
- the playlist size can be changed - choose long or short playlist with the toggle playlist size button in the lower right corner of the dialog.
- if the short playlist is selected, the album cover for the currently playing track can optionally be displayed - toggle album cover view with the according button in the lower right corner of the dialog (this option is only available on hi-res Palms)
- the font size of the track list can be changed (search dialog - menu UI setting). You have the choice between 3 font sizes: standard, small and tiny (this option is only available on hi-res Palms)
- The connection id in the menu bar is now a control button that allows to change the connection to the server
- A playlist has now 5 different repeat modes: 1: stop at end of playlist, 2: repeat playlist, 3: when reaching the end of the playlist, randomize its order and restart, 4: stop after current track, 5: repeat current track
- It is now possible to control a single server concurrently by multiple clients. Each client has to be attached to a command-listener, which serialize the incoming commands and forward them to the server. Details are explained in the manual
- Integration of Phil's extension to the routine that reads the inbox directory.
- The font size of the search results and the browse dialog can now be set to normal, small or tiny. The font sizes can be individually defined in the menu item "interface settings"
- in order to be compatible with mysql 5.0 some db fields had to be renamed:
recordingitem.repeat -> recordingitem.repeating
track.condition -> track.quality - ... and many bugfixes ...
version 1.33
released December '04Note: Version 1.33 will be the last release that supports PalmOS 2 devices like the PalmPilot Pro. I want to add color and Hi-Res support in future versions, and there is no easy way to do his while remaining compatible with PalmOS2 (without source code forking).
- Jajouka - a graphical GiantDisc client for Linux and Win environments implemented in Python. Contributed by Andy Balcombe (see Contributions and GD clients)
- Philipp Heckel has made a nice and considerably enhanced web client (see GD clients)
- GD on LTSP mini-HOWTO, contributed by Sebastian (see Contributions)
- updated LIRC-client, contributed by Wolfgang Lohwasser (see Contributions)
- ALSA sound support, contributed by Mark Alston. Set playertype=1 in the configuration file .gdconfig to use it.
- PalmOS2 and PalmOS3 client apps merged into a single binary. The PalmOS2 communication routines are still available in the communication settings as 'RS-232 old OS2 lib'
- Program parameter handling cleaned and streamlined
- The command line and configuration file option sounddevice has been renamed to playerdevice
- Support added for mplayer
- Manage Cover/Booklet Images:
(Incomplete) Support to store and manage cover and booklet image files of an album (see also manual).- Dialog in the Palm client to scan cover/booklet images using sane, with 7 predefined scanning operations.
- Display the cover/booklet images in the web-interface.
- Using the web-interface, import cover images that are stored on any external web server.
- Also synchronize cover/booklet images in gdsync.pl
See also configuration options scancmd, scanres, scanimgx/y/w/h in the configuration file .gdconfig.
- Wolfgang Lohwasser has contributed an improved version of his LIRC client. Download it from the contributions section.
- New browse options in the web interface: Albums by Title, Tracks by Genre and Albums by Genre. (see also manual).
- the server synchronization script gdsync.pl now supports ssl connections (option --ssh)
- 2 new sort options in the search dialog: sort albums/tracks alphabetically by artist or by title.
- id3v2 tags support. Currently, only id3v2 import (Palm-interactive and command line with gdimport.pl) is implemented. The package id3lib is required, including the example programs id3info and id3tag. mp3info is still required to determine bitrates and playlengths.
- Marks gapless playback patch included. Gapless playback is activated with the option gaplessplayback = 1 in .gdconfig.
- Marks real audio stream extension included. It requires the text-mode real media player trplayer.
- Marks automatical cover download script added to the contributions section.
- gdburn.sh can now create audio cd's with mp3, ogg and flac files (updated according to Marks patches)
- Added playlist resume after server restart, including optional playback autostart. Shuffle mode is also restored if it was active before. See parameter playlistresume in the config file.
- Cleaned up database: obsolete columns removed from tables player and playerstate
- Every track that has been played is now logged in the db-table playlog. This information will be used in the future to retrieve your favourite or forgotten tracks.
- Other configuration files than the default .gdconfig can be loaded. Use the parameter --cfg <file> for the main server script gdd.pl. The system now sets more default values. gdd.pl doesn't crash anymore if the default configuration file .gdconfig doesn't exist.
- Edit album details: two textlines for title and artist. Now also shows the album id (cddb-id)
- Playlist screen enhancements: summary on one line, jump to playlist position, show/hide columns of playlist items
- Gabriel's patches to the import script added: enhanced import of ogg files (requires ogginfo version 1.0), import of album cover images, enhanced import of compilation albums.
- Added the script gd-maintenance.pl to check the database consistency. (more functions will follow...)
- Added Marks TCP/IP patch. Server: commmode=4, Palm: TCP/IP keepalive (new). This seems to be the most stable TCP/IP communication method.
- Added Marks playlist sleep function
- ...and many many bugfixes ...
version 1.32
released December '03- baud rate for RS-232 mode can now be changed in the Palm client
- support for multiple GiantDisc server instances on a single machine. This looks like a trivial feature, but took me a very long time to find a robust and efficient solution. Read the manual if you are interested in technical details.
- new support for network attached streaming client barix exstreamer (see manual).
- hardware buttons can be associated to diverse GD functions (change dialog windows, play controls, volume control). See menu item "Interface settings" in Search dialog and manual
- Web interface: button added that downloads all tracks of an album (thanks to Merlot for this contribution)
version 1.31
released July '03- enhanced TCP/IP communication support for Tungsten T. New communication mode TCP/IP keep-alive that uses a single socket for a full session instead of a socket for each client-server transaction (Thanks to Viktor for this contribution).
- Almost full support for the FLAC audio format. Import of flac metadata (batch shell import and interactive palm import), recording/encoding CD's in flac format, syncing flac files between two GD servers.
- Complete redesign of the search dialog: It is considerably more functional, and it should also be more intuitive to use than before.
- More efficient database structure (indexes added to frequently used table columns, playtime stored in HEAP table)
- New support for genres for albums. Genre for albums are calculated from the genres of their tracks. The album genre is the most specific genre that covers (including sub-genres) at least 60% of its tracks. The album genre is updated whenever a track genre is modified. The new section albums-by-genre has been added to the browse directory (Created by menu item update browse dir in the Palm client)
version 1.30
released March '03- Support for TCP/IP communication. This allows to control a GiantDisc server over USB, IRDA, and also wirelessly over Bluetooth, W-LAN or GSM. Many configurations have been successfully tested, but there is still a Problem with the Tungsten T over Bluetooth (will be fixed in next release).
- new method to interactively import albums over the inbox. Directories below ~music/inbox/albums that contain audio files are interpreted as albums and can be imported using the menu item 'Read inbox album...' in the recording screen.
- Popup window added to search and browse dialog with direct access to the most important playlist functions (see manual)
- minor bugfixes (i.e. partial cd recording bug, two browse position bugs)
- several minor corretions in the web interface, especially the 'settings' section. All download methods work for IE6, Mozilla 1.2 and Winamp. The manual has been updated
- a possibility to define a genre translation table has been added to the web interface. With this translation table id3 genre tags can be translated to GiantDisc genres, when mp3 files are imported
- moving tracks from the search screen to the playlist now automatically starts playing, if the playlist was empty
version 1.20
released December '02- (almost) full support for ogg vorbis audio compression format: playback, recording, importing, syncing, ... (see manual: audio formats)
- Web interface: the browse page now supports browsing for entire albums
- complete redesign of the script gdsync.pl, that synchronizes two independent GiantDisc Servers. Enhancements:
- the synchronization is fully symmetric now - it doesn't matter on which host it is executed
- new test option (--test) that shows all actions that would be performed, without changing anything
- if just a few tracks and audiofiles are updated, it is much faster than the old implementation (several 100 times faster!)
- several minor bugfixes
version 1.13
released October '02- complete redesign of the web interface, now with a new browse function.
- frequency recalculation bug fixed in gdimportXX.pl functions.
- the script gdimportmp3.pl has been extended, that a directory (containing mp3 tracks) can be specified. This allows to import a bunch of albums with the command find . -type d -exec gdimportmp3.pl -a {} \; in a shell (see manual)
- the import of a mp3 track doesn't make the Server crash anymore, if no year was specified
- additional support for the mp3 encoder lame (the still supported notlame is the older version of lame). If you are upgrading GiantDisc you have to make sure that the encoder specified in .gdconfig corresponds to the one that is installed on your system.
- enhanced definition of default values when a CD is recorded (see manual)
version 1.12
released July '02- streaming support added - allowing to play icecast broadcasts, internet radio etc (see manual)
- leading apostrophe bug in browse dialog fixed (thanks to Bob for the precise bug report)
- enhanced CDDB/FreeDB support added (see manual)
- support for small text LCDs and keyboards (requires LCDproc, see manual)
- new option defrecbitrate in the configuration file .gdconfig that specifies the default encoding bitrate when CDs are recorded
- on some newer versions of mysql the script make-tables causes permission errors. In such a case, the alternative make-tables-locinfile should be used (needed for installation only)
- pages of web interface: extensions changed from php3 to php
- installation script Install.tcsh ported to bash
- more efficient handling of genre and languages, leading to quicker client app starts
- A Jump-to-top button has been added to the browse screen that scrolls to the top of the list and closes all open branches.
- menu function Update browse directory extended. Now also creates human readable links to all tracks (flat - without subdirectories) in the directory ~music/browse. (Thanks to Olav Wölfelschneider for this contribution)
- various smaller bugfixes
version 1.11
released May '02- mp3 files can now be trimmed (see manual)
- the browse-dialog now has a lookup field, to make quick jumps in long artist or title lists (see manual)
- menu function Update browse directory extended. Now also creates human readable links to albums in the directory ~music/browse.
- current volume can be saved as soundcard default volume
- volume controls moved to separate window (interactive slider control if PalmOS > 3.5) (see manual)
- graphically displays song position in playlist dialog (interactive slider if PalmOS > 3.5)
- more efficient memory handling and one minor bugfix
- reload genre and reload languages functions added to search dialog menu
version 1.10
released Mar '02- various smaller bugfixes
- additional track selection dialog that allows to browse tracks and albums (see manual)
- volume controls added to the playlist dialog (increase volume, decrease volume, mute button)
- you can now upload the current playlist to a mp3 player Rio PMP300 (see manual)
version 1.00
released on christmas '01- Palm client sourcecode now available under GPL (open source)
- a specific command (other than usershutdown) can be specified to shut down the server (see line shutdowncmd = in the file .gdconfig of the distribution)
- recording from inbox works again (sorry for this recently introduced bug)
- some bugfixes and enhancements
- new random search button allows to browse randomly trough tracks, albums and artists (see manual)
version 0.97
released Nov '01- enhanced album query method allows quick retrieval of a large number of albums (see manual)
- enhanced selection feedback in track lists (playlist and selection form)
- progress dialog added to track recording form
- implementation of a shuffle play mode to play a large number of tracks at random without making a playlist (see manual)
- various smaller bugfixes and optimizations
- implementation of a finger interface to play tracks with large play control buttons (see manual)
version 0.96
released Oct '01- implementation database backup script gdbackup.tcsh
- lyrics import script gdimportlyr.pl added
- synchronization support to exchange mp3 files and the database content between two independent GiantDisc servers (see manual)
- column modification date added to album table
- several bugfixes
- enhancements and bugfixes in the genre selection dialog
- predefined queries added to selection menu to support database completeness and consistency (list of tracks without genre or year, and noisy or damaged tracks)
version 0.95
released Mar '01- Import script gdimport.pl: 1) bugs fixed, 2) album import implemented, 3) can now link to imported mp3 files instead of copying or moving them.
- Rewind and Fast-Forward Buttons added (playlist form)
- minor bugfixes.
- Export current playlist to outbox directory. Tracks are exported as links to mp3-files.
- Tracks in playlist can now be reordered (move any track to top of playlist)
- Added menu item (see menu 'Commands' in Select form) to export database information as mp3 id3-tags.
- The Palm can now shut down the server (see menu 'Commands' in Select form)
version 0.94
released Jan '01- A small progress indicator is shown on the top of the Palm display when the Palm is recieving data from the server.
- Menu items added to record form, to open/close CD tray
- Command line options added to main server script gdd.pl.
- GiantDisc can now run in local network with multiple music play stations attached to a server (see manual). All GiantDisc processes now communicate over command line parameters and database records instead of temporary files.
- Track detail dialog has now a button to show the album that is associated to the track
- Support for variable bitrate recording added
- If the current track has lyrics associated, a lyrics button is shown in the playlist, right above the track details.
- Upgraded to support the newest version of mp3info (at least version 0.8.2 is required now)
- Album query now behaves as documented
- Delete a track from harddisk and database
- Delete an album and it's tracks from harddisk and database
version 0.93
released Oct '00- First (preliminary) version of a web interface added. Implemented functions: query tracks, edit track details including lyrics, play tracks by downloading mp3 files (see manual)
- Lyrics support added (see manual)
- Partial CDDB/FreeDB support added (see manual)
- Menu Update browse directory in select dialog added. This creates human readable links to mp3 track in the directory ~music/browse.
- view and edit album record details (album artist & album title) implemented
- Minor corrections in the edit track details dialog
- Recording dialog memory hole fixed and code redundancies cleared
- Playlist support added: save, query and delete playlists
- Minor corrections in the track list display routines
- All strings (names, titles, playlistnames, genres etc.) can now contain single and double quotes
- Help texts updated
version 0.92
released Aug '00- server script output can now be supressed or redirected to a daily logfile (see file .gdconfig)
- implementation of jump to first/last/middle track in playlist
- Added genre modification routines: Delete, Move, Rename and Add genre
- Added music type modification routines: Delete and Add music type
- Genre list calculations now faster and simpler.
- no more crashes if the Palm is not connected to the server
version 0.91
released July '00- batch import of id3 tagged mp3 files
- Server side playlist management implemented
- Scroll keys implemented in select, playlist and record form
- Delete old mp3 file when track is regrabbed
Early developments
First simple Palm client software: June '99
Project start: December '98