X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=README.afs;h=edd2d17be98591391a7d3ceab0a820cf12b77763;hp=dd80914495d32569fa05e997e5a3a35d1e9da824;hb=f8ea51cdb591ef482806563a862e1ef28c2ed89c;hpb=b75c3c8433836003652edc71a11458abc064e42f diff --git a/README.afs b/README.afs index dd809144..edd2d17b 100644 --- a/README.afs +++ b/README.afs @@ -1,7 +1,7 @@ The audio file selector ======================= -Paraslash comes with a sophisticated audio file selector called afs. +Paraslash comes with a sophisticated audio file selector called *afs*. In the << installation notes, @@ -31,12 +31,12 @@ an audio file by executing para_client setatt test+ /path/to/the/audio/file -Similarly, the "test" bit can be removed from a audio file with +Similarly, the "test" bit can be removed from an audio file with para_client setatt test- /path/to/the/audio/file -Instead of a path you can also use a pattern, and the attribute is -applied to all audio files matching that pattern: +Instead of a path you may use a shell wildcard pattern. The attribute +is applied to all audio files matching that pattern: para_client setatt test+ '/test/directory/*' @@ -53,9 +53,9 @@ you find this annoying, just say alias para='para_client --' -and be happy. In the remainder part this alias is being used. +and be happy. In what follows we shall use this alias. -Drop the test attribute entirely from the database with +The "test" attribute can be dropped from the database with para rmatt test @@ -74,13 +74,14 @@ Abstract mood nonsense [skip this part if you don't like formal definitions] -A mood consists of a unique name and its *mood definition*, which is a set of -*mood lines* containing expressions in terms of attributes and other data -contained in the database. +A mood consists of a unique name and its *mood definition*, which is +a set of *mood lines* containing expressions in terms of attributes +and other data contained in the database. A mood defines a subset of audio files called the *admissible audio files* -for that mood. A mood can be *active* which means that para_server -is going to select only files from that subset of admissible files. +for that mood. At any time, at most one mood can be *active* which +means that para_server is going to select only files from that subset +of admissible files. So in order to create a mood definition one has to write a set of mood lines. Mood lines come in three flavours: Accept lines, deny @@ -99,7 +100,7 @@ a random score to all matching files. The score value changes the order in which admissible files are going to be selected, but is of minor importance for this introduction. -So we concentrate on the first two forms, that is accept and deny +So we concentrate on the first two forms, i.e. accept and deny lines. As usual, everything in square brackets is optional, i.e. accept/deny lines take the following form when ignoring scores: @@ -121,12 +122,12 @@ or The set of admissible files for the whole mood is now defined as those files which match at least one accept mood line, but no deny mood line. -More formally, a file is admissible if and only if +More formally, an audio file F is admissible if and only if (F ~ AL1 or F ~ AL2...) and not (F ~ DL1 or F ~ DN2 ...) -where F is the file, AL1, AL2... are the accept lines, DL1, DL2... are -the deny lines and "~" means "matches". +where AL1, AL2... are the accept lines, DL1, DL2... are the deny +lines and "~" means "matches". The cases where no mood lines of accept/deny type are defined need special treatment: @@ -155,20 +156,42 @@ List of mood_methods Takes no arguments and matches an audio file if and only if no attributes are set. - played_rarely - -Takes no arguments and matches all audio files where the number of -times this audio file was selected is below the average. - - is_set attribute_name + is_set Takes the name of an attribute and matches iff that attribute is set. - path_matches pattern + path_matches Takes a filename pattern and matches iff the path of the audio file matches the pattern. + artist_matches + album_matches + title_matches + comment_matches + +Takes an extended regular expression and matches iff the text of the +corresponding tag of the audio file matches the pattern. If the tag +is not set, the empty string is matched against the pattern. + + year ~ + bitrate ~ + frequency ~ + channels ~ + +Takes a comparator ~ of the set {<, =, <=, >, >=, !=} and a number +. Matches an audio file iff the condition ~ is +satisfied where val is the corresponding value of the audio file +(bitrate in kbit/s, frequency in Hz, channel count, value of the +year tag). + +The year tag is special as its value is undefined if the audio file +has no year tag or the content of the year tag is not a number. Such +audio files never match. Another difference is the special treatment +if the year tag is a two-digit number. In this case either 1900 or +2000 are added to the tag value, depending on whether the number is +greater than 2000 plus the current year. + ---------- Mood usage @@ -192,7 +215,7 @@ the catmood command to get it back: A mood can be activated by executing - para chmood my_mood + para select m/my_mood Once active, the list of admissible files is shown by the ls command if the "-a" switch is given: @@ -223,12 +246,33 @@ songs is --------- Troubles? --------- -If something went wrong, look at the output. If that does not give -you a clue, use loglevel one (option -l 1 for most commands) to show + +Use the debug loglevel (option -l debug for most commands) to show debugging info. Almost all paraslash executables have a brief online -help which is displayed by using the -h switch. +help which is displayed by using the -h switch. The --detailed-help +option prints the full help text. + +para_fsck tries to fix your database. Use --force (even if your name +isn't Luke) to clean up after a crash. However, first make sure +para_server isn't running before executing para_fsck if para_fsck +complains about busy (dirty) tables. para_fsck also contains an option +to dump the contents of the database to the file system. + +If you don't mind to recreate your database you can start +from scratch by removing the entire database directory, i.e. + + rm -rf ~/.paraslash/afs_database + +Note that this removes all tables, in particular attribute definitions +and data, and all playlist and mood definitions. + +para_fsck operates on the osl-layer, i.e. it fixes inconsistencies +in the database but doesn't know about the contents of the tables +contained therein. Use + + para_client check + +to print out bad entries, e.g.missing audio files or invalid mood +definitions. -Still not working? Mail the author Andre Noll -(english, german, or spanish language). Please provide enough info -such as the version of paraslash you are using and relevant parts of -the logs. +Still having problems? mailto: Andre Noll