Mserv - a free open source jukebox-style music server for unix-like systems

Telnet client user guide

This manual documents using Mserv through the built-in telnet interface. You will need a telnet client to make use of this feature. If you prefer graphical interfaces where you simply click to perform actions then this is not the method for you - check out the clients that are available.

If you are a new user, it is recommended you read through this manual from top to bottom - until you get bored, that is.

Connecting to the server
USER, PASS
Setting your password
PASSWORD
Disconnecting from the server
QUIT
Using the on-line help system
HELP
Listing the albums available
ALBUMS
Listing the tracks within an album
TRACKS
Displaying information about an album or track
INFO
Viewing and adding to the queue
QUEUE, UNQUEUE, CLEAR
Playing and controlling play
PLAY, PAUSE, STOP, NEXT, REPEAT
Random play
RANDOM, FACTOR
Rating tracks
RATE, RATINGS
Filtering
FILTER
Searching
SEARCH, SEARCHF, ASEARCH
Volume and level controls
VOLUME, BASS, TREBLE
Talking amongst users
SAY, EMOTE, WHO
Server status
STATUS, HISTORY, TOP, DATE
Further information on ratings
USERINFO, CHECK
Privileged commands
GAP, KICK, RESET, SYNC, SET
Advanced command syntax

Connecting to the server

Before you begin you will need a username and password in order to connect to the server. Your Mserv administrator will give this to you. Once you have connected to the system you can change your password, however your username is unique to you and cannot be changed easily.

If you have successfully connected to the server you will be presented with text that looks something like:

Connected to server.mserv.org.
Escape character is '^]'.
200 Mserv 0.30 (c) James Ponder 1999-2000 - Type: USER 
.

This is the welcome banner and announces the version of Mserv that you have connected to. As you can see, it suggests that you type USER <username> to continue. Commands in Mserv are case insensitive, so you can use USER or user or infact anything inbetween the two. Command parameters are always separated from one another with one or more spaces. If your username is fred, you would type something like:

USER fred

Once you have typed in USER followed by your username, you will be prompted for your password, like so:

201 Username ok - now type: PASS 
.

This means that the server has understood your connection request and requires a password to authenticate you. In exactly the same way that you specified your username, specify your password by typing PASS followed by your password. If your password is silly then you need to type:

PASS silly

If your username and password were valid, Mserv will greet you with:

[] Successfully authenticated! Welcome fred.

From this point on, all server responses are prefixed with [] so that it is easy for you to distinguish something you have typed from that which the server has said.


Disconnecting from the server

To quit, simply type:

QUIT

There are no further parameters to this command.


Setting your password

To set a new password you need to know your old password. This might sound strange but this is to ensure someone else doesn't change your password whilst you are away from the keyboard.

The command you need to use is PASSWORD, which has two parameters - your old password and your new password. For example, if your old password was silly and you would like your new password to be wiggle, you would type:

PASSWORD silly wiggle

Note: Passwords are encrypted on the server, but because you are connected using telnet your password could be read off the network, and as such you should choose a password for Mserv that is different from any other. Also, you can never stop the Mserv administrator from altering their copy of Mserv to store user's passwords.


Using the on-line help system

Mserv has a simple, but very effective, help system. All commands have descriptions and syntax information available. You should get used to using it as it is extremely useful.

To start, simply type:

HELP

The server will respond with a list of commands. Only the commands that you have access to are displayed:

[] This is Mserv version 0.30
[] Commands:
[]     QUIT          HELP          USER          PASS          DATE          
[]     STATUS        USERINFO      WHO           SAY           EMOTE         
[]     ALBUMS        TRACKS        RATINGS       QUEUE         UNQUEUE       
[]     PLAY          STOP          NEXT          PAUSE         CLEAR         
[]     REPEAT        RANDOM        FILTER        FACTOR        TOP           
[]     VOLUME        BASS          TREBLE        HISTORY       RATE          
[]     CHECK         SEARCH        SEARCHF       ASEARCH       INFO          
[]     PASSWORD      IDEA          X

Once you have identified a command you'd like more information on, type:

HELP <command>

For example, let's say you're interested in the HELP command itself, so you would type:

HELP help

The response from the server is two lines - the first is a description of the command itself, and the second is a syntax line that indicates what parameters are available. For the command HELP:

