Palm Client
From giantdisc
Contents
|
Overview
The GiantDisc Palm client software has been designed to entirely control all important functions of the GiantDisc mp3 jukebox. It's purpose is to replace the usual computer input and output devices like keyboard, mouse and monitor because you usually don't want to see them in your living room (which is probably the preferred location to listen to your music).
Before starting the software make sure the Palm is connected to the server and the server script gdd.pl is running. If the Palm client is started for the first time, you will get an error message and a dialog box which allows you to specify how the Palm should communicate to the server.For efficiency reasons the GiantDisc client holds local copies of the genre-, language- and types-list. Whenever the application is started on the Palm, it checkes if one of the lists has been changed on the server since the last GiantDisc session and reloads them if necessary. After the lists are loaded, the genre hierarchy is built which always takes a few seconds. If you can remove unused genres, the application will start up more quickly.
The Palm client software provides dialogs to search and browse for mp3 tracks, albums, playlists and artist names, it allows to rearrange tracks into self defined playlists and to play them with the usual music playing controls like pause, next track, fast forward etc., and it finally can record tracks from audio or mp3 CD's from a harddisc directory. You can switch between these dialogs by tapping on one of the five tabs in the top right corner.An important design goal of the GiantDisc package is the ability to manage thousands of tracks. The challenge is to organize the tracks in a way that allows to retrieve them efficiently and in a user friendly way. This is achieved by storing detailed informations about tracks and albums in a high performance SQL database. It is highly recommended to store with the tracks informations as precise and correct as possible. Otherwise you risc to be unable to ever retrieve some tracks in your system.
The Palm client software is basically nothing more than an interface to the server's functions. The server holds the database with track, album, playlist etc. informations, and tracks are decoded and played on the server. The server does not depend on the Palm client software. Therefore, the Palm can always be switched off or even disconnected. The server won't complain and continue ripping a CD, compressing audio files and playing the tracks that were previously selected by the user. But whenever the client software on the Palm is activated, it should be connected to the server.
The Query Tab (Searching for Tracks, Albums etc.)
As already stated above, sophisticated track retrieval functions are crucial for a convenient jukebox system. GiantDisc therefore offers four different query options: query tracks, albums, playlists, streams and artists. The serach items can be divided into two classes: playable items (tracks, streams) and containers which contain playable items (albums, playlists, artists).If you search for a playable item, a window appears, where the items can be appended to the current playlist, or detail informations about an item can be displayed.
If you search for a container, a window appears, where all tracks that are associated to a container item can be displayed or directly appended to the current playlist, or detail informations about an container item can be displayed.
Track Query
The system searches for tracks that match all of the query fields that are not empty. You have query fields for track titles, artists (performers), genres, year of publication, language, a self defined type and a personal rating.
Album Query
- Artist and/or Title specified: The system directly searches for matching albums
- Other fields are specified: The system first searches for tracks that match the query. Then it returns all the albums where these tracks belong to.
Although the above two cases could be combined, it usually makes only sense to either directly search for an album title, or alternatively to get albums by searching for their tracks.
Playlist Query
Searches for playlists whose names match the specified title. All other query fields (artist, genre, year, ...) are currently ignored.
Stream Query
The system searches for streams that match all of the query fields that are not empty. You have query fields for stations (stream titles), networks (artists), genres, language, a self defined type and a personal rating.
Artist Query
This query performs in two stages. First all tracks are searched that match the query fields, then the artist names of the tracks are extracted and grouped together (eliminating duplicate names). An example for this is a search for all artists that have published blues tracks in the seventies.
General Query Hints
The database performs a full text search on text fields. Example: icha matches Michael, Richard, etc.
The text field search is not case sensitive. Example: miCHael matches Michael, michael etc.
Space separated search keywords return records that match all keywords. Example: "he ha" in the artist field (in my system) returns tracks of "Herbie Hancock", "The Jazz Passenger featuring Deborah Harry" and "Stephan Eicher", because their names contain the strings he and ha.
If a text field contains a star '*, records with matching field beginnings are returned. Example: a'* matches all strings that begin with a.
If a genre is specified, tracks of that genre and all subgenres are retrieved. Genres are hierarchically organized! Example: Genre Jazz matches tracks of genre Jazz, Jazz Fusion, Swing, Bebob, Ethno Jazz etc. This is a very powerful feature of the GiantDisc system - provided that proper genre tags are associated to the tracks (more about Managing Genres).
Options in the Search Result Window
- In the result window, there are pushbuttons that allow to choose the columns to be displayed in the list. You have the possibility to show or hide these columns: artist
, title
, track length
, genre
, year
, self defined track type
, personal rating
.
- Tapping the text of an item appends it (or its associated tracks) to the current playlist. Additionally, you can display and edit the details the for each item by tapping the
icon. For example, track details can be edited in place with this button.
- If containers are listed, the tracklist icon is displayed
which displays all associated tracks in a seperate window.
- If playable items are listed, they can all be appended to the playlist in one bunch with this button
. The tracks will be appended in the same order as they are displayed. Tapping
also appends all tracks to the playlist, but their order is randomized.
#Query_Tab_Playlist_Control_Popup
Playlist Control Popup in the Query Tab
In the top right corner of the query (and search result & browse) dialog, the current number of tracks in the playlist is displayed. This number is a pushbutton! Tapping it, displays a small popup window which gives a direct access to the most important playlist functions: stop playing, start playing, empty the entire playlist.Query Tab Menus
- Tracks without genre: Lists all tracks that do not have a genre associated, or whose associated genre code is corrupted.
- Tracks without year: Lists all tracks whose year field dos not have a value between 1000 and 4000 (GiantDisc is not y4k safe ;-).
- Noisy tracks: Lists all tracks whose condition field is set to noisy.
- Damaged tracks: Lists all tracks whose condition field is set to damaged.
- Comm Settings: Dialog which allows to specify how the Palm is communicating with the server. Currently, these communication modes are supported:
- RS-232: serial line (com port) at different speeds
- TCP/IP: generic socket connection (TCP/IP over RS-232, infrared, bluetooth, WLAN, ...).
- Interface Settings: In this dialog, some Palm hardware buttons can be associated to specific actions. Currently available actions: Jump to Search/Browse/Playlist dialog, start/stop playing, skip to next track, increase/decrease volume. (New actions will be added in future releases.)
- Update browse dir (export to filesystem): This function creates human readable links to tracks, in order to be able to browse the tracks via the file system. The links are created in the directory ~music/browse. The following sets of links are created:
~music/browse/tracks-by-artist: Artist / Tracktitle
~music/browse/albums-by-artist: Artist - Albumtitle / Tracktitle
~music/browse/albums-by-genre: Gernrehierarchy / Artist - Albumtitle
~music/browse/tracks: Artist - Tracktitle (flat list of all tracks)
~music/browse/tracks-by-artist: same as tracks-by-artist but only lists tracks that are not associated to an album
- Export ID3 tags: Exports the database content to ID3 V1.1 tags of the mp3 files (currently the genre tag is not written). Writing the id3 tags can take several minutes. The tag writing is therefore done in a seperate process that runs in background. So you can go on working with the GiantDisc client on the Palm while id3 tags are written.
Notice that the database contains much more information than the ID3 tags. ID3 tag export does not replace database backup.
- DB/Disc Statistics: Displays some statistical information about the GiantDisc server system. The first parts shows the number of track and album records in the database. The second part shows the occupation of each mp3 directory in the ~music directory in megabytes. Notice that it makes only sense to have more than one mp3 directory if you have more than one physical disc (or partition) on which the mp3 files should be stored.
- Shut down server ...: This cleanly shuts down the Linux server that is attached to the Palm. Notice that the Palm client software can't be used after the server has been shut down - no queries can be issued, the Playlist form tries to connect to the server and hangs, and other problems might be encountered. The Palm client application should therefore be closed until a running server is available again.
To allow the Palm to shut down the server, the application usershutdown is needed. It is available at http://www.ibiblio.org/pub/Linux/system/admin/su/. The user 'music' should be added to the file /etc/usershutdown.conf. It will look something like this:
# /etc/usershutdown.conf # # This file lists all users who have permission to shut down the system # isn't strictly speaking required, but included for completeness root # add other users here... music
#Query_Tab_Shuffle_Play_Queries
Making Queries for the Shuffle Play Mode
There's an alternative way to play a large number of tracks - the Shuffle Play Mode. In this mode, the tracks that are part of a query result are played at random.
The Playlist enters in the shuffle play mode when the Shuffle Play button in the Search screen is pressed. The system queries for tracks, just if they were searched using the search button. Instead of transferring the resulting track titles to the Palm, a window pops up. If at least 10 tracks are matching the search criteria, the window shows the number of tracks in the selection and the total play length. If OK is pressed, the system enters the shuffle play mode: it starts playing the selected tracks in random order. The playlist dialogs will work as usual - they show the currently played track (with details) and the titles of the 4 next tracks.The shuffle play mode is particularly useful, if a large number of tracks should be played, without the need to make a detailed track arrangement in a playlist.
The player exits the shuffle play mode, if the clear playlist button
is pressed in the playlist dialog or in the playlist control popup of the browse and search dialog.
Making Random Queries
The previously presented query methods (normal query and shuffle play query) are good, if you know what you are looking for. But if a large number of albums/tracks is stored in a GiantDisc system the overview might be lost. The consequence is that many albums won't be played for the simple reason that they were forgotten. Making a very general album query doesn't help either: 1) a query is (for good reasons) limited to 200 items and 2) they are always presented in the same order, which makes it difficult to see items that are usually overseen.
The random query function allows to browse through very large numbers tracks, albums and artist names:- the query results are displayed in random order - each query with the same parameters presents the results in a different order
- the query results are not all sent to the Palm client at once but in packages of 10 items
A random query can be confined by genre, type, title etc. just as in a normal query. But it usually is a very general query that produces a large number of resulting items.
The metaphor of a random query is: you are in front of your very large cd shelf and pick randomly 10 albums, or you pick randomly 10 albums of the Jazz section of your shelf, etc.
The Browse Tab
A main dialog is available that allows to browse for tracks in a hierarchical way, just as if they were hierarchically organized in directories.
The tracks can currently be organized in three different ways:
| Albums by Artist: | Artist | > | Album-Title | > | Track-Title | |
| Albums by Title: | Album-Title+Artist | > | Track-Title | |||
| Tracks by Artist: | Artist | > | Track-Title |
Notice that the Palm can efficiently handle very large numbers of tracks, albums and artists. It dynamically just loads the database records to the Palm that are needed to display one page. The consequence is that almost no memory is used from the Palm heap, but that data has to be transmitted from the database to the Palm for each scroll operation. On a fast server this is no problem. But the Tracks-by-Artist view may take 1-2 seconds to load a screen on a slow server.
Also notice that the Albums-by-... views will only show the tracks of the system that are associated to albums. (see Importing Audio Tracks to learn more about albums)
If a large number of albums or artist are stored in the system, it is getting more and more difficult to precisely position the list using the scrollbar. The lookup field File:Brs det lookup.gif align="baseline" allows to quickly jump to the position one would like to scroll to. It is usually sufficient to enter the first two letters of the album title or artist name to make a close jump.
File:Brs det totop.gif align="baseline" This button collapses all open brances and the browse list is scrolled to the top.
#Browse_Tab_Playlist_Control_Popup
Playlist Control Popup in the Browse Tab
In the top right corner of the browse dialog, the current number of tracks in the playlist is displayed. This number is a pushbutton! Tapping it, displays a small popup window which gives a direct access to the most important playlist functions: stop playing, start playing, empty the entire playlist.
The Playlist Tab
Tracks cannot be directly played in the search dialog. They first have to be moved to the playlist. The reason for this is a much higher flexibility and simpler usage if you want to put together a list of tracks to be played. You can always and quickly switch between these two screens. The screenshot at the left shows an example of a playlist screen. The playlist contains a total of 13 tracks. Two tracks have already been played and 11 are remaining to be played. With the scrollbar at the right border of the screen, the user can only scroll withing the remaining tracks. Consider the illustration at the right to understand this.The left half of the screen displays everything about the currently played track. On the top the usual track playing controls are available: stop, pause, play, skip back, skip forward, fast forward (not implemented yet) and rewind (not implemented yet). Just below these controls the play time, the remaining time and the total length of the current track are shown.
The scrollbar below the playtime reflects the current song position. If the program is running on PalmOS 3.5 or higher, the scrollbar is interactive and the thumb can be dragged to a new song position. Further below there are two buttons to control the main soundcard volume. The mute button puts the volume to the level 10 (in a scale from 0..100). The Vol.. button shows a new modal dialog which allows to precisely adjust the volume. If you save as default, the volume settings are stored in the configuration file of the mixer. These default volume settings will be restored abfter a server reboot and when the user un-mutes the sound out.The volume controls require that the standard audio mixer aumix is properly installed on the server.
The bottom region shows as many details about the current track as can be displayed on such a small area. If this doesn't show enough, tapping in that area displays a dialog with all track details. The details can optionally be edited and saved back to the database.If lyrics are associated to the current track, a lyrics button is displayed as shown in the image at the right. Tapping the button loads and displays the track lyrics in a separate window.
#Playlist_Tab_Actions_on_Playlist_Items
Actions on the Playlist Items
Tapping on a track item in the playlist can trigger different actions:
View/edit track details: If the glasses are selected, tapping on a track item displays a dialog which shows all details of a track record. The track details can be edited in place and saved back to the database if the update button is hit. The details of the currently played track can also be edited by tapping in the lower left detail area of the playlist dialog.
Remove: In this mode a track item is removed from the playlist.
Move to top: In this mode a track item is removed to the top of the playlist.
- If the playlist is in stop state, the selected item is moved to the top of the playlist and becomes the current track.
- If the playlist is in playing, paused, ff or rewind state, the selected item is moved to location right after the current track. A currently being played track is not interrupted.
Remove all: This button stops playing and empties the entire playlist.
Shuffle: This is the shuffle button. It randomizes the order of the tracks in the entire playlist.
It is planned to implement drag and drop functions in future version of the Palm client software. This will allow to rearrange the order of the tracks in the playlist, which is not possible for now.
Menus in the Playlist Tab
- Menu: Playlist
- Burn to CD:
- Takes the current tracks in the playlist, uncompresses them to audio tracks and writes them to an audio CD. (I haven't re-tested this since a few months, because I don't own a CD writer. But it worked a while ago.)
A list of the track titles that are written to the CD is stored in the file ~music/tmp/gdburnlist.txt. It could for instance be used to print a CD booklet.
My, and other people's experience is that before burning a CD, the scsi-emulation module needs to be loaded (manually?). It also should be unloaded after writing the CD, otherwise CD can't be recorded anymore. You might want to add your custom module load/unload code to the CD writer script gdburn.sh.
- Save:
- Asks the user for a playlist name and stores the current tracks in the playlist with that name. A stored playlist can be reloaded in the search dialog with the Query Playlist button activated. If a playlist with the specified name already exists, then the current tracks are appended to the existing playlist.
- Empty outbox:
- Deletes all the files in the directory ~music/outbox on the server (usually, this directory only contains links)
- Export mp3 links:
- For each entry in the current playlist a link to the mp3 file is created in the directory ~music/outbox. The export function can be used to write mp3 tracks to CD or to copy them to mp3 players etc.
- Upload to mp3 player:
- With this function the current playlist is uploaded to an external mp3 player like for example a Rio PMP300. A dialog is shown with a informations about the attached player. The user can the choose to either add the playlist tracks to the player (Append), or to empty the players memory before the tracks are uploaded (Replace). The driver to be used is specified in the entry extmp3player of the configuration file .gdconfig. (Notice that this function overwrites the links in the outbox directory ~music/outbox.)
- Menu: Go To
- First, Middle, Last:
- Makes the first/middle/last track in the playlist the current track.
Fingerplay Tab (Finger Interface)
Once a playlist has been built, it can alternatively be played using the Finger Interface, which is shown in the screenshot on the left. The finger interface features considerably enlarged control buttons. They are large enough to be conveniently operated with fingers - a pen isn't needed anymore. However, due to the limited space on the Palm screen, the finger interface does not offer the playlist editing capabilities of the normal playlist tab.Notice that the finger interface is just a different view to the same playlist, which can be edited and played in the normal playlist interface. The user can skip between the two playlist dialogs at any time. They will always be in the same state.
A common application of the finger interface is in a car music jukebox. Handling small buttons in the playlist with a pen while driving is too dangerous. It is much easier to play, stop, pause and skip tracks with a tip of our fingers. To select tracks and arrange the playlist a pen will still be needed.
The Recording Tab
The recording dialog starts all necessary operations to get music tracks as mp3 files onto your harddisk and to create all the track and album records in the database. You get into the recording dialog by tapping the record icon in the upper right corner of your current dialog page. Music tracks can be read from different sources:- from normal audio CDs
- from a harddisk directory containing mp3 tracks
There are also possibilities to make non-interactive batch imports using the script gdimport.pl. See Importing Audio Tracks.
If the music tracks are read from audio CDs, the user is asked to type in the titles, artists, genres etc. of all tracks and of the album. When the user has finished, the recording dialog will create track and album records in the database, rip the tracks and compress them to mp3 files. In the second case where already existing mp3 tracks are availabe, they have to be checked in. This means for every mp3 file an according record must be created in the database. This is done within the recording dialog the same way as if audio CDs were recorded.
- Important: The database allows to store very detailed information about tracks and albums. It is strongly recommended to use these possibilities. Do not underestimate the difficulty to find the tracks or albums you want to play in an electronic database. The usual (and quite efficient) methods like searching for a CD in the bookshelf according to its color or shape are not possible within this system. Therefore as many and as precise as possible information pieces have to be associated to enable queries like "show me all albums that contain heavy metal tracks that were released in the late seventies".
Dialog Fields and Controls
- Artist, Title:
- As expected, the artist or title of the record (or album)
- Genre1, Genre2:
- The genre of a track. Sometimes it is necessary to assign two genres to one track. (See also the section Managing Genres)
- Year:
- The year when the track was published
- Type:
- A user defined type (See also the section Managing Music Types)
- Lang:
- The language of the track or instrumental (See also the section Managing Languages)
- Rating:
- A four level personal rating (-: bad, 0: neutral, +: good, ++: exciting)
- Br:
- The bitrate (= compression factor). The default is 128 kBits/sec.
- Src:
- The source of the track (usually CD)
For every record you specify if the track should be recorded or skipped with the get it checkbox. You might also whant to listen to the current track while you fill in the informations about it. Playing is turned off and on using the play checkbox.
Recording Audio CDs
Insert an audio CD in the server's drive and initialize the recording session with the menu item Record
Read from CD.... This calculates the CDDB-ID of the CD and creates an empty record for each track on the CD. If the CD has previously been recorded (= a matching CDDB-ID is found in the database), the records are initialized with all available information. This is useful to efficiently re-record tracks because something went wrong or because recording parameters like the bitrate are to be changed.
#Record_Tab_CDDB_Support
The GiantDisc recording routines offer freedb/CDDB support. If a new CD is to be recorded, the system does the following:
- It first searches for a matching record at freedb.org. Of course, you need to be online to do this.
- If the online search failed for some reason, the system searches locally for a matching CDDB file in /home/music/cddb and any of its subdirectories. The needed CDDB-file should therefore be copied to /home/music/cddb before the CD recording session is initiated. The best way to do this, is to download the complete CDDB database from http://www.freedb.org.
The online freedb database is only searched if the option systemonline=1 is set in the configuration file .gdconfig. To disable the online lookup feature set systemonline=0.
After the CD directory (including CDDB informations) are loaded to the Palm, the user is asked to manually enter or correct the CD and track informations. The first entry corresponds to the album. The system will ony store the fields title and artist in the database, but if something is entered in the other fields the system offers the possibility to copy these values as default for all tracks. The dialog shown at the right permits to define, which of the parameters that were entered for the album record will be copied to the track records. For example, If you just want to re-record a CD with a higher bitrate, only the field bitrate should be checked. Otherwise, all other previously defined values would be overwritten.When all data is entered, the recording process is started with the menu item Record
Start recording.... With this command all data is immediately stored in the server's database. Then the specified audio tracks are read from the CD and encoded to mp3 files. Depending on the server speed and CD quality, ripping and compressing a CD can take quite a long time - up to a few hours. But don't worry. Recording runs entirely in background, which means that you can go back and select and listen to tracks or even quit the GiantDisc application.
The menu item Record
Recording state... shows the currently ripped and compressed tracks and how many are remaining to be processed.
Important note: The mp3 tracks and ripped temporary wav files are stored in the first (numerical order) audio directory which has at least 1GB of free space. If no directory is found with at least 1GB, recording will fail! Explanation: a full CD contains about 700MB of uncompressed audio data. GiantDisc compresses and the removes the temporary wav files one by one. In order to be on the safe side, at least one gig should be available. If you are not happy with this condition, you will have to change the value of the constant $minfreehdspace in the perl module gdparams.pm.
#Record_Tab_Import_Tracks_From_Inbox
Recording/Check-in tracks from Harddisk Directory
Menu Record
Read inbox tracks.... This reads all .mp3 and .ogg files from the directory ~music/inbox. The records for each track are initialized with the ID3 tags, if they are available.
When all data is entered, the recording process is started with the menu item Record
Start recording.... With this command all data is immediately stored in the server's database. Then the specified mp3 tracks are moved to a mp3 directory (~music/00 or ~music/01, ...) that has enough capacity to store the files. This usually takes at the most a few seconds.
Current limitations:
- the id3-tag album information is currently ignored
- for various reasons, the maximum number of tracks that can be imported in one session is limited to 50 tracks. If more tracks are to be imported, they must be treated in chunks of 50, and the sequence Record
Read from Inbox... - Record
Start recording... must be repeated several times.
#Record_Tab_Import_Albums_From_Inbox
Recording/Check-in albums from Harddisk Directory
This funtions works similarly to the above recording of bare tracks from the inbox. The menu RecordThe app presents a list of non-empty directories that were found (see image at the right). Directories that do not directly contain valid audio files are not displayed. One album can be selected and the track and album informations can the be edited. Finally, the recording process is started with the menu item Record
Start recording.... With this command all data is immediately stored in the server's database and the audio files are moved to a system mp3 directory. This usually takes just a few seconds.
General Dialogs
Edit Track Details
There are several opportunities to edit the details of a track record (i.e. using the glasses in the Search or Playlist dialogs).
Delete Track
![]()
Deletes the current track. The database entry is deleted and the associated mp3-file is deleted in the filesystem. This operation can not be undone - be careful!
Track Lyrics
![]()
The track details dialog allows to display, add or modify lyrics that are associated to a track (see screenshot at the right). Tapping the Lyrics.. button loads the associated lyrics and displays them in a new window. If the Update button is tapped, the modifications in the lyrics text are saved back to the database.
If tracks lyrics are available in raw text files, they can also be imported from the command shell with the script gdimportlyr.pl. The script takes as parameters all the lyrics files to be imported. To allow a reliable association to the tracks, the lyrics files must have exactly the same name as the corresponding .mp3 file, except for their extension .txt (i.e. tr0x0ac3778f-5.txt).
Edit Associated Album Record
If an album record is associated to the current track, it is shown here. It can also be edited. Notice that you can't add a new album record, or associate the current track to another album with this dialog (album associations can't currently be changed from the Palm interface).Trim mp3 file
With this function, the current mp3 file can be trimmed. You can clip off a part of the beginning and/or of the end of the mp3 file. The L and R position sliders are only available on PalmOS 3.5 or higher.It is possible to undo the last trim operation (only the last one, not more). So be careful with extensive file trimming ;-)
Edit Album Details
This dialog allows to edit the album title and artist. You get to it through various ways: Search for albums and tap the info button, get album info for a specific track or browse for albums and show details with the glasses activated.
Special functions:
- Del..
- Deletes an entire album, including the database records and the audio files of the associated tracks. This operation can't be un-done, so please be careful!
- Scan..
- Go to the scan dialog and interactively scan booklet/cover images.
#General_Manage_Album_Cover_Images
Manage Album Cover Images
There are various methods to get cover or booklet images into the system. Either covers or booklets can be scanned (controlled by Palm client) or existing image files can be imported.
Currently there is only one way to view the cover images - via the web interface. This situation will change soon - it is planned to display the covers in the palm and to implement a visual album query.
Cover/Booklet Image Specification
- Only JPEG images are supported. The image files always have the extension .jpg
- GiantDisc can associate up to 100 images to an album. They are enumerated from 00 to 99.
- The cover image has always number 00. The back image of an album is the one with the highest number. The images between the cover and the back are usually the booklet images of an album.
- If images are associated to an album, the cover image must be included.
- All images can have any size and resolution, except for the cover image which must be square.
- It is recommended to scan the cd covers at a resolution of 150dpi. This leads to an image size of about 700x700 pixels. Higher resolutions don't negatively influence the system performance because the images will be scaled (and cached) to the appropriate sizes as needed by the Palm client and the Web interface.
Scan Album Cover
Predefined scan methods:
- upright, landscape, upside down: Scans a single booklet cover page in the top left corner of the scanner with the specified orientation.
- double upright, double landscape: Scans a double booklet page and saves it as a single image
- 2 pages upright, 2 pages landscape: Scans a double booklet page, splits it in the middle, and saves the two halves in separate image files
Enumeration options:
- -append-:
- number:
The scan button starts the scan process. Scanning is done in background, and the scan dialog is therefore non-blocking. As a consequence, the Palm does not "know" when scanning has finished. You'll have to look at, or listen to your scanner to find out in what state it is.
Import Album Cover Images when Importing Albums from the Inbox
If the imported album directory also contains .jpg images, they are considered as cover/booklet images an automatically imported too. They are imported in lexical order - the first is considered as the cover image.
Import Album Cover Images via Web-Interface
Edit the details of an album (activate edit in the settings and click the pencil in a list of albums). An album image can be downloaded from a remote web server. Type in the image URL in the text box below Download Cover Image from Remote Location.
This method works only, if one of the directories that contains the audio files is writable by the web server. Make one of the directories (i.e. ~music/00, ~music/01, ...) writable for the web server, and specify this path in the variable $global_writable_dir of the configuration file gdweb-settings.php.
There is currently no way to upload images through the web interface.
Import Album Cover Images on the Command Line
See gdbooklet.pl.
Manage Genres
The hierarchical genre management of the GiantDisc system is one of it's key features that makes it different from all similar systems we are aware of. It allows to associate precise genre informations to tracks and to perform powerful queries, which are easy to understand intuitively.The basic idea is that music genres can be viewed as a hierarchy. For example, Jazz is a main or top level genre that contains sub-genres like Acid Jazz, Bebop, Ethno Jazz and more. The sub-genre Ethno Jazz can be further divided into African Ethno, Cuban Jazz etc. If you should want to classify a particular track of, i.e. Paquito d'Rivera, then you might generally classify it as Jazz (because you want to retrieve it when you make queries for Jazz tracks). You could also correctly classify it as Ethno Jazz and most specifically as Cuban Jazz. It is obvious that a classification system with a flat genre structure would be inefficient for at least three reasons: 1) you would generally need about three to six genre fields for each track to precisely classify it 2) it's a lot of cumbersome and error prone work to find all matching genres for a track and 3), one might be tempted into associating too general genres.
For the GiantDisc system we propose a slightly different approach. When the user makes a query for tracks with a specified genre, the system returns all tracks of that genre including all subgenres. For example if Jazz was specified, tracks having the genre Jazz or Bebop or Ethno Jazz or Cuban Jazz etc. are returned as result. However, if Cuban Jazz was specified, then only tracks with that genre are returned, because it does not have subgenres. Therefore, the user needs to associate to a track only the most specific genre. In the example above, associating Cuban Jazz is perfecly precise and sufficient.
The main advantage of this approach is that the user can safely associate a very specific (and very precise) genre for a track. He/She will even be able to retrieve the track according to its genre, even if he/she forgot that the very specific genre exists in the system, because it will be found in a more general query. For example, if one isn't aware of the fact that Cuban Jazz tracks exist in the jukebox, they will still be retrieved in a query for Ethno Jazz tracks.
Genre Selection
To specify a genre one of the dialogs on the right is displayed. The user can choose to either select a genre in a hierachy view or alternatively in a list view. Tapping on a genre in hierachy view selects this genre and immediately displays its subgenres in the selection list. Depending on the context, the list only shows genres that were associated to tracks (track query) or all genres in the system (track recording or editing). To go up in the hierarchy, tap on the#General_Manage_Genres_Modification
Genre Modification
The genre modification dialogs can be found in the Record form in the Options menu. After each genre modification operation, the updated genre hierarchy is loaded from the server to the Palm. This always takes a few seconds, depending of the number of genres in your system.
#General_Manage_Genres_Remove Delete Genre: This removes the specified genre and all its subgenres from the genre hierarchy. If there are tracks in the database that carry a deleted genre, they will all be associated to the supergenre. Move Genre: This moves a genre and all its subgenres to a new location in the genre hierarchy. In the example at the right, the genre Acid Jazz (which currently is a subgenre of Jazz) is moved and will become a new subgenre of Acid. If there are tracks in the database that carry a moved genre, they are updated accordingly. Rename Genre: This just gives a new name to a genre. The genre hierarchy is not modified. Add Genre: This adds a new subgenre to a existing genre.If you want to merge one genre G1 into another genre G2, then you should first move G1 to be a subgenre of G2 and then delete G1.
Manage Languages
currently not available
Manage Music Types
Music types are a possibility to add an additional classification scheme to the tracks in the GiantDisc database which is not yet covered by genre, language, year, date, rating etc. The user is entirely free to change the music types according to his or her gusto. The default types are soft/slow, medium, groovy, hard. But others are imaginable like danceable, singable, slow dance or party, devout, erotic, funny.
The type modification dialogs can be found in the Record form in the Options menu. After each type modification operation, the updated types list is loaded from the server to the Palm.
Delete Type: Deletes the specified music type. All tracks that are associated to the deleted type are re-associated (or merged into) to the first type in the types list. This adds a new music type to the database.
Add Type: This adds a new music type to the database. 
Streaming media support
Full support for mp3 streams has been added. As the screenshot of the playlist dialog above shows, mp3 streams are treated almost like normal mp3 audio files on your harddisk. They are retrieved and played like ordinary mp3 files. However, there are a few minor differences:- internally, the system stores a url string instead of a filename
- the length of streams is unknown. Therefore the playlist dialog displays only the time played. The fastforward and rewind buttons don't work either.
- new streams are created by manually filling in a track details form. An new form is created with the menu item Edit
New stream... in the Search dialog. A details dialog for streams does not have the trim and album buttons, but URL button
instead. Here, the full url of the streaming server has to be filled in.
- streams are retrieved like ordinary mp3 tracks. But there is an additional menu item Search
Streaming sources in the Search dialog that lists all recorded mp3 streams.
If it doesn't work
- check that you really have mpg123 as mp3 decoder. In RedHat 7.3, mpg123 is a soft link to mpg321. mpg321 is functionally similar to mpg123, but it can't play URLs/streams. Make sure that your mpg123 is really installed and not just a link.
- if you type in the URL - don't forget the final slash ( e.g. http://url.to.play:4558/ ). Otherwise the stream won't be played. (this is an mpg123 issue)
- mpg123 can't play streams which have additional location information in the URL ( e.g. http://url.to.play/sfolder/1080/ ). Don't know why that is....
Note: The purpose of the above described function is to play external streams which are not generated by GiantDisc, but received by it. GiantDisc is now also capable to take audio files and stream them to an IP address (instead of decoding and sending them to the local soundcard). This is done by configuring the GD-sever script accordingly (see Configuring the server script).








































