Copyright © 2001-2024 All rights reserved. Woodgrove Digital Engineering P⁄L. Last revised: 17th June 2024
Home Entertainment

Table of Contents



Users and Listeners



Music Mixes


Band Weighting

Song Weighting


Album Mode


Juke Box

Personal MP3 Player

Car MP3 Player

Song Editing

Album Editing

Virtual Songs and Albums

Internet CD Database


Remote Control


“The mUser”

This product is aimed at people with large CD collections, and a methodical way of thinking. If you own over 600 CDs and know where they all are, then it is likely that you will appreciate this product. This is particularly true if you suspect that there would not be a product on the market which could satisfy you.

If you are one of these people, then this product is not only aimed at you, but also at your family, as it is designed to please a mixed audience. And it is designed to help you when entertaing guests, either casually, at dinner parties, or at large celebrations.

“The mUser” is a software package running under Microsoft Windows with a CPU decended from the Intel 386. Below is presented main display.

Main mUser Display

“The mUser” loads music from CDs, optionally compresses this music, and stores it to hard disc. It can also copy it to a second hard disc, to provide a backup in case the hard disc drive fails.

It then plays this music back. The main crux of the software is selecting which music to play back.

As well as being able to select music to play by song, album, programme, or the "juke-box", you can arrange for “The mUser” to select music for you, depending upon who is present, and what style of music you like to hear at different times of the week (to the half-hour). It can be asked to select individual songs or entire albums.

You can also download the music to a hardware MP3 player - either small personal varieties, or massive car varieties.

The level to which you can customise this software is extraordinary. There are the usual cosmetic changes that you can make, such as colours, fonts, speed and steps in the juke-box animation, number and size of the juke-box cards, scroll rates for the vacuum florescent display, text for and organisation of menus, many of the dialogue prompts, and so forth. More importantly, you get to decide what classifications there are, and these classifications can be grouped (which is important as the number of classifications you create increases), and any song can belong to any number of classifications. For example, you might want to create a "Christmas" classification, which you would allocate to the group "Themes", and include, within this classification, songs from several genres of music.

You can also select the form and degree of music compression, or opt for none at all. Compression options include lossy methods such as "MP3" and "Ogg-Vorbis" and loss-less methods such as "FLAC", and "shorten". The lossy methods each provide a host of options enabling you to trade-off compression against quality. There is also a function which allows you to load a test song, and play it back while arbitarily switching between alternate forms of compression, and none, allowing you to make an informed choice of compression method.

Normalisation is normally performed at play back, rather than during recording, so that you can opt to turn it off when listening to an album - however, here as well, you can opt to normalise during recording if you intend to use the machine primarily for audio-streaming. Again you can select the form of normalisation (peak, RMS, and other parameters) you wish to use.

We call this, "The Thinking Man's Music Machine", as it is uncompromisingly designed to fill all your anticipated music playing needs, without fear of being seen as too complex. It is complex, but only as complex as it needs to be, or as you want to make it. If you take the time to understand the principles, you will find that it allows you more control with less effort than any "simple" music system does.

I define a system that is initially easy to use, as "visitor-friendly", while reserving the term "user-friendly" for a system that provides the familiar user with greater control for less effort. Still, there are aspects of this software which are, indeed, "visitor-friendly", as it is anticipated that you will have visitors.

Chances are that you will believe that you don't need many of the complexities offered, and you are free to ignore any features you regard as esoteric. On the other hand, as you use “The mUser” more, you likely to make statements like, "It would be good if it could do ...", and learn that this has been provided for.

In order to assist you to become familiar with the operating principles of “The mUser”, the documentation includes extensive tutorials, which cover the basics, then refer you to sections of the manual where you can learn more. “The mUser” comes with two manuals, an “Operator's Manual” and a “Technical Manual”, which, combined, include over 350 pages, and are provided as context-sensitive on-line help, with extensive hyper-text links to other relevant sections.

Now getting down to tin tacks:

The software records songs, from CD, against albums, and albums against bands. It requires knowledge of its audience (i.e their likes and hates and likely movements), and the classification of the music.

The software also allows prescribed music mixes to be set upon request or by time of day, and allows you to weight bands and songs so that they can be played at greater or less frequency than their share of the playing time would otherwise result in. The weighting of bands is on a listener-basis.

When the software automatically selects a song (or album) to play, there is very little in its selection process that is random. It maintains statistics on each band, album, and song to ensure that it does not over-play nor neglect songs, except as required.

You can write programmes of songs to be played for special occasions. Each programme is named so that you can later replay the programme, which you had created to celebrate your 25th wedding anniversary, or use it as the basis for another occasion. One programme is dedicated to the juke box. The intention is for you to design a programme of songs for a party, and a second programme of songs for the juke box, allowing your guests some control over the play list. You can also write programmes to be downloaded to personal hardware MP3 players.

Songs to be downloaded to the massive car MP3 players are selected using the classification system, rather than programmes, as this makes the selection of tens of thousands of songs more convenient. You can also ask it to create a series of playlists, each consisting of a fixed number of albums which satisfy certain criteria. This feature is intended to emulate having multiple ten or six disc stackers in you car, as the software in car MP3 players is not, otherwise, very driver-friendly. You can also use programmes to define playlists manually.

You have the ability to explicitly select songs, or albums, to play. The songs are presented, sorted in a number of ways, for selections to be made, allowing you to search for arbitary text in any database field associated with the song, album, or band.

You can edit the start and stop times of a song, to be applied when the song is played independently of the album, so as to skip the applause et cetera. Similarly, you can adjust the divisioning of an album into tracks, to cope with those occasions when the album is badly divided or contains "hidden" tracks.

Incidently, you can arrange to play an arbitrary portion of a song, to help you pick out a word, or practice against a phrase of music, or have your daughter transcribe it for your mobile phone's composer feature.

There are also windows provided which allow you to list the last so-many songs played, analyse the song-selection decision making process, to list significant operator actions and other events, and to present the number of plays of each song and the average number of plays for each band, in list and graphical form.

The everyday operations can be carried out using the remote control and vacuum florescent display, rather than the full monitor-mouse-keyboard interface. The name of the song currently playing, its duration, who it is by, the album it is from, and the elapsed playing time are all displayed on the vacuum florescent display.

It is intended that the computer box be located with your hi-fi.

As this software was derived from our Industrial Automation package, customisation has been allowed for; we can provide specific functions to suit your requirements, without incurring exorbitant costs, yet allow your custom package to continue to benefit from the improvements made to the mainstream product.

The following sections describe "the assumptions", "the terminology", and the concepts of "users", "listeners", "classifications", "filters", "schedules", "music mixes", "band weighting", "song weighting", "formulae", "album_mode", "programmes", the "juke box", "personal" and "car MP3 player programming", "song" and "album editing", "virtual songs and albums", "Internet CD database", "statistics", "remote control", and "tailoring".


Songs are expected to be able to be arranged in a "tree" structure, by band then by album, then finally the songs within the album. There are, however, windows provided to present the songs in a variety of orders, including by title, band, composer, conductor, or orchestra or choir.


Throughout this document, and the software, the primary artist on a CD, be it a band, singer, musician, composer, conductor, orchestra or choir, is generically referred to as a "band".

Similarly, the contents of a single CD title (whether a CD-single, a single album length CD, a double CD, or what-have-you) are referred as an "album".

A track on a CD, irrespective of whether it is a song, an instrumental, spoken word, or rap, is referred to as a "song".

Users and Listeners

A "listener" is a member of the household, or a very frequent visitor. Each listener must be entered as a user of the system, and assigned

  • a password - this can be blank, especially if you allocate him a zero privilege level,

  • a privilege level (which determines to what extent he can stuff up the system) - this can be zero,

  • a classification within the "Audience" group (see the next section), where he can, or you can for him, describe his likes and dislikes - this is the main purpose of the exercise,

  • a schedule (optional), allowing the listener to indicate his presence for each half-hour of the week and what mix of music he would like to hear at that time, and

  • a set of "band weightings".

Initially there is defined a single user, called "Super user". You would normally, leave this initial user as the "Super user" and create a new user for yourself will lesser privileges for every day use, knowing that, when you need to, you can always log in as the "Super user".

Although you must enter each listener as a user, in order to allocate him a classification, you need not give him any privilege, if you prefer him not to be able to adjust the database et cetera.

The positions and sizes of the various windows, the allocation of colours to purposes, and the selection of fonts are alterable independently for each user.

Only one user can be logged on at a time via the one interface. There can be several operator interfaces running from each X-Windows display, and there can be several X-Windows displays. For the Microsoft version a similar arrangement applies. No user needs to be logged on for the system to operate.

A "user" is someone who is permitted to operate the system. Although each "listener" needs to be entered as a "user", it is not necessary for him to use the system. Similarly, a "listener" does not need to be logged onto the system to be deemed to be "present".

Any number of listeners may be present at once. This can be determined either automatically by the time, manually until the next change in his schedule, or fully manually.

When the system is selecting songs at "random" it maintains a tally of how much time has been selected on behalf of each listener present. It uses this tally to provide each listener with a fair crack of the whip.

Whenever a listener is present, the songs available for selection for him may be screened by a "filter" or a "music mix". Before understanding either of these concepts, you must first be familiar with the "classifications" concept.


To allow the software to make intelligent decisions in its selection process, it needs to have the songs classified. What classifications you have is entirely up to you, however, to get you started, some classifications have been created; you should feel free to delete or rename any of these you choose to.

Each classification belongs to a group. What groups you have is also entirely up to you, however, an important group - which I have named "Audience" so that it is sorted near, if not at, the top of the list - is the group of listeners.

A special feature of the listener's classification, it that it not only flags the songs the listener likes, but also those he hates. In this way, while selecting songs to play for one listener, the software not only considers what this listener likes, but also at what each other listener present hates.

Another main group of classifications might be "genre", which would include classifications such as "rock", "jazz", "art", et cetera. I encourage the term "art" rather than "classical" (especially if you are seriously into what the rest of us call classical music), as this leaves you free to create a "period" group, which would include classifications such as "baroque", "classical", "romantic", et cetera.

Classifications are applied to songs, using a "tree" presentation, with the classification name as the root, the band names as the first set of branches, the album names as the next set, and the song names as the finest set of branches, or leaves. This allows fairly fast classification for the bulk of your collection and the bulk of the classifications, though classifications for a group such as "tempo" are always going to be tedious, unless someone knows of some software that can extract this.

At any time during this process, you can have a song play, to refresh your memory of it.

When you select a song to play, you are asked whether you wish to play it at the end of the queue of songs already waiting to be played, at the start of this queue, or immediately. Under these circumstances, you would select to play the song immediately. When you select your next song to play, if the song currently playing was played immediately, the new selection will also be played immediately, without the system asking.

Afterwards, whenever a song is playing you can, conveniently, review its classifications.

Although, from a selection point of view, only the song classifications are important, the classification of albums, bands, and the classification itself, allows the classification system to be extended automatically as more CDs are added to the system.

For example, if the "rock" classification itself is ticked as belonging to the "rock" classification, then when you add a CD by a band not previously known to your system, it will be automatically added to the "rock" classification. So, typically, you would, when defining your own likes and dislikes, tick your classification, but when defining your partner's likes and dislikes, cross hers, unless your tastes are more aligned than ours (or I'm not addressing the fanatic in the family).

A song may belong to any number of classifications, even within the same group. For this reason, I would suggest not creating hybrid classifications such as "folk-rock" or "jazz-rock", but rather flag the songs in question as belonging to both "folk" and "rock" genres, or both "jazz" and "rock" genres. When you wish to refer to "folk-rock" you can enter "Folk&Rock", which would typically require you to enter the three key strokes "F", "&" and "R", as the software will provide the remaining letters as you type.

This leads us now to the next concept - "Filters".


The songs which are eligible to be played, or displayed during an enquiry, may be "filtered". This means that you can specify a "boolean" formula comprising the operators "AND" (represented using "&"), "OR" (represented using "|"), "NOT" (represented using "!"), and brackets (represented using the open and close parentheses, "(" and ")").

A boolean formula may be a new concept to you. If this is the case, it is worth learning. The object is to divide your collection into two peices - those songs which satisfy the formula and those which don't - this is essentially what boolean means: it either is or it isn't.

The formula may be as simple as a single classification name, such as "Rock". This formula would divide your collection into those songs that are part of the "rock" classification and those that arn't.

A slightly more complex formula would be "Rock&Jazz". This would divide your collection into those songs which are flagged as belonging to both the "Rock" and "Jazz" classifications, excluding all others. For example, songs belonging to the "Rock" classification but not the "Jazz" classification will be excluded.

So "Rock&Jazz" means that the songs must belong to both "Rock" AND "Jazz". It does NOT mean the songs belonging to "Rock" AND the songs belonging to "Jazz". To specify that you would need to enter "Rock|Jazz", which menas that the songs must belong to either "Rock" OR "Jazz".

If you want to exclude "Rock" songs, you would enter "!Rock" (NOT "Rock"). If you want to exclude both "Rock" and "Jazz" songs, you would enter "!Rock&!Jazz" (NOT "Rock" AND NOT "Jazz"). Had you entered "!Rock&Jazz" (NOT "Rock" AND "Jazz") this would not be the same thing - this would mean just those "Jazz" songs which are not also "Rock" songs. You could, however, have entered "!(Rock|Jazz)", which is equivalent to "!Rock&!Jazz", but this is for the advanced class.

This brings us to the question of precedence of operators. If you do not use brackets, the order in which the operations are carried out is dependent upon what is known as the "precedence of operators". Always brackets have the highest precedence - this is their purpose in life. If you do not use brackets, then "!" (NOT) has a higher precedence than "&" (AND) which in turn has a higher precedence than "|" (OR). This means that the "not" operations are performed first, followed by the "and" operations and finally the "or" operations.

For example, the formula, "Folk&Rock|!Heavy&Art", would include the songs which belong to both the "Folk" AND "Rock" classifications, along with (OR) songs from the "Art" classification, so long as they are not "Heavy" - so no Wagner. This formula is equivalent to "(Folk&Rock)|((!Heavy)&Art)".

Filters may also contain the names of the groups of classifications as well the names of the classifications themselves. Filters of this sort are very helpful in creating classifications. For example, if you have a group of classifications such as "Nationality", then as you create each classification within this group, you can specify a filter "!Nationality" to exclude all that have already been given a nationality, and are therefore candidates for the nationality being currently assigned.

Music Mixes

Music mixes are used to influence the selection of songs. Music mixes are called up independently for each listener, and may differ from listener to listener.

Firstly a music mix is given a name and, optionally, a designator to be used in schedules (see the next concept). A music mix may be created with the intention of calling it up manually at special times such as dinner parties, or automatically such as at breakfast. So you would give the "Breakfast" mix a designator, such as "B", but not provide a designator for the dinner party mix.

Secondly, each music mix is given a number of "elements", each with its own weighting. Each element includes a filter (for example "Rock"), a vintage range (for example, 1968 to 1977), a range of song lengths (for example, zero to four minutes thirty seconds), and, optionally, a listener.

A music mix could contain a single element with a filter such as "Rock|Jazz|Pop" however this music mix is just as likely to deliver a straight "Rock" session depending upon the relative proportions of Rock, Jazz, and Pop in your collection, and which genres have been most neglected. Had you intended to provide a mix of Rock, Jazz, and Pop, you would be better off creating three elements with the three filters, "Rock", "Jazz", and "Pop", and assigning them weightings as you deem appropriate. When entering the elements, a bargraph is presented for each element giving you an indication of the proportion of the collection which satisfies each element, thereby warning you that you may be asking the system to overplay songs which safisfy certain criteria.

Because each listener's idea of an appropriate breakfast mix might vary, each element can specify a listener. Elements which do not specify a listener, apply to all listeners, whilst the other elements apply only to their nominated listener.

Bear in mind though, that a listener's likes and dislikes are still being taken into account when a music mix is in force, so although there might be a "Jazz" element applied to all listeners, if a listener does not like any jazz at all this element will not apply to him. However, if he should nominate a single jazz tune as a song he likes, you will get to hear a lot of it.


So that you don't have to tell the system when each member of the household comes and goes, you can setup schedules which can serve as a first estimate of who is around.

Each listener gets to specify a schedule for each day of the week.

The schedules may be temporarily overridden on a listener basis. If you tell the system that a user is now absent, he will remain absent, until his schedule has him returning (a transition from absent to present).