[] Displays help
[] Syntax: HELP [<command> [<sub-command>]]

The syntax lines are standard BNF syntax:

Thus, you can specify HELP with no parameters, or HELP <command> or lastly HELP <command> <sub-command>. The latter form is useful for commands like SET which have sub-commands, rather than being a command itself.


Listing the albums available

Mserv is designed around having a large number of albums containing a small number of tracks, thus mirroring real-life CD collections.

To list the albums available, type:

ALBUMS

The server will list the albums in the following format:

[]   1 Abba                 Gold (Greatest Hits)
[]   2 Abba                 The music still goes on
[]   3 Alanis Morisette     Jagged little pill
[]   4 Alisha's attic       Alisha rules the world
[]   5 Alisha's attic       Illumina
[]   6 All Saints           All Saints
[]   7 Andre Delgada        Mountain Moods
[]   8 Aqua                 Aquarium
etc.

The albums are numbered, and all commands use this number to reference the album. You are not expected to remember these numbers, but they will be displayed to you for typing in. All albums have an author and a name, displayed above side by side.


Listing the tracks within an album

The command TRACKS is used to list the tracks inside an album. It takes one optional parameter which specifies the album number. Without a parameter this command displays the tracks within the album that the currently playing track came from.

So, if you were to type:

TRACKS 8

The server will reply listing the tracks in the following format:

[] Tracks in album 'Aquarium':
[]    8/1 S Aqua                 Happy boys & girls                        3:39
[]    8/2 G Aqua                 My oh my                                  3:26
[]    8/3 G Aqua                 Barbie girl                               3:19
[]    8/4 N Aqua                 Good morning sunshine                     4:06
[]    8/5 G Aqua                 Doctor Jones                              3:25
[]    8/6 G Aqua                 Heat of the night                         3:37
[]    8/7 N Aqua                 Be a man                                  4:25
[]    8/8 S Aqua                 Lollipop (Candyman)                       3:38
[]    8/9 S Aqua                 Roses are red                             3:47
[]   8/10 N Aqua                 Turn back time                            4:11
[]   8/11 N Aqua                 Calling you                               3:32

On the far left is the track number, written in <album>/<track> form. All command parameters are space separated so when entering an album/track combination into a command make sure you don't put the /.

The letter that follows the track number is your current rating of the track. If you've not rated the track it will be a - which indicates that it is unrated.

The next two columns contain the author and name of the track. Note that although in this example the author of all the tracks are the same as the author of the album, this does not necassarily have to be the case.

The time on the far right is the track length in <minutes>:<seconds>.


Displaying information about an album or track

The INFO command is used to display information about albums or tracks. Without a parameter this command will display information about the currently playing track. With one parameter this command displays information about the specified album, and with two parameters this command displays information about the specified track.

So, if you typed:

INFO 8

The server response would be:

[] Album 8
[]   Album name:      Aquarium
[]       author:      Aqua
[]   Total duration:  41:10.2

The name and author of the given album are displayed, along with a total of all the durations within the album. This total is not a property of the album as such, it is simply calculated from the tracks within it.

If you typed:

INFO 8 3

The server would interpret this as a request for information on track 3 in album 8:

[] Album 8, track 3
[]   Track name:      Barbie girl
[]         author:    Aqua
[]   Album name:      Aquarium
[]         author:    Aqua
[]   Dated:           unknown
[]   Duration:        3:19.9 (256kbps)
[]   Genre(s):        pop
[]   Played:          21 days ago
[]   Filter:          included
[]   Rated:           GOOD; mean 75.0%
[]                    temporally adjusted to 71.2%

The information above is described below:

Track name/author
The name and author of the track
Album name/author
The name and author of the album containing the track
Dated
This is the year of the track. This year is entered by your Mserv administrator, and as such could indicate the date of production, copyright, or something else.
Duration
The duration information lists the track length in <minutes>:<seconds>.<tenths>, with miscellaneous related information in brackets. With mp3s this is normally the bitrate if it could be deduced.
Genre(s)
This lists the genres that this track belongs, if any. The genres are set by your Mserv administrator and can be anything at all in order to segregate tracks. The genre is most useful for setting filters.
Played
This displays how long ago the track was last played.
Filter
The filter currently set makes this track either included or excluded.
Rated
This shows rating information for this track. Your rate is shown followed by the mean rating when all users are considered for this track. The temporally adjusted rating is a biased rating when the time since last play is taken into account. This makes recently played tracks have a lower rating than those that haven't been played for some time.

