123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 |
- .TH JUKE 7
- .SH NAME
- juke \- music jukebox
- .SH SYNOPSIS
- .B juke
- [
- .B \-t
- ]
- [
- .B \-w
- ]
- [
- .B \-h
- .I srvhost
- ]
- [
- .B \-s
- .I srvname
- ]
- .ift .sp 0.5
- .ifn .sp
- .B games/jukebox
- [
- .B \-t
- ]
- [
- .B \-w
- ]
- .ift .sp 0.5
- .ifn .sp
- .B games/jukefs
- [
- .B \-m
- .I mountpoint
- ]
- [
- .B \-s
- .I srvname
- ]
- [
- .I mapfile
- ]
- .SH DESCRIPTION
- .I Jukebox
- controls a playlist server
- (see
- .IR playlistfs (7))
- through a graphical user interface. It connects to a music database server which reads a set of
- .I map
- files that describe recordings and their location. Currently, there is
- one set of maps, mostly for classical music, with some jazz and other stuff
- thrown in. These are served by
- .BR jukefs ,
- which presents a file system conventionally mounted at
- .BR /mnt/juke .
- The playlist, explained below, is managed by a file system implemented by
- .IR playlistfs (7)
- and normally mounted on
- .BR /mnt .
- .PP
- .I Jukebox
- is most easily started through the
- .I juke
- shell script.
- .PP
- .I Jukebox
- has four windows, which can be selected by clicking the appropriate tab
- at the top of the window.
- .PP
- Above the tab are nine buttons and a volume slider. The
- .ift buttons, shown below,
- .ifn buttons
- are named, from left to right,
- .IR Exit ,
- .IR Pause ,
- .IR Play ,
- .IR Halt ,
- .IR Back ,
- .IR Forward ,
- .IR Root ,
- .IR Delete ,
- and
- .IR Help .
- The buttons are
- .I active
- when they are displayed in dark green (or red). When they are pale blue
- they are
- .IR inactive .
- The Exit button is always active; it exits the program (but leaves the playlist and music database
- servers running).
- .PP
- The
- .I browse
- window is for browsing through the music and selecting music to play.
- Browsing down in the music hierarchy is done by clicking button one on
- an item. Clicking button three goes back up.
- Clicking button two recursively adds all files below the selected item to
- the
- .IR "play list" .
- .PP
- The selected music is displayed in the
- .I playlist
- window.
- The track currently playing is shown in the
- .I playing
- window.
- .PP
- The
- .I Root
- button browses back to the root.
- .PP
- The
- .I Delete
- button empties the playlist.
- .PP
- The
- .I Help
- displays a minimal on-line manual.
- .PP
- .I Play
- starts playing at the beginning of the play list, or at the selected track in
- the play list.
- .PP
- During play,
- .IR Pause ,
- .IR Stop ,
- .IR Back ,
- and
- .I Forward
- are active.
- .I Back
- and
- .I Forward
- go back or forward a track at a time. The other buttons do the obvious thing.
- .PP
- The
- .B \-t
- flag chooses a tiny font, useful for handhelds.
- .PP
- The
- .B \-w
- flag creates the jukebox in a new window. Normally, the jukebox takes over
- the window in which it is invoked.
- .PP
- The
- .B \-s
- flag specifies the name under which the file descriptors of the playlist and databse servers are posted
- in /srv. This allows two or more play list servers to exist on one platform, e.g., when
- there are several audio devices. The default value of the flag is
- .B $\f2user\fP
- for a playlist server at
- .B /srv/playlistfs.$\f2user\fP
- and a database server at
- .BR /srv/jukefs.$\f2user\fP .
- .sp
- .LP
- .B Jukefs
- reads a set of
- .I maps
- describing the music data, builds an in-memory database, and provides
- lookup service to
- .IR jukebox .
- The default map is
- .BR /sys/lib/music/map .
- It consists of a hierarchical set of
- .IR objects .
- Each object has a type, a value, zero or more attribute-value
- pairs and zero or more subobjects. An object consists of the
- type, followed by its contents between curly brackets.
- Attribute value pairs consist
- of a single line containing an attribute name, an equals sign, and
- a value.
- The value of an object is any text not containing curly brackets or equals
- signs. Here is an example:
- .EX
- .ps -2
- .vs -2p
- .sp
- category {
- composer = mahler
- Gustav Mahler
- (1860 — 1911)
- work {
- path {classic/mahler}
- class = symphonic
- orchestra = rfo
- conductor = Waart,~Edo~de
- Symphony Nº 5 in c♯ (RFO, Vienna)
- performance{
- Radio Filharmonisch Orkest Holland
- Edo de Waart, conductor
- recorded: Musikverein, Vienna, May 6, 1996
- }
- command {number}
- track {
- Trauermarsch (In gemessenem Schritt. Streng. Wie ein Kondukt)
- time {13:55}
- file {034.pac}
- }
- track {
- Stürmisch bewegt, mit größter Vehemenz
- time {15:34}
- file {035.pac}
- }
- track {
- Scherzo (Kräftig, nicht zu schnell)
- time {18:54}
- file {036.pac}
- }
- track {
- Adagietto (Sehr Langsam)
- time {10:01}
- file {037.pac}
- }
- track {
- Rondo–Finale (Allegro)
- time {15:44}
- file {038.pac}
- }
- }
- }
- .EE
- .LP
- This example shows a
- .I category
- object for the composer Gustav Mahler (the value consists of the two
- lines `Gustav Mahler' and `(1860 — 1911)') with one subobject, a
- .I work
- object whose value is `Symphony Nº 5 in c♯ (RFO, Vienna)'. The work object
- contains six subobjects: one
- .I performance
- object and five
- .I track
- objects.
- .PP
- .I Category
- objects must contain exactly one attribute-value pair. The attribute
- names a subobject of the root under which this category object will
- be placed. Gustav Mahler, thus, will be placed in
- Root→composer.
- .IR Work ,
- .IR Recording ,
- .IR Part ,
- and
- .IR Track ,
- objects all describe named containers for subunits.
- A
- .IR Lyrics ,
- .IR Performance ,
- or
- .IR Soloists
- object adds information to a
- .IR Work ,
- .IR Recording ,
- .IR Part ,
- or
- .IR Track ,
- object. It should only contain text.
- The same is true for a
- .I Time
- object; however, it should only be used adjacent to
- .I File
- objects and it should contain the running time of that file (this
- is for future use).
- .PP
- A
- .I File
- object specifies a file to be played. When the
- .I Select
- button is pressed, all file objects contained hierarchically in the
- selected object are added to the playlist.
- .PP
- There are a number of pseudo objects:
- .I Command
- may contain either
- .I sort
- or
- .IR number .
- The
- .I sort
- command sorts the subobjects of the object it appears in by
- .I key
- or textual content.
- The
- .I number
- commands prepends numbers to the texts of its subobjects
- (e.g., for the parts in a symphony)
- .PP
- An
- .I Include
- object is replaced by the contents of the named file.
- .PP
- A
- .I Key
- object specifies a key for sorting subobjects.
- .PP
- Finally, a
- .I Path
- object specifies a path to be prepended to the files named in
- hierarchically contained
- .I File
- objects.
- .PP
- The attribute-value value pairs arrange for entries to be made of the
- current object in a
- .I Category
- object named by the attribute directly under the root.
- .sp
- .LP
- The interface to the browsing database is through a file system
- implemented by
- .BR jukefs .
- The file system synthesises a directory per object. Each directory contains a set of files
- describing the object's attributes:
- .TP
- .B children
- contains a new-line separated list of subobject names. For each name,
- .I x
- the directory
- .BI /mnt/juke/ x
- describes the subobject.
- .TP
- .B digest
- contains a one-line summary of the object
- .TP
- .B files
- is a new-line separated list of file objects contained in this object.
- Each line consists of object name and file name.
- .TP
- .B fulltext
- is the fulltextual value of the object.
- .TP
- .B key
- contains the key by which objects are sorted
- .TP
- .B miniparentage
- is a one-line summary of the objects and the path leading to it from the root.
- This is the line displayed in the playlist and bottom browse windows of
- .BR games/jukebox .
- .TP
- .B parent
- is the object reference to the parent of this object.
- .TP
- .B parentage
- is a full description of the path leading to this object and the object itself.
- This is the string displayed in the top of the Browse and Playing windows
- of
- .BR games/jukebox .
- .TP
- .B text
- is the text field of the object.
- .TP
- .B type
- is the type of the object
- .LP
- .SH FILES
- .TF /sys/lib/music/map
- .TP
- .B /sys/lib/music/map
- Default map file
- .TP
- .B /mnt/juke
- Default mount point for the music database.
- .SH SOURCE
- .B /sys/src/games/music
- .SH SEE ALSO
- .IR playlistfs (7),
- .IR audio (7)
|