The schedules may also be permanently overridden, again on a listener basis. You do this to turning his "time clock" off. Once you do this, the listener will remain absent, or present, until you indicate to the system otherwise.

You might turn a listener's time clock off and flag him as absent when he has to fly to Melbourne to commission a new warehouse, or turn his time clock off and flag him as present when she is on school holidays.

A schedule has entries for each half hour of the day (fourty-eight entries) specifying whether the listener is expected to be present at that time and, optionally, what music mix he would like at that time. You can also override the music mix selected for a listener with an alternate music mix or a filter.

There is also a "master" schedule which is intended to stop the music during the night, irrsepective of the configurations of the individual listener schedules. This schedule can also be used to allocate default music mixes for those listeners who do not have a music mix assigned to them for a particular half hour.

These schedules only affect the automatic selection of music for playing; when music is selected for playing explicitly, it is assumed that the listener is still up listening to it.

When the master schedule indicates that music should not be played, it will prevent further automatic selections. It will also remove any automatic selections already on the play list. The presence of songs on the play list, which have not been automatically selected, or the engaging of a programme, is taken to indicate that there is an audience, contrary to the opinion of the master schedule, so the music is not stopped under these circumstances.

When stopping the song currently playing, “The mUser” checks some parameters, which you can set to allow the song time to complete, if it nearly finished, or to fade the song out.

Also, when the master schedule turns the automatic selection of music back on, you can specify a volume, so that you are not rudely awakened after a raging party the night before.

Also, temporary adjustments may be made to override the effect of the master schedule. Functions available, via the remote-control and full-window interfaces, allow you to stop the playing of music earlier than the master schedule intends, to extend the playing of music beyond the intended stop time, and to disable the resumption of music by the master schedule when it ticks over from off to on.

Band Weighting

Band weighting is provided to cope with the situation where the amount of music in your collection from a particular band is not in proportion to the amount of time you might want to listen to that band. This might be because you have only a passing interest in them, or that you really like them but they have only released two albums, or you have just bought a 300 CD collection of Bach but don't want every second song to be from this collection.

Each band can be given a weighting from 0.00 to 10.00. This rating defaults to 1.00. If the amount of music by a particular band constitutes, say, four per cent of your collection, and you give this band a weighting of 0.50, then two per cent of the music played will be from this band - all else being equal.

This weighting is allocated on a listener basis; each listener is able to adjust the weighting for each band to suit his affection for the band.

Song Weighting

Song weighting is provided to cope with the situation where you have obtained an excess number of versons of some songs by some bands, and although you wish to maintain all these versions on hard disc, you do not want them to be so disproportionatly represented in random play.

For instance, you may have purchased Jefferson Airplane's "Takes Off" or "Surrealistic Pillow" albums, featuring both the mono and stereo versions of each song. In this instance, you could choose to either leave one version with a weighting of one and reduce the weighting of the other to zero, thereby inhibiting it from random play, or give both versions a weighting of one half.

The song weighting is allocated on a class basis, and may range from 0.00 to 10.00. It is envisaged that you would normally leave the class weighting at 1.00 for all classes other than those specially created for the sake of weighting songs. These classes would be allocated a class group of "Weighting", and may include class names such as "Mono", "Stereo", "Remixes", "Remasters", "Naughty", "Half", "Third", "Quarter", and so on.

By using "Mono" and "Stereo" as class names in the above example, you can more easily change your mind as to whether to disable one, the other or to divide the weighting. Similarly the "Remasters" and "Remixes" are intended to accommodate Deep Purple's anniversary release of "Machine Head", which also featured two complete copies of the album.

The "Naughty" class is intended to cover songs you may not wish played in the presence of your children or their grand parents, such as Marianne Faithful's "Why D'Ja Do It?", which was originally released in this country under the title "*** *'** ** **?", and the album track consisted entirely of blank grooves. In this way you can set the weighting to either 0.00 or 1.00 depending on who's around. This is also a convenient way to temporarily disable any class, however, if you do this you should regularly check the list of classes for those which have been inadvertently left disabled.

Finally the "Half", "Third" and "Quarter" classes are there for general-purpose use where there are no more general class name can be suggested.

As a song may belong to several classes, the effective weighting on a given song is the product (multiplication, times) of all weightings applied to it. For example, if your copy of Deep Purple's three disc set "Live in Japan", from which the original "Made in Japan" was culled, belongs to the "Third" class, with a weighting of 0.33, and to "Live" class, which this weekend you are giving a weighting of 4.00, then the effective weighting would be 1.32.

Unlike the "Band Weighting", this weighting is not allocated on a listener basis, as I feel this would add an unnecessary complication to the weighting process.


When the system is playing songs at "random", there is very little in its decision making which is truly random. Once it has formed a short list based on which listeners are present, who's turn it is, what music mix they have enabled and which element of it is most deserving, or what filter they have entered, it processes this short list, with the band and song weightings, to create a shorter short-list.

There are two formulae, which are used to process the short-list. These formulae are both user alterable, however, there are default formulae provided so you need not concern yourself with these immediately. Please bear in mind, though, that they may be altered, especially if the balance between "play ratio" and the time since the last play proves not to suit you.

The "play ratio" is the ratio between the amount of music available from a band or album, and the amount of time this band or album has been played.

In deciding what to play next, the system attempts to play songs by under- played bands, and from bands which have not been heard for a while. These two criteria, whilst generally complementary, can be conflicting when a new band or album has been introduced into the system, as it is under played, yet played recently.

The song ultimately selected to be played will be that which has the highest rating. Should two or more songs share the highest rating, then the system will attempt to make a random choice.

Album Mode

When “The mUser” is automatically selecting songs to play, you can instruct it to select whole albums instead. This we call "Album Mode".

In album mode, because of the longer times associated with each choice, a different approach is taken to the selection. If, when making selections, an album was selected for one listener then another for the next, it could be hours before some listeners might hear something they like. So instead, each selection is made for all present listeners.

To achieve this, when in album mode: any music mixes are cancelled, any filter set is applied to all present listeners, no album is selected unless it is liked by all present listeners, and the band weightings are averaged between all present listeners.

When an album is selected, only those songs from it that are liked by all listeners, and satisfy the filter (if in place), will be selected for play.

For those wanting to know this, the averaging of a band's weighting is done by taking the geometric mean of the weightings from each listener present.

Album mode can be engaged and disengaged via the full operator interface, and via the remote control.

When in album mode, you can also set a limit on the length of the album which can be added to the playlist. Albums longer than this value will be broken up and the most deserving segment, only, will be added to the playlist.


Programmes are ordered lists of songs, which can be engaged to provide an effective "party tape".

In order to produce the programme, you would normally apply a filter to the list of songs, then tick off the songs from this list you would want to short-list for your programme.

You may have, previously, created some special classifications to help prepare for creating these programmes. I group such classifications into a "Theme" group. These theme classifications might include "Dance", "Well known", "Love Songs", et cetera. The term, "Love Songs" is intended to differentiate these from the "Romantic" period of "Art" music.

Once you have applied the filter, and ticked off your short list from among the remaining songs, you would place these in the programme. The programme window shows the number of songs in the programme and what the total playing time is.

You can then have the programme sorted according to song title, band, vintage and duration. Typically, you might first sort by duration, and consider whether the longer songs merit retaining.

You could then sort by vintage and eliminate those songs that are unlikely to be appreciated by the expected audience.

You might then choose to sort by band, and eliminate the lesser songs by bands with a larger proportion of the songs.

At any time during this process, you can have a song play, to refresh your memory of it, or to listen to it from the point of view of the intended audience.

When you select a song to play, you are asked whether you wish to play it at the end of the queue of songs already waiting to be played, at the start of this queue, or immediately. Under these circumstances, you would select to play the song immediately. When you select your next song to play, if the song currently playing was played immediately, the new selection will also be played immediately, without the system asking.

Once you have reduced the programme to the desired length, you can then manually order the list. You do this by moving clumps of songs with a series of clicks, shift clicks and control clicks, however, because the software is aware that you are performing a move, it occurs interactively, thereby allowing you to mix the control clicks and shift clicks.

Once the programme is finalised, it can be engaged. Once the programme is engaged, the point of execution of the programme is indicated.

The software allows the creation of up to two hundred such programmes. The total number of songs in these programmes is around twenty thousand, however, you may, if you so desire, have all twenty thousand songs in the one programme. I would expect a typical programme to include around a hundred songs.

I've had considerable experience creating "party tapes", and I've learnt that no matter how hard you try, you are still going to have your sister-in-law come up and want to hear the Beach Boys NOW! To overcome this problem, I have created the visitor-friendly "Juke Box" interface.

Juke Box

The "Juke Box" interface, although it is a minor part of the overall software, it is the part where I have invested the most effort on the graphics. Below is shown a screen dump of the "Juke Box", but what is not shown, is the animation of the falling of the cards, upon pressing PAGE DOWN, incorporating darkening shadows, and the rolling of discs along the slot at the top right as selections are made.

Screen dump of the Juke Box window, of the music play-back
     system, known as The mUser

Once the juke box has been loaded, all the guest need do is to double click on a card, or single click on the card and single click on the "next" button.

The juke box displays, at the top of its window, the details of the song currently playing, and, along side this, the first few songs queued to be played.

When a selection is made, the guest will see her selection roll along the queue, confirming that the selection has been made. The juke box will refuse to allow the same song to be queued twice. This is to prevent inadvertant double selection or someone wanting to hear the same song all night.

There are also page up and down buttons which can be clicked to bring up songs which could not fit on the first page. As the page changes, the cards will roll down or flip up to reveal their contents for the next page.

There is no explicit limit on the number of songs which can be accommodated by the juke box, only the total limit of around twenty thousand for all programmes. A list this long would defeat the purpose of the visitor-friendly interface.

The more adventurous visitor, with a minimum of instruction, will also be able to play any song in the system, whether it has been provided in the juke box or not.

One special programme is used to provide the contents of the juke box. You can, however, save a number of particularly well constructed juke box contents into other programmes, to recall for future occasions.

The first two lines in the programme correspond to the top left card of the first page, the next two, to the card to its right, and so forth to the end of the row. The next pair of lines correspond to the first card on the next row.

The presentation of the juke box can be altered in a number of ways by yourself. Primarily, you can set the number of cards across and down. There are two songs per card.

When you create the programmes, you will notice a series of horizontal blue and red lines. The blue lines mark the ends of the row of cards and the red lines mark the end of the page of cards. If you adjust the number of cards across or down the juke box, these lines will be moved appropriately.

These lines assist you in presenting songs on pages appropriately. You might also consider presenting songs by each band in pairs. You can ask the system to organise the programme alphabetically by band, then reject the lesser songs whereever there is an odd number, then continue to reject songs until the programme ends with a red line, indicating that the last page is complete.

The software analyses the band and song title, and fits it onto the card as best it can, allocating lines between the band and song title according to need, and abbreviating with some intelligence. For example, if the song title includes a portion in brackets, and the entire song title can not be accommodated, the entire bracketed portion will be eliminated.

Personal MP3 Player

As the music is so conveniently available, it is natural to allow it to be down-loaded to personal MP3 players.

To be able to programme a personal MP3 player, the player must be able to connect to a USB port of the computer and be mountable as an external drive. This is typical of most MP3 players.

You then need to create one or several programmes. If you create a number of programmes, you can select a different one each morning, and download it to your player while you are having your breakfast. This operation can be started from either the full operator interface or from the remote control. You must use the full operator interface in order to create the programmes.

Car MP3 Player

Compared to personal MP3 players, car MP3 players have massive storage capacity, and so need to be programmed appropriately. The approach we have taken, guided by one of the manufacturers of these players, is to arrange the music into a series of folders within folders within folders.

To be able to programme a car MP3 player, the player must be able to connect to a USB port of a computer and be mountable as an external drive. This is typical of most MP3 players.

The idea is to place the MP3 files into folders corresponding to the album they're taken from, and place the album folders in a folder for the band they're by, and place the band folders in a category folder.

The way you approach this task, from “The mUser”'s point-of-view, is to create a number of song classifications, one corresponding to each of your proposed categories. These categories might be by genre, such as "Car Classical", "Car Rock", "Car Jazz", et cetera.

So you need, first, to create the song classifications, and make these classifications part of a classification group, with a name such as "Car Music". If you have two car MP3 players, then you will need to create two such groups, each with their own distinct set of classifications, even if you plan to maintain the car players identically.

The next part of the job, is to select which songs you want to include in these classifications.

Now as you create the classifications, you should keep an eye on the duration, which is displayed at the top of the window, to ensure that the songs, which you have selected, along with all the songs in the other classifications which you wish to include, will indeed fit.

Once you have defined what music you wish to download to the player, you might want to create a set of playlists. The disadvantage of the car MP3 player, with which I am familiar, is that you can play random music, a solid diet of one band or select an album or song individually. If you want to listen to a number of albums by different bands, you will need to manually select the next album while driving. The concept of automatically generated playlists is to try to emulate the functionality of a six or ten disc stacker, with a number of discs by different bands.

To generate the playlists, you will need to create a number of entries, each referencing the classification group corresponding to this player. The name given to each entry is used as the name for the folder which is to contain the playlists to be generated. You will then need to specify the number of discs to be included in each playlist, and a filter to define the types of songs you wish to be included in these lists.

For example, you could create an entry named, "Margaret's Classical Music", referencing "Car Music" as its group, with the filter: "Margaret&Art", and set the number of discs to, say, six. When the playlists are generated, if there were, say, 153 albums satisfying this filter, and included in the group, "Car Music", then there would be 26 playlists generated, 23 of which would contain six albums each, while the remaining three would include five albums each. The albums by the one "band" would be dispersed amoung the 26 playlists as widely as possible.

You may also specify a maximum album length. Any album which exceeds this length will be broken up and its parts distributed amoung other playlists. For example, If you specify a maximum album length of eighty minutes, and you have a box set of four Ella Fitzgerald CDs, totalling 243'16", which you loaded as one album, then this will be broken into four parts (as three times eighty minutes, 240 minutes, is still less than 243 minutes), with each part as near to 61 minutes as the songs allow. These four parts will appear in four distinct playlists.

From time-to-time, as you work your way through your playlists, you will want to download new music to the player. So as not to reshuffle the existing albums within the playlists, you can elect either not to touch the playlists (which you would probably do if only downloading a few albums), or to create an additional set of playlists just to cover the new albums (which you would do if there have been several albums downloaded since the last time the playlists were generated). Naturally the variety of material in these added playlists is limited, so every now and again you should decide to download a completely new set of playlists.

As well as using the automatically generated playlists, you can also download a programme to the car MP3 player as a playlist.

The progress of the download can be monitored using the full operator interface. The progress is also reported to the vacuum florescent display.

Song Editing

Many album tracks include more material than just the song proper. Examples include live albums especially, but also songs such as "San Franciscan Nights" by Eric Burdon and the Animals, or "Nights in White Satin" (album title: "The Night") by the Moody Blues which have spoken passages. There are also blank portions of final tracks which separate "hidden" songs from the last song on the album.

This extra material you would, typically, wish to hear when playing the album through, but not when playing a song at random, as part of a programme of songs, or when selected from the juke box.

In most cases, it probably does not bother you to hear this material, however, when you are creating a programme or loading a juke box you might want to be a little more particular.

For these cases, you can set a start and an end position within a song, so that, unless the entire album is being played, only that portion of the song will be played.

The facility which allows you to do this, presents a graphical representation of the stereo signals, allowing you to zoom in and pan along the song, and to play portions of the song. It also allows you to export a selected segment of the song, perhaps for you to use with other software to splice together some novelty track.

Edit song

You can also use this facility to play a portion of a song for its own sake, should you wish to.

For an alternative method of dealing with "hidden" songs, please refer to the next section, "Album Editing".

Album Editing

Occasionally, an album may be poorly divided into individual songs, so that, when the song is played independently of the album, there is a very abrupt start to the song. A particularly nasty example of this is the Yardbirds' "Train Kept A-Rollin'" four disc set - track seven of disc two commences the "Five Live Yardbirds" album, with the introduction, "Too Much Monkey Business", and half of "Got Love If You Want It". You can use this facility to shift the boundaries between the songs.

There are also occasions where a few songs on an album are tightly medlied, so you might decide to regard these songs as a single track. Examples of such heavily medlied tracks include the Beatles' "Mean Mr Mustard/Polythene Pam/She Came in Through the Bathroom Window" and David Bowie's "Sweet Thing/Candidate/Sweet Thing". You can use this facility to amalgamate such songs into a single track, so that, when played independently from the album, they are always played as a medley.

As also mentioned in the previous section, many albums, these days, include a "hidden" song, which is presented after a period of, generally, some minutes, after the final song of the album has finished. You can use this facility to divide the "hidden" song from the last song on the album.

This facility is made available when loading a CD into the computer. To provide this facility at any later stage would require the system to decompress the song, then recompress it after the divisions have been adjusted, decreasing the quality of the song.

This facility allows you to

  • shift the start and end markers for each song,

  • remove the end marker for a song and the start marker for the next, thereby joining two songs,

  • insert an end and a start marker in the middle of a song to split the track into two songs, and

  • move the end marker for one song away from the start marker for the next, thereby omitting a segment from the CD.

Like the "song editing", this facility also presents a graphical representation of the stereo signals, allowing you to zoom in and pan along the song, and to play portions of the song.

Virtual Songs and Albums

You are able to add songs from one album to another, without removing them from the original album, nor having two copies of the corresponding music file.

If you have all the regular albums by a certain band, and thereby have all the songs provided by the "Greatest Hits" album, which you have not bought, then you can use this feature to create the "Greatest Hits" album. Though many "Greatest Hits" albums include songs which were only ever previously released as singles.

Similarly, if you bought a boxed set of seventy-odd minute discs, comprising various albums by a certain band, then you can use this feature to create the individual albums from within this set. Examples include the Grateful Dead's "Birth of the Dead", the Yardbirds' "Train Kept a-Rollin'", and the Seekers' "The Complete Seekers" (which, I am sure, was at the time).

The true "basic concept" here is the "virtual song", as virtual songs can be added to any album. A "virtual album" is merely an album which consists entirely of virual songs, and holds no special significance within “The mUser”.

You might like to create a classification called "Virtual", in a class group called "Weighting", to which you would give a weighting of zero. You can then add your virtual songs to this classification. In this way you would prevent these songs being doublely represented in the automatic selection of songs.

You are also able to move songs from one album to another. In this way, you can create your own "Rarities" album, to hold all the bonus tracks that have been supplied on the CD reissues of a band's albums. In this way you can play the original album, without the bonus tracks (as it was meant to be played), yet have these bonus tracks still available.

This feature is also useful to divide classical albums, typically those Philips' Essential Classics releases, which feature two composers. For example, you could create a database entry for an album, by composer Edward Elgar, to hold his "Pomp and Circumstance: Marches 1 and 4", then move these tracks, from Gustav Holst's "The Planets", to this album.

Similarly, you can rearrange the order of songs on the album, to reflect the original running order of the LP, as some CD reissues of LPs provide a different running order. Sometimes this is the result of variations in the original running order depending upon which country pressed the LP, whilst other times you may have picked up a cheap disc, under a different title to the original LP and official CD reissue, with all the same songs, but in a different running order.

Internet CD Database

There are free Internet databases available, which provide the lists of songs on various albums. They identify CDs, using the number of tracks on the CD, the length of the CD in seconds, and the start of each track in 1/75ths of a second.

From this information, it should be able to uniquely identify each CD, however some of the information in these databases is a little wobblely, so there is a chance of it misidentifying the CD.

Also, the band names may not be consistently entered, and may not be entered as you would like. For instance you might find an entry for "Allman Brothers", another for "The Allman Brothers", another for "The Allman Brothers Band", and yet another for "Allman Brothers Band". If you were not to adjust your database after downloading this information, then these CDs would be treated as though they were by four distinct bands. Knowledge of the band for a CD is more than cosmetic within “The mUser”'s database, so to use this software correctly, you will need to assign the same band to each of the CDs by this band, and remove the additional bands from the list of bands, afterwards.

Also, there are often several pressings of each CD. When testing this interface, I selected a CD, which I felt sure would be included. The CD I chose was The Beatles' "Abbey Road". A match couldn't be found. Upon investigating this I found they did have this title, but their version had only sixteen tracks, one less than my version, which listed the originally hidden track from the LP, "Her Majesty", as a separate track from "The End".

The second CD I chose, Al Stewart's "Past, Present and Future" was matched, however, upon investigation, I found that there were four versions of this album in the database. Three of these had slightly varying track lengths, while the fourth could only have been misidentified, as, for one thing, the final track, "Nostradamus", which runs for around 10 minutes, was given as 2'43" for this CD. While this did not directly affect my attempt, it is a trap waiting for the person who has the CD that matches this one.

However, if you have a large CD collection, which you are intending to load into “The mUser”, and you have not already got a listing of the songs, then this is a good way to obtain the bulk of this data conveniently. On the other hand, as a holder of a large CD collection, you are likely to find that a larger proportion of your collection will not be mainstream, and so your success rate is likely to be lower than the reports you receive from friends would lead you to expect.

You can use the Internet CD Database to load all the information for the discs you are loading, or for only the song titles.

The procedure is, that when you load the CDs, if you want all the information to be loaded from the Internet CD Database, you select "Internet" at this time, then just swap the discs as they are done. If you only want to load the song titles from the Internet CD database, you select "Normal".

Then, after loading, you ask it to obtain the information from the Internet CD database. If you have supplied the band and album details, then it will only obtain the song titles. Otherwise it will obtain the band and album title as well.


In order for “The mUser” to make intelligent decisions about what to play, it needs to maintain some play statistics. This has already been alluded to when discussing the formulae.

The statistics, which “The mUser” maintains, are the last times each band and album were played, and the number of times each song has been played.

The band and album playing times are derived from the number of times each song has been played and the duration of the songs. It is done this way rather than by keeping tallies for the bands and albums, since, when filters are in place, the number of times certain songs have been played needs to be excluded from these tallies.

This can be complicated when a song is skipped. When this happens, “The mUser” will let the band's and album's last play times stand, but may decide to decrement the number of plays the song has had, depending upon the circumstances.

There is a report of the number of plays each song has had. This report is useful in determining to what extent songs are being neglected. Songs could be neglected, if they have been overlooked by all the audience classification groups, or do not satisfy the popular music mixes, or flagged as hated by an ever-present listener, or for a number of similar reasons. “The mUser” will not neglect a song merely because of randomness in the automatic selection process.

Also when listing the albums, a bargraph is provided showing the average number of plays the songs have received.

Remote Control

The remote control system comprises a vacuum florescent display and an infra-red-transmitting keypad, the "bopper".

The remote control system is designed to provide you with sufficient interface to the system for your day-in-day-out operations, so that you do not need to connect your notebook computer to the network for such actions. These functions include:

  • Showing the details of the song playing, including title, duration, who it is by, which album it is from, and the elapsed playing time,

  • Pause, resume, skip to next track, skip back through the history, and mute,

  • Adjusting the volume, and balance,

  • Showing which listeners are in attendance,

  • Adjusting listener attendance, and setting desired music mixes,

  • Changing the correspondence between listeners and classifications,

  • Changing the classification membership of a song, album, or band,

  • Selecting songs or albums to play,

  • Showing which, if any, programme of songs is engaged,

  • Engaging and disengaging programmes of songs,

  • Downloading songs to personal hardware MP3 players,

  • Monitoring the downloading to personal MP3 players,

  • Downloading songs and playlists to car MP3 players,

  • Monitoring the downloading to car MP3 players,

  • Reviewing the play list,

  • Skipping the first song on the play list,

  • Erasing the play list,

  • Displaying and adjusting the time of day,

  • Making temporary adjustments to the schedule,

  • Engaging, disengaging and controlling the CD player,

  • Turning on and off normalisation,

  • Setting the automatic selection mode to "song" or "album",

  • Loading CDs relying on the Internet for details,

  • Connecting to and disconnecting from the Internet,

  • Downloading CD details from an Internet based CD database, and

  • Shutting down and powering off the computer.

On various occasions, messages will be presented on the vacuum florescent display. Several of the more common messages will contain a reverse video capitalised portion which will be positioned in one of the four corners or the top or bottom centre of the display. This is so arranged to enable you, once you become familiar with the remote control system, to be able to recognise these messages from further away.

The vacuum florescent display, when not responding to bopper operations, is used to show details of the song currently playing. If there is no song playing, the display will tell you why (paused, stopped, nobody present, schedule shutdown).

It will also return to this mode, if the bopper is not operated for a while.

In displaying the song details, the top line of the display presents the song's title, followed by the length of the song, with the elapsed time displayed at the end of the first line. The second line presents the band name, followed by a colon (':'), then by the album title. If either line can not accommodate the information being displayed, a full stop will be added at the end of the text to be displayed, and that text will be horizontally scrolled, except for the elapsed time which remains at the end of the first line.

This will appear similar to:

	   |range 06:1 01:56|
	   |ody Blues: Seven|

The above is a snap-shot of the scrolling display. In this example the entire top line, excluding the elapsed time, would read: "Isn't Life Strange 06:10.", while the entire second line would read: "The Moody Blues: Seventh Sojourn.".

For compilation albums of various artists, the first line contains the song title in quotes, with "by" and the band name following, then the song duration, while the second line presents only the album title.

For eponymous (self-titled) albums, rather than showing the band name twice, instead the band name is presented in quotes and the album title is omitted (or, maybe, it's the other way around?).

In selecting songs to play, the bopper's number keys are used, the way a mobile phone's are, to enter letters. You first name the band, then the album, then, if not playing the entire album, the song. You may skip entering the album if you do not know or care which album the song is from.

You do not double and triple press keys to bring up their alternate letters, instead the software will scan the list of bands, albums, and songs, to present any that match the sequence of numbers typed so far. You can stop typing when the correct match is found, or operate the up and down arrows to call up other matches. Special care has been taken so that you need not enter the leading "The " which preceeds many band names, sometimes inconsistently. Also, when entering the album and song titles, you can start at the beginning of any word in the title, which allows you to select, say, "Study War No More (Down by the Riverside)", when you know the song by the title "Down by the Riverside".


Considerable tailoring of the software is provided for. Note, this is distinct from customisaton; tailoring you do for yourself, customising we do for you.

It has already been mentioned that each user is allowed to modify the colour scheme, fonts, positions and sizes of windows to suit himself, the formulae controlling the selection of songs can be changed and such change can be set to automatically occur when given music mix elements are engaged, and that alternate methods of compression and normalisation are available.

There is total flexibility in the classification of songs and the creation of music mixes, not to mention programmes.

The juke box presentation can be modified, allowing more cards across and down (resulting in smaller cards), the size of the card spindle, the curve on the card corners, the space between the cards, the shadow from the cards, and the speed at which they tumble forward upon "page-down", are all adjustable.

The remote control's bopper-idle timeout, horizontal scroll rate, vertical scroll rate, and the size of audio steps are all adjustable.

The behaviour of the system, when it is scheduled to stop playing, can be modified to allow a grace period in which a song may be allowed to finish, and a fade out time if the song is not going to finish within the grace period.

Much of the text can be changed, including all the menus, prompts for database values, and the text presented on the vacuum florescent display. Also the arrangement of the menus can also be altered.

And, very importantly, if you get into trouble from over-adventurous tailoring of the software, you can restore many of these settings to their factory defaults.