369 lines · 7.6 KB · Text
RawDownload
.TH JUKE 7.SH NAMEjuke \- 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 Jukeboxcontrols 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 mapfiles that describe recordings and their location.  Currently, there isone set of maps, mostly for classical music, with some jazz and other stuffthrown 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 Jukeboxis most easily started through the.I jukeshell script..PP.I Jukeboxhas four windows, which can be selected by clicking the appropriate tabat the top of the window..PPAbove the tab are nine buttons and a volume slider.  The.ift buttons, shown below,.ifn buttonsare 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 activewhen they are displayed in dark green (or red).  When they are pale bluethey are.IR inactive .The Exit button is always active; it exits the program (but leaves the playlist and music databaseservers running)..PPThe.I browsewindow is for browsing through the music and selecting music to play.Browsing down in the music hierarchy is done by clicking button one onan item.  Clicking button three goes back up.Clicking button two recursively adds all files below the selected item tothe.IR "play list" ..PPThe selected music is displayed in the.I playlist window.The track currently playing is shown in the.I playingwindow..PPThe.I Rootbutton browses back to the root..PPThe.I Deletebutton empties the playlist..PPThe.I Helpdisplays a minimal on-line manual..PP.I Playstarts playing at the beginning of the play list, or at the selected track inthe play list..PPDuring play,.IR Pause ,.IR Stop ,.IR Back ,and.I Forwardare active..I Backand.I Forwardgo back or forward a track at a time.  The other buttons do the obvious thing..PPThe.B \-tflag chooses a tiny font, useful for handhelds..PPThe.B \-wflag creates the jukebox in a new window.  Normally, the jukebox takes overthe window in which it is invoked..PPThe.B \-sflag specifies the name under which the file descriptors of the playlist and databse servers are postedin /srv.  This allows two or more play list servers to exist on one platform, e.g., whenthere are several audio devices.  The default value of the flag is.B $\f2user\fPfor a playlist server at.B /srv/playlistfs.$\f2user\fPand a database server at.BR /srv/jukefs.$\f2user\fP ..sp.LP.B Jukefsreads a set of.I mapsdescribing the music data, builds an in-memory database, and provideslookup 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-valuepairs and zero or more subobjects.    An object consists of thetype, followed by its contents between curly brackets.Attribute value pairs consistof a single line containing an attribute name, an equals sign, anda value.The value of an object is any text not containing curly brackets or equalssigns.  Here is an example:.EX.ps -2.vs -2p.spcategory {	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.LPThis example shows a.I categoryobject for the composer Gustav Mahler (the value consists of the twolines `Gustav Mahler' and `(1860 — 1911)') with one subobject, a.I workobject whose value is `Symphony Nº 5 in c♯ (RFO, Vienna)'.  The work objectcontains six subobjects: one.I performanceobject and five.I trackobjects..PP.I Categoryobjects must contain exactly one attribute-value pair.  The attributenames a subobject of the root under which this category object willbe placed.  Gustav Mahler, thus, will be placed inRoot→composer..IR Work ,.IR Recording ,.IR Part ,and.IR Track ,objects all describe named containers for subunits.A.IR Lyrics ,.IR Performance ,or.IR Soloistsobject 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 Timeobject; however, it should only be used adjacent to.I Fileobjects and it should contain the running time of that file (thisis for future use)..PPA.I Fileobject specifies a file to be played.  When the.I Selectbutton is pressed, all file objects contained hierarchically in theselected object are added to the playlist..PPThere are a number of pseudo objects:.I Commandmay contain either.I sortor.IR number .The.I sortcommand sorts the subobjects of the object it appears in by.I keyor textual content.The.I numbercommands prepends numbers to the texts of its subobjects(e.g., for the parts in a symphony).PPAn.I Includeobject is replaced by the contents of the named file..PPA.I Keyobject specifies a key for sorting subobjects..PPFinally, a.I Pathobject specifies a path to be prepended to the files named inhierarchically contained.I Fileobjects..PPThe attribute-value value pairs arrange for entries to be made of thecurrent object in a.I Categoryobject named by the attribute directly under the root..sp.LPThe interface to the browsing database is through a file systemimplemented by.BR jukefs .The file system synthesises a directory per object.  Each directory contains a set of filesdescribing the object's attributes:.TP.B childrencontains a new-line separated list of subobject names.  For each name,.I xthe directory.BI /mnt/juke/ xdescribes the subobject..TP.B digestcontains a one-line summary of the object.TP.B filesis a new-line separated list of file objects contained in this object.Each line consists of object name and file name..TP.B fulltextis the fulltextual value of the object..TP.B keycontains the key by which objects are sorted.TP.B miniparentageis 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 parentis the object reference to the parent of this object..TP.B parentageis 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 windowsof.BR games/jukebox ..TP.B textis the text field of the object..TP.B typeis the type of the object.LP.SH FILES.BR /sys/lib/music/map :Default map file.BR /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)