Viewing and adding to the queue

The QUEUE command is used for displaying the current queue contents, as well as for adding new tracks and even albums to the queue.

So, if you type:

QUEUE

the contents of the queue are displayed:

[] The following tracks are in the queue:
[] squish     169/10 S The Doobie Brothers  Long train running             3:28
[] squish       53/6 S Dubstar              Week in week out               4:26
[] squish      155/1 S The Corrs            Only when I sleep              4:24
[] squish      181/1 S Tasmin Archer        Sleeping satellite             4:41

The next track to be played is at the top, with the most recently added queue entries at the bottom.

If a different user adds a track to the queue, their track will be placed inbetween any consecutive songs that were queued by the same user. This means that a single user cannot dominate the queue by repeatedly adding entries. Note however that Mserv is a co-operative environment, there are no restrictions stopping a user from removing someone else's track from the queue, or infact clearing it entirely.

To queue track 8/9, type:

QUEUE 8 9

The server will reply with:

[] The following tracks have been added to the queue by squish:
[] squish        8/9 S Aqua                 Roses are red                      

This output is actually a broadcast message, which means that as well as being shown to you, it has also been sent to all users currently connected, thus alerting them that you have placed a new item in the queue.

You can also queue an entire album by omitting the second parameter, so to queue the entire album 3:

QUEUE 3

This will cause a broadcast message to everyone looking like:

[] The following tracks have been added to the queue by squish:
[] squish        3/1 G Alanis Morisette     All I really want              4:44
[] squish        3/2 - Alanis Morisette     You oughta know                4:09
[] squish        3/3 - Alanis Morisette     Perfect                        3:07
[] squish        3/4 N Alanis Morisette     Hand in my pocket              3:41
[] squish        3/5 - Alanis Morisette     Right through you              2:55
[] squish        3/6 N Alanis Morisette     Forgiven                       5:00
[] squish        3/7 G Alanis Morisette     You learn                      3:59
[] squish        3/8 - Alanis Morisette     Head over feet                 4:27
[] squish        3/9 - Alanis Morisette     Mary Jane                      4:40
[] squish       3/10 N Alanis Morisette     Ironic                         3:47
[] squish       3/11 - Alanis Morisette     Not the doctor                 3:47
[] squish       3/12 G Alanis Morisette     Wake up                        4:53

As you can see this queues up the tracks in order that they appear in the album. If you wish the server to randomly play the tracks in an album then specify RANDOM as the last parameter. Each time an album is queued it will be randomised differently. So, sticking with album 3, type:

QUEUE 3 random

and magically, the server will randomise the tracks and output a broadcast:

[] The following tracks have been added to the queue by squish:
[] squish       3/12 G Alanis Morisette     Wake up                        4:53
[] squish        3/9 - Alanis Morisette     Mary Jane                      4:40
[] squish        3/2 - Alanis Morisette     You oughta know                4:09
[] squish       3/10 N Alanis Morisette     Ironic                         3:47
[] squish        3/6 N Alanis Morisette     Forgiven                       5:00
[] squish        3/4 N Alanis Morisette     Hand in my pocket              3:41
[] squish        3/3 - Alanis Morisette     Perfect                        3:07
[] squish        3/5 - Alanis Morisette     Right through you              2:55
[] squish        3/7 G Alanis Morisette     You learn                      3:59
[] squish        3/1 G Alanis Morisette     All I really want              4:44
[] squish        3/8 - Alanis Morisette     Head over feet                 4:27
[] squish       3/11 - Alanis Morisette     Not the doctor                 3:47

If you wish to remove a track from the queue you can use the UNQUEUE command. For example, if you wished to remove track 3/8 you would type:

UNQUEUE 3 8

Lastly, to clear the queue, type:

CLEAR

The server will acknowledge this with the broadcast:

[] Queue cleared by squish

Starting, stopping and pausing play

PLAY

Assuming the server is idle, queuing a track does not start it playing. To do this, you must type:

PLAY

Which will commence play of the first track in the queue. If there are no tracks in the queue, or the queue becomes empty in play mode, then play will stop or the server will start to play random tracks (if enabled).

PAUSE

Whilst a track is playing, you may pause playback by typing:

PAUSE

To resume play, issue PLAY again.

STOP

To stop play you can type:

STOP

The queue is not cleared by stopping, so that you can resume play by issuing PLAY.

NEXT

This will stop play of the currently playing track and move onto the next track in the queue, or the next random track if the queue is empty (if random is enabled).

REPEAT

This command causes the currently playing song to be placed back on the queue.


Random play

Normally the server is not enabled for random play, and will only play tracks entered into the queue. Mserv has an advanced random system that tries to play tracks that those in the room want to hear. This works because users (over time) rate tracks on the server. Mserv combines the users ratings of those who are currently logged on to produce a mean value, and then adjusts this value according to how long ago it was played (temporal adjustment).

The RANDOM command takes one optional parameter, on or off. For example, to turn on random play, type:

RANDOM on

To display the current setting, type RANDOM on it's own.

Once Mserv has sorted the tracks based on their rating, it chooses a track. In order to not be completely random it has a higher chance of choosing tracks further up the list (higher rated tracks) than ones lower down the list. In order to do this it passes it's random number through a power/log function.

You can set how 'more likely' Mserv is to play tracks with higher ratings by adjusting the FACTOR. This factor is set to 0.60 by default. Any values above 0.5 mean the server will play favoured tracks, any values below 0.5 mean the server will play unfavourable tracks! (US. favor/favorable)

Note that the special value 0.5 means the server will play truely random tracks and user's ratings will not affect choice.

For example, for it to be more likely for the server to play your worst tracks, type:

FACTOR 0.2

Rating tracks

There are five levels to which a track can be rated: AWFUL, BAD, NEUTRAL, GOOD and SUPERB. These levels are associated with you liking the track 0%, 25%, 50%, 75% or 100%. A generally accepted way of rating is to rate tracks NEUTRAL if you don't care much for the track, but are happy to listen to it. Rate tracks GOOD if you like the track, but not enough to go wild about it, and SUPERB if you love it. Rate something BAD if you don't like the track and AWFUL if you want to ensure the music server will never ever play the track in random mode (this rating is special in this regard).

There are two other rates that the server might think you've rating a track that occur automatically: UNRATED and HEARD. All tracks start off UNRATED and become HEARD when you listen to them the first time. This is mostly for information purposes when you use the INFO command.

RATE

The RATE command takes between 1 and 3 parameters, the last of which is always one of the five ratings listed above. If you don't specify anything else then this is an instruction to rate the currently playing track. For example:

RATE GOOD

rates the current track, GOOD. You also rate any track on the server by giving the command the album and track you wish to rate:

RATE 8 3 GOOD

Although it's not recommended, you can also rate an entire album. This will only affect tracks that haven't been rated, thus 'filling in the blanks', e.g.:

RATE 8 NEUTRAL

Will rate all tracks NEUTRAL in album 8, except track 3, since it was rated GOOD above.

RATINGS

The INFO command shows you what you rated a track, but in order to see what everyone else rated a track you need to use the RATINGS command, for example:

RATINGS 8 3

This will return something like:

[] Ratings of track 'Barbie girl' (8/3):
[]   Jogu                  GOOD - 12th April 1999
[]   XLCUS              NEUTRAL - 12th April 1999
[]   squish                GOOD - 2nd May 1999
[]   glen                  GOOD - 5th October 1999
[]   jon                 SUPERB - 26th July 1999
[]   Polsy                 GOOD - 4th August 1999
[]   tim                  AWFUL - 23rd August 1999

Quite simply this shows the user's name along with what they rated the track and when.

You can use the RATINGS command without any parameters, in which case it will show you the ratings for the currently playing track.


Filtering

This option is only applicable once RANDOM has been turned on, and allows you to choose a sub-set from which random tracks will be chosen. This can be used to set the 'mood' of the server, for example so it only plays 80s tracks, pop tracks, or tracks rated by everyone to be GOOD or SUPERB.

The filter expression is a simple mathematical expression that is matched against every track in turn to see if it should be included in the random selection process. There are several special characters that you can use in the filter:

The following conditions are permitted in the filter:

<rating>
This matches true if there is at least one person currently connected to Mserv who has rated the track this rating.
HEARD
This matches true if there is at least one person currently connected to Mserv who has heard the track.
RATED
This matches true if there is at least one person currently connected to Mserv who has rated the track (any rating).
PLAYED
This matches true if the track has been played before.
<user>=<rating>
This matches true if the track has been rated <rating> by <user>.
<user>=HEARD
This matches true if the track has been heard by <user>
<user>=RATED
This matches true if the track has been rated by <user> (any rating)
year<operator><year>
This matches true if the year of this track matches the given <year>.
duration<operator><duration>
This matches true if the duration of this track matches the given <duration>, measured in seconds.
lastplay<operator><lastplay>
This matches true if the last play of this track matches the given <lastplay>, measured in hours.
album<operator><album>
This matches true if the album number of the track matches the given <album> number.
track<operator><track>
This matches true if the number of the track matches the given <track> number.
search=<string>
This matches true if the track name or author contains the string <string> - like the SEARCH command.
genre=<genre>
This matches true if the track has the given <genre> in it's list of genres.

Where:

For example:


Searching

The SEARCH command takes one parameter, a piece of text to search upon. The server will look for tracks whose name or author contains the text that you are searching for. For example:

SEARCH power of

Will look for tracks containing the string power of. The command does not support AND/OR type operations. The reasult of this command might result in something like:

[] Search results:
[]             13/11 - Andre Delgada        The power of love              4:40
[]             188/9 - Eternal              Power of a woman               3:53
[]             207/2 - Jennifer Rush        The power of love              4:24
[]             99/10 S Madonna              The power of good-bye          4:12

A more advanced type of search is SEARCHF which takes a filter string as an argument. The format of this is exactly the same as for the FILTER command.

For example:

SEARCHF bob=superb

Which results in a list of tracks that user bob has rated superb:

[] These songs match filter:
[]               2/1 S Mark Snow            X-Files Theme                  2:25

The above commands search for tracks, there is also the ASEARCH command for searching for an album. Use it as you would the SEARCH command.

For example:

ASEARCH whitney
would search for albums containing whitney in either the album author or name:
[] Search results:
[] 290 Whitney Houston      My love is your love                               
[] 291 Whitney Houston      The Greatest Hits - Disc 1                         
[] 292 Whitney Houston      The Greatest Hits - Disc 2

Volume and level controls

Mserv has three commands that interact with the sound system: VOLUME, BASS and TREBLE. They may not be enabled on your server as it requires that Mserv has support for the particular system that Mserv is running on.

All three commands support the same parameters. To see what the current setting is, simply type the command. For example, the current volume level can be shown by typing:

VOLUME

The response is a percentage between 0 and 100:

[] Volume is currently 34%

To change a setting you can enter a single parameter to represent the new value, so to change the volume setting to 50%, type:

VOLUME 50

This will cause the server to broadcast a message to all currently connected users indicating the new volume setting:

[] Volume has been set to 46% by squish

As you can see, Mserv set the volume to 46% and not 50%. Nothing has gone wrong - what has happened is that Mserv told your sound system to change the volume to 50%, but your sound system chose to set itself to 46%. This usually happens because sound cards don't always have 100 levels of sound. It is quite common to find sound cards that have volume steps of 3% or 6%.

Another form of parameter is an increment or decrement. To specify this you put a plus or minus symbol followed by the percentage value to increase or decrease the sound level. For example, when the sound system is at 46% and you type:

VOLUME +10

The server will increase the level to 56%, but of course your sound system will round this to the nearest setting it can accomodate:

[] Volume has been set to 52% by squish

On this particular server, this means it changes the setting to 52%.

For systems that exhibit this rounding, another useful command exists:

VOLUME +

Which simply increases the volume to the next available step. You can also specify multiple +s to increase the volume in that many steps, e.g. VOLUME +++ will increase the volume three times.

BASS and TREBLE work in exactly the same way as above.


Talking amongst users

Mserv is not a talker - there are deliberately no whispering, groups, lists, channels, etc. The two commands available are SAY and EMOTE. If you wish to say something, simply type SAY followed by what you wish to say. For example:

SAY hello fred

Will result in the following being broadcast to all connected users:

[] <squish> hello fred

Your username is placed in angled brackets, followed by your text. If you wish to do an emotion, you need to use EMOTE. For example if you wished to grin at someone, you would type:

EMOTE grins

Will result in:

[] * squish grins

Finally, if you wish to see who is online at the moment, you can use the WHO command, which takes no parameters. This will result in a listing looking like:

[] The following people are online:
[]   Name                         Flags Idle Site
[]   squish                       P        0 192.168.1.44
[]   jogu                         P       14 192.168.1.23
[] 2 connected, 2 total

The list shows the name of the user, their flags, how many minutes they have been idle, and the IP address of the site they are connected from.

The flags are defined as:


Server status

The server has a number of commands for displaying information about what is going on.

STATUS

If a song is playing, you have already encountered the INFO command to display information about the currently playing song, but a more general command STATUS is available for information about the server itself.

There are no parameters for this command, and the output looks something like:

[] Paused on album 37, track 7
[]   Track name:      International velvet
[]         author:    Catatonia
[]   Time playing:    2:48
[]   Filter:          (rock|pop)&(good|superb)
[]   Tracks included: 2081
[]          excluded: 1256
[]   Random:          ON (0.60)

The first line indicates whether the server is currently paused, playing or stopped. The currently playing track name and author are displayed along with how long since the track was started. The current filter setting is shown along with how many tracks this includes and excludes from random play. The random setting, whether on or off, is shown on the last line along with the random factor setting.

HISTORY

The HISTORY command shows you a list of recently played tracks:

[] The following tracks were recently played:
[] random       37/7 G Catatonia            International velvet               
[] random      177/9 G Julia Fordham        (Love moves in) mysterious ways    
[] random     195/13 S Sash! Featuring La T Stay                               
[] random     155/13 S The Corrs            No good for me                     
[] random     220/19 G Meat Loaf            I'd do anything for love (but I won
[] random      129/5 G Roxette              Spending my time                   
[] random      93/13 S Louise               Who do you love                    
[] random       32/5 - Bon Jovi             Bed of roses                       
[] random      191/5 G Deep Blue Something  Breakfast at Tiffany's             
[] random      172/5 G Free                 Alright now                        

The most recently played song is shown first. The list is truncated to 20 items. The name on the left is the name of the user who queued the track, or random if it were chosen randomly by the computer (filters permitting).

TOP

The TOP command shows you a list of the most likely to be played tracks. It takes one optional parameter that indicates the number of lines to be displayed, default 20 items.

For example, if you type

TOP 10

You should see something like:

[] Most likely to be played tracks:
[]  1.27%      155/1 S The Corrs            Only when I sleep              4:24
[]  1.25%     187/10 S Sacred Spirit        Wishes of happiness and prospe 4:29
[]  1.24%     156/14 S The Corrs            No good for me                 4:00
[]  1.22%     223/21 S Lou Reed             Walk on the wild side          4:08
[]  1.21%      117/5 S Queen                Bicycle race                   3:03
[]  1.19%      108/4 S Natalie Imbruglia    Leave me alone                 4:23
[]  1.18%     156/15 S The Corrs            Little wing                    5:09
[]  1.17%      163/3 S U2                   Sweetest thing                 3:05
[]  1.15%      133/2 S Savage Garden        I want you                     3:52
[]  1.14%       95/1 S Madness              House of fun                   2:47

The most likely to be played track is 155/1, 'Only when I sleep', with a probability of 1.27%. The order of these tracks is determined by the ratings of the currently logged on users, but the percentage 'weighting' of the best tracks can be changed using the FACTOR command.

DATE

A very useful command; DATE takes no parameters, and tells you the date on the server. This relies on the date being correct on the machine running the server, of course:

[] Local time is 20:56 on Sunday 2nd January 2000

Further information on ratings

CHECK

Quite often Mserv is used to hold real CDs. This means that it is quite likely that one song may appear on more than one album.

The CHECK command goes through the tracks on the server and displays which tracks are titled with the same author and name as each other and that you have rated differently.

For example, if there is a track authored by 'Billie' called 'Honey to the Bee' numbered 25/10 and it is also in a different album and numbered 199/7, and you've rated 25/10 as GOOD but haven't heard 199/7 yet, CHECK will tell you:

[] These songs are inconsistent:
[]             25/10 G Billie               Honey to the bee               5:04
[]             199/7 - Billie               Honey to the bee               3:40

As you can see, these songs are different in duration, one is at least a minute longer than the other - so it is up to you to decide whether or not you want to rate them the same.

USERINFO

The USERINFO command shows you how you've rated songs so far:

[] User squish
[]   Superb:          5.9% (196)
[]   Good:            31.0% (1035)
[]   Neutral:         18.7% (625)
[]   Bad:             1.1% (37)
[]   Awful:           0.3% (11)
[]   Heard (unrated): 40.2% (1341)
[]   Unheard:         2.8% (92)
[]   Index:           100.0% (squish/squish)

The first 5 lines indicate what percentage (with actual numbers of tracks in brackets) of tracks you've rated the rating level. Heard and unheard show how many tracks you've heard and not rated, and not even heard, respectively.

This command can be used on another user to find out how they have rated. So if you type:

USERINFO jogu

The output becomes:

[] User jogu
[]   Superb:          11.1% (370)
[]   Good:            52.1% (1740)
[]   Neutral:         25.5% (852)
[]   Bad:             2.9% (97)
[]   Awful:           1.2% (41)
[]   Heard (unrated): 3.4% (115)
[]   Unheard:         3.7% (122)
[]   Index:           85.8% (squish/jogu)

The last line shows an index, which is an evaluation of how compatible your rating is with the user you've requested information about.


Privileged commands

These commands can only be used by users that are privileged. You can tell if you're a privileged user by using the WHO command and seeing if you have a P or M flag next to your name.

GAP

The gap command sets the delay between each track, and is measured in seconds. The default is a one second delay. The command without a parameter displays the current setting.

KICK

Rowdy users are not appreciated, and the KICK command can be used to remove users from the system. The command takes one parameter, the number of minutes to prohibit them from re-connecting. This defaults to 1.

SYNC

This command synchronises the in-memory database with that contained within the on-disk database. No new tracks are loaded or deleted, just the contents are ensured to be the same. Mserv will automatically detect altered on-disk files when anything is changed for that particular track, but when you've altered a large number of files this command can be handy. Numbers of tracks and albums will remain the same.

RESET

The RESET command stops play, ensures all data is saved to disk that needs to be, removes the in-memory database and resets from the disk. The currently connected users are not disconnected, but beyond that everything is re-initialised. This command is useful for when you have added new albums to the on-disk database. Albums and tracks might change numbers after this command, it is always best to use SYNC where possible.

SET

The SET command is for changing the properties of albums and tracks. It is usually done off-line using the mservedit program, which is both faster and easier.

Note that after changing anything below, lists such as the author list, genres list, etc. (as used in search functions, etc) will not be updated until you RESET. The reason for this is that Mserv clients may have remembered numbers representing the genres, tracks, albums, authors, etc., and resetting informs them safely of this change.

Albums

ALBUMAUTHOR

This command takes two parameters - the album number and the string you'd like to set the album author to.

ALBUMNAME

This command takes two parameters - the album number and the string you'd like to set the album name to.

Tracks

AUTHOR

This command takes three parameters - the album number, the track number and the string you'd like to set the track author to.

NAME

This command takes three parameters - the album number, the track number and the string you'd like to set the track name to.

YEAR

This command takes three parameters - the album number, the track number and the number you'd like to set the track year to.

GENRE

This command takes three parameters - the album number, the track number and the string you'd like to set the genre to. This should be a comma-separated list.


Advanced command syntax

One feature that advanced users might like to know about is that any command that displays rating information can be instructed to display the same inforation, but for a different user.

Prefix the entire command by the user you wish to view the ratings for in square brackets.

For example, if you type:

SEARCH block

This could result in:

[] Search results:
[]            199/14 - Blockster            You should be...               3:37
[]             203/3 N Soundgarden          Block hole sun                 4:33
[]             223/8 G Sweet                Blockbuster                    3:11
[]             194/3 G The Chemical Brother Block rockin' beats            3:23
[]            214/18 G The Chemical Brother Block rockin' beats            4:59

However, if you type:

[fred]SEARCH block

You would then get the same information, but with fred's ratings:

[] Search results:
[]            199/14 G Blockster            You should be...               3:37
[]             203/3 N Soundgarden          Block hole sun                 4:33
[]             223/8 G Sweet                Blockbuster                    3:11
[]             194/3 N The Chemical Brother Block rockin' beats            3:23
[]            214/18 N The Chemical Brother Block rockin' beats            4:59

This feature can be used with the USERINFO command to display the index between two users. For example, say your name was squish, and you wanted the index between fred and joe. You would type:

[joe]USERINFO fred