NAME
Mylene1f4 - play MPEG audio streams
SYNOPSIS
DESCRIPTION
Mylene1f4 plays MPEG audio streams from FILE(s) on the linux
/dev/dsp audio device. It understands plain or system embedded MPEG audio
streams (starting at file offset 0) and 1f42 mapped plain or system embedded
MPEG audio streams.
OPTIONS
- -!
- Talk in lanes (run remotely controlled). Mylene1f4 will accept
requests on standard input and emit replies on standard output. The
implemented communication protocol is the lanes communication protocol.
- -1, --progress1 FORMAT
- Set format for printing stream header progress information (printed every time
an audio stream decoding starts) to FORMAT. See TEXT FORMATTING
for text formatting specification syntax.
- -2, --progress2 FORMAT
- Set format for printing frame progress information (printed every time an audio
frame is to be decoded, but not only) to FORMAT. See TEXT
FORMATTING for text formatting specification syntax.
- -3, --progress3 FORMAT
- Set format for printing stream trailer progress information (printed every time
an audio stream decoding completes) to FORMAT. See TEXT FORMATTING
for text formatting specification syntax.
- -A, --album STRING
- Set the album file selection filter criterion to matching STRING. Only
the files for which the album property matches the (wild card) STRING
pattern will loaded.
- -B, --basename STRING
- Set the basename file selection filter criterion to matching STRING.
Only the files for which the basename matches the (wild card) STRING
pattern will loaded.
- -C, --device-name STRING
- Set output device first argument to STRING. See --device for what
output device is.
- -D, --device-args STRING
- Set output device extra arguments to STRING. See --device for what
output device is.
- -F, --filter FILTER
- Set the complex file selection filter criterion to FILTER. The complex
filter criterion is intended to provide more flexible filtering capabilities
than the ones provided by the simple filter criteria (set via -A or
--album, -B or --basename, -P or --path, -a
or --artist, -c or --comment and -t or --title).
See COMPLEX FILTER SYNTAX for syntax description.
- -L, --load-order STRING
- Set load order. Possible values for STRING are back, last,
next, previous and random. back and last are
aliases for previous. If next is specified Mylene1f4 will
load files as they are currently ordered, advancing from the first listed to
the last. If one of back, last or previous is specified
Mylene1f4 will load files in reversed order, advancing from the last
listed to the first. If random is specified and output was set (via
-o or --output) to device and controlling server
establishment was requested (via --inet-server or --unix-server)
Mylene1f4 will load files randomly, otherwise same as next.
- -P, --path STRING
- Set the path file selection filter criterion to matching STRING. Only
the files for which the path matches the (wild card) STRING pattern will
loaded.
- -S, --shuffle
- Shuffle files list.
- -a, --artist STRING
- Set the artist file selection filter criterion to matching STRING. Only
the files for which the artist property matches the (wild card) STRING
pattern will loaded.
- -b, --buffer CARDINAL
- Set output cache size to CARDINAL * 36864 bytes. Default value is 81
(which translates to 2985984 bytes or 2916 kilobytes of cache, which in turn is
probably more than you need but for which you most likely have plenty of
memory). Note that some systems do not support shared memory segments that
large and if so indicating smaller values for output cache size (like 56 or 28
or so) might be required.
- -c, --comment STRING
- Set the comment file selection filter criterion to matching STRING. Only
the files for which the comment property matches the (wild card) STRING
pattern will loaded.
- -d, --device PATH
- Set output device to PATH. The output device is a program that
Mylene1f4 will execute and to which it will redirect PCM data. See
--output for more information (especially for when this option has
effect). Default value is Mylene0fa(1). Note that is possible for the
executed program to run out of data, especially at playback start. For the
later case asking the executed program for delaying the start to allow caching
enough data for a safe playback start may help prevent such condition.
Mylene0fa(1) allows specifying a minimum microseconds worth of cached
data required to start playback. See Mylene0fa(1) for more information.
See --device-args for how extra command line arguments may be transmitted
to the executed program.
- Example (assuming that Mylene0fa(1) is the program to which
Mylene1f4 redirects PCM data):
- Mylene1f4 -D "-l 1000000" ...
- asks Mylene0fa(1) to wait for one second worth of cache before starting
playback.
- -e, --start-time
- [[HOURS:]MINUTES:]SECONDS[,FRAMES]
Set play start stream time to HOURS * 3600 + MINUTES * 60
+ SECONDS + FRAMES / 60 seconds. No white space is allowed before
and after : and , literal signs. Fields are not restricted to the
0 .. 59 range.
- -f, --start-frame CARDINAL
- Skip the specified number of audio frames at the beginning of each stream (or
is it file?).
- -i, --tagged-list PATH
- Read files tagged list from PATH. Ignore -l and --list
requests. Two consequent file records are to be separated in PATH by two
or more null (zero) bytes. A file record comprises one or more file record
fields. Two consequent file record fields are to be separated in PATH by
one null (zero) byte. A file record field is introduced by the literal
identifying its type. The recognized file record fields and their
correspondent introducing literals are:
- A
- The album.
- N
- The file name (path).
- a
- The artist.
- c
- The comment.
- g
- The genre.
- t
- The title.
- y
- The year.
- Characters following the introducing literal are the file record field value.
The occurences of more file record fields of same type, other than the last,
are ignored. The (N introduced) file name (path) file record field is
mandatory.
- When a tagged files list is supplied Mylene1f4 does not read file ID3
tags, using instead the tags read from the files list. Consequently, file
selection via criteria that can be command line set via -A or
--album, -a or --artist, -c or --comment,
-t or --title and -F or --filter options can be much
faster.
- File tagged lists can be generated using Mylene1f4, via commands like:
- Mylene1f4 --output skip --progress1
%G(A%A\0a%a\0c%c\0g%g\0t%t\0y%y\0)N%N\0\0 [FILE...]
or
- Mylene1f4 --output skip --progress1
PROGRESS [FILE...]
where PROGRESS cats:
- %G(%z(%A(A%:2:A\0)%a(a%:2:a\0)%c(c%:2:c\0)))
- %G(%z(%g(g%:2:g\0)%t(t%:2:t\0)%y(y%:2:y\0)))
and
- N%N\0\0
or the later equivalent
- Mylene1f4 --output skip --progress-type tags
[FILE...]
- Note that the --progress1 option argument might need quoting.
- -l, --list PATH
- Read files list from PATH. Ignore -i and --tagged-list
requests. Two consequent file names (paths) are to be separated in PATH
by one or more null (zero) bytes. Arguments in command line are ignored.
- -o, --output STRING
- Set output type. Possible values for STRING are device, null
and skip. If device is specified Mylene1f4 will redirect PCM
output to the program specified via -d or --device options. If
null is specified Mylene1f4 will discard decoded PCM data. If
skip is specified Mylene1f4 will skip PCM data decoding all
together. Default value is device.
- -p, --progress-type STRING
- Set the formats for printing progress information to one of the built-in sets.
Possible values for STRING are null, path, tags and
x1f4. Note that tags style is not suited for console output, but
for tagged lists generation. Use --progress-print in conjuction with
--progress-type to examine the built-in sets.
- -q, --quiet
- Suppress error messages (all together).
- -r, --cycle, --repeat
- Restart playing FILE(s) after playing the last.
- -s, --start INTEGRAL
- Specify the index in the (shuffled, if requested) file list of the file that is
to be played first. If negative it will be incremented with the number of
files.
- -t, --title STRING
- Set the title file selection filter criterion to matching STRING. Only
the files for which the title property matches the (wild card) STRING
pattern will loaded.
- -v, --verbose
- Print some file and audio stream information on standard error. Can be
specified more than once.
- -x, --synchronize
- Recover initial audio stream miss synchronization. By default Mylene1f4
will tolerate no errors in the decoded streams, not even alien data preceding
audio streams. If initial audio stream miss synchronization recovery is
requested Mylene1f4 will attempt to find a valid audio stream within
specified source. Note that subsequent decoding errors will not be recovered.
- --attached
- Start system audio device attached (default). Mylene1f4 will ask the
program to which it redirects PCM output to open the system audio device as it
starts. Ignored if output was set (via -o or --output) to anything
but device or no controlling server establishment was requested (via
--inet-server or --unix-server).
- --backward-seek-complaints
- Allow backward seek complaints issued by the audio MPEG decoder when the frame
being decoded refers non existent preceding frames (default).
- --clear-title STRING
- Discard the title of the next to be (via --queue) queued program.
- --context-interrupt CARDINAL
- Set the maximum number of instructions the programs in an execution context can
execute continuously. If set to 0 the context programs execution will never be
interrupted on not giving away control account (see --program-interrupt
also). Otherwise, if the number of instructions executed on behalf of the
programs in some execution context exceeds the indicated upper limit, all the
programs in the execution context are discarded. Default is 65536. See
PROGRAM EXECUTION for program execution information. Note that there is
no direct relation between coded statement count and executed instruction
count, though the latest does not usually exceed the first by more than twice.
- --context-list-length CARDINAL
- Set maximum context execution list length to CARDINAL. The limit is
enforced for server received programs only. Default is 1024. See PROGRAM
EXECUTION for program execution information.
- --deque CARDINAL
- Remove last CARDINAL (queued via --queue) programs from the
execution queue.
- --deque-all
- Remove all (queued via --queue) programs from the execution queue.
- --deque-last
- Remove last (queued via --queue) program from the execution queue.
- --detached
- Start system audio device detached. Mylene1f4 will ask the program to
which it redirects PCM output to not open the system audio device as it starts.
Ignored if output was set (via -o or --output) to anything but
device or no controlling server establishment was requested (via
--inet-server or --unix-server).
- --disable-expression-optimizations
- Disable complex file selection filter criterion expression optimizations.
- --disable-id3v2-read
- Disable ID3 version 2 reading.
- --dumb
- Do not recover initial audio stream miss synchronization (default). See
-x, --synchronize for initial audio stream miss synchronization
recovery.
- --enable-expression-optimizations
- Enable complex file selection filter criterion expression optimizations
(default).
- --enable-id3v2-read
- Enable ID3 version 2 reading (default).
- --error STRING
- Set load error behavior. Possible values for STRING are abort and
ignore. If abort is specified Mylene1f4 will abort upon load
errors. If ignore is specified Mylene1f4 will ignore load errors.
Default value is abort.
- --head-b-operators
- List complex filter available binary operators and exit.
- --head-p-b-operators
- List program available binary operators and exit.
- --id3v2-complaints
- Allow ID3 version 2 parser complaints.
- --id3v2-parser PATH
- Set path to ID3 version 2 parser to PATH. The ID3 version 2 parser is a
program that Mylene1f4 will execute to parse the version 2 ID3 tags from
the played files. If PATH is void the default value is used. Default
value is prefix/lib/Mylene1f4/id3v2-id3tag, where prefix is
set at compile time and defaults to /usr/local.
- --id3v2-timeout CARDINAL
- Set ID3 version 2 loading timeout to CARDINAL microseconds
(Mylene1f4 will wait no more than that much time for the ID3 version 2
parser to complete execution). If zero is specified the default is used.
CARDINAL is not restricted to 1 .. 1000000 range.
- --id3v2-transfer CARDINAL
- Set ID3 version 2 maximum transfer size to CARDINAL bytes
(Mylene1f4 will read no more than that many bytes from the ID3 version 2
parser). If zero is specified the default is used. The option is not
implemented and the default is always used.
- --inet-server PORT
- Establish a controlling TCP/IP server on the port specified by PORT.
Ignore local TCP server establisment requested via --unix-server.
Mylene1f4 will execute the commands received by server.
Mylene3e8(1) is a typical Mylene1f4 client relaying user commands
to the establised server. Note that there are no security mechanisms to
restrict access to the server and any entity able to reach the network within
which the server was established will be able transmit commands to be executed
(read: mess up your sorry existence).
- For now, option is ignored if output was set (via -o or --output)
to anything but device.
- See SERVER MODE for more on server related information.
- --layer3-amplification REAL
- Set MPEG layer III audio streams amplification to REAL. REAL is
expected in the -20 .. 20 range.
- --layer3-frequencies LIST
- Set MPEG layer III audio streams equalizer band frequencies to LIST.
LIST is expected a list of comma separated band frequency values in the
20 .. 20000 range. The default frequecies are 32, 64, 128, 256, 512, 1024,
2048, 4096, 8192 and 16384.
- --layer3-levels
- Set MPEG layer III audio streams equalizer band levels to LIST.
LIST is expected a list of comma separated band level values in the
-20 .. 20 range. The number of equalizer band levels must match the number of
equalizer band frequencies.
- --list-b-operators
- List complex filter available binary operators and exit.
- --list-directives
- Display text formatting directives in a list view and exit.
- --list-fs-operators
- List complex filter available file selection concerned unary operators and
exit.
- --list-functions
- List complex filter available functions and exit.
- --list-p-b-operators
- List program available binary operators and exit.
- --list-p-fs-operators
- List program available file selection concerned unary operators and exit.
- --list-p-functions
- List program available functions and exit (same as --list-q-functions).
- --list-p-u-operators
- List program available unary operators and exit.
- --list-q-functions
- List program available functions and exit (same as --list-p-functions).
- --list-u-operators
- List complex filter available unary operators and exit.
- --mpeg-synchronization STRING
- Set MPEG audio data synchronization method process for use when initial audio
stream miss synchronization is (via -x or --synchronize) requested.
Possible values for STRING are double, select and
single. If double is specified the first frame header look alike
byte sequence on which the occurrence of the next frame header can be
successfully predicted is accepted as a close enough synchronization. If
select is specified the first coherent frame headers sequence (in which
the occurence of a frame header can be predicted from the previous header) is
accepted as a close enough synchronization. The length of the sequence can be
specified via --mpeg-synchronization-sequence and defaults to 4. If
single is specified the first frame header look alike byte sequence is
accepted as a close enough synchronization. Default value is select.
- --mpeg-synchronization-seek CARDINAL
- Do not examine more than CARDINAL bytes when looking for a valid MPEG
audio stream. Mylene1f4 will enforce this limit only loosely and will
actually examine more bytes (that is, if the limit is observed whatsoever).
Default value is 4194304 (4 mega bytes).
- --mpeg-synchronization-sequence CARDINAL
- Set the synchronization frame headers sequence length for MPEG audio data
synchronization select method. Default value is 4.
- --no-backward-seek-complaints
- Suppress backward seek complaints issued by the audio MPEG decoder when the
frame being decoded refers non existent preceding frames.
- --no-cycle, --no-repeat
- Restart not playing FILE(s) after playing the last (default).
- --no-id3v2-complaints
- Suppress ID3 version 2 parser complaints, including execution errors (default).
- --no-reuse-address
- Reuse no address when binding the local INET controlling server (default). It
is quite likely that the binding (establishing) of the INET controlling server
will fail for some evil entity imagines that the address is already in use,
even when it is obviously not.
- --no-server-filter-complaints
- Suppress server transmitted filter setting requests parsing complaints.
- --no-server-format-complaints
- Suppress server transmitted text formatting requests parsing complaints.
- --no-server-progress-complaints
- Suppress server transmitted progress formatting requests parsing complaints.
- --no-shuffle
- Shuffle not files list (default).
- --null-process STRING
- Set MPEG decoding process for (via -o or --output specified) null
output to STRING. Possible values for STRING are 4294967291,
futile, null, pcm1, real, skip, and
utterly-futile. If 4294967291, pcm1 or real is
specified the MPEG audio streams are fully decoded. If futile or
null is specified the MPEG audio streams are parsed, yet not truly
decoded. Note that this process is not supported for layer 3. If skip
or utterly-futile is specified only the frame headers in MPEG audio
streams will be examined. Default value is 4294967291 (which also
happens to be the biggest prime number that fits in 32 bits, the second biggest
being 4294967279, number that has no relevance yet for Mylene1f4).
- --pack-directives
- Display text formatting directives in a compacted tree view and exit.
- --paused
- Start paused. Ignored if no controlling server establishment was requested
(via --inet-server or --unix-server).
- --play-list-length CARDINAL
- Set maximum play list length to CARDINAL. The limit is enforced for
server received play list items (files, that is) only. Default is 65536.
- --playing
- Start playing (default). Ignored if no controlling server establishment was
requested (via --inet-server or --unix-server).
- --program-allocation CARDINAL
- Set the limit for the memory a program may request allocated to CARDINAL.
The limit refers strictly the memory allocation requests, i.e. it does not
consider the usual memory management overhead. It does include the memory
required for storing the executable representation of the program. Default is
2097152 (2 mega bytes). See PROGRAM EXECUTION for program execution
information.
- --program-interrupt CARDINAL
- Set the number of instructions a program can execute between two succesive
effector function calls limit to CARDINAL. If set to 0 a program
execution will never be interrupted on running for too long account. Default
is 65536. See PROGRAM EXECUTION for program execution information. Note
that there is no direct relation between coded statement count and executed
instruction count, though the latest does not usually exceed the first by more
than twice.
- --progress-print
- Display progress information formatting (resulting after merging
--progress-type, --progress1, --progress2 and
--progress3 options) and exit. The displayed formatting will be the one
used if --progress-print would not have been specified.
- --queue PROGRAM
- Queue PROGRAM for execution. Can be specified more than once. See
PROGRAM EXECUTION for program execution information.
- --queue-length CARDINAL
- Set maximum execution queue length to CARDINAL. The limit is enforced
for server received programs only. Default is 4096. See PROGRAM
EXECUTION for program execution information.
- --request-transfer CARDINAL
- Set maximum server received request transfer size to CARDINAL bytes. The
requests for which the maximum transfer size is set are the requests received
on the established UNIX or INET server. The connections on which requests
bigger than the set threshold are received are closed. The default is 4096.
- --reuse-address
- Reuse local address when binding the local INET controlling server. If used
all over the place this may reduce the failure rate of binding (establishing)
an INET controlling server.
- --server-filter-complaints
- Allow server transmitted filter setting requests parsing complaints (default).
- --server-format-complaints
- Allow server transmitted text formatting requests parsing complaints (default).
- --server-progress-complaints
- Allow server transmitted progress formatting requests parsing complaints
(default).
- --store-title STRING
- Set the title of the next to be (via --queue) queued program to
STRING.
- --unix-server PATH
- Establish a controlling local TCP server on PATH. Ignore TCP/IP server
establisment requested via --inet-server. Mylene1f4 will execute
the commands received by server. Mylene3e8(1) is a typical
Mylene1f4 client relaying user commands to the establised server.
- For now, option is ignored if output was set (via -o or --output)
to anything but device.
- See SERVER MODE for more on server related information.
- --unix-server-mode MODE
- Set file permissions for established local TCP controlling server to integral
MODE. MODE should include at least owner read/write permissions
(00600). Default is 00600.
- --tree-directives
- Display text formatting directives in a tree view and exit.
- --help
- Print a usage message and exit with a status code indicating success.
- --version
- Print version information on standard output then exit.
All the file selection filter criteria, including the simple ones specified via
-A or --album, -B or --basename, -P or
--path, -a or --artist, -c or --comment and
-t or --title and the more sophisticated one specified via
-F or --filter are enforced when loading files (meaning that a file
will have to pass every and each of the set filters to be loaded).
For the simple filter criteria the match is a wild card match (it allows for
the * and ? shell patterns). A * sequence matches
everything, while an empty pattern (`') will match only files for which the
correponding property exists but is empty. Matching is case sensitive. Note
that the matched file properties are white space trimmed (white space is
removed from both head and tail).
Option arguments defined as a set of alternatives may be abbreviated as long as
the abbreviation is not ambiguous.
COMPLEX FILTER SYNTAX
The complex filter syntax is similar to that of C expressions. It allows
for prefix unary and common syntax binary operators, functions and variables
(all defined by Mylene1f4, none by user). There are four types
supported: cardinal (integral, positive), integer (integral),
real (real) and text (string).
The available functions are either mathematical and text generalities, either
file selection concerned. Among the latest:
- integer advance(void);
- is the files list length
- text album(void);
- is the album
- text artist(void);
- is the artist
- integer clip(void);
- is the clip index (incremented every file examination)
- text comment(void);
- is the comment
- integer current(void);
- is the file index in the current files list
- text file(void);
- is the basename
- integer initial(void);
- is the file index in the initial files list
- text path(void);
- is the path
- integer play(void);
- is the play index (incremented every file play)
- text title(void);
- is the title
Among the general text utilities:
- text bfxa(integer b, integer f,
- integer x, integer m);
is the base x, f digits, b wide comma separated blocks
representation of m
- text cat(text s1, text s2);
- is the concatenation of s1 and s2
- text cat2(text s1, text s2);
- is same as cat(s1, s2)
- text cat3(text s1, text s2, text
- s3);
is the concatenation of s1, s2 and s3
- text cat4(text s1, text s2, text
- s3, text s4);
is the concatenation of s1, s2, s3 and s4
- integer compare(text major, text minor);
- is 0 if minor is (case sensitive) same as major, non 0 otherwise
- text cut(text string, integer offset,
- integer length);
is the length long string cut from by offset biased string
- text delete(text s, integer p);
- is the p indexed characther deleted s string (negative position
indications are interpreted with respect to the end of string)
- text insert(text s, integer p,
- integer c);
is the before p indexed characther c character inserted s
string (negative position indications are interpreted with respect to the end
of string)
- text itoa(integer m);
- is the decimal representation of m (same as bfxa(0, 0, 10,
m))
- integer match(text major, text minor);
- is 0 if minor wild card (case sensitive) matches the major pattern
(the * and ? literal sign are interpreted as for their shell
pattern equivalents), non 0 otherwise
See express17(1) for the description of more mathematical and text
functions.
Use --list-functions to obtain the complete list of complex filter
available functions.
Most of prefix unary and common syntax binary C operators are supported
(including unary !, +, - and ~ and binary *,
/, %, +, -, <<, >>, <, >,
!=, ==, &, ^, |, && and ||), the
semantics and precedence being the same or at least very close to those of
their C counterparts.
Among more exotic binary operators:
- text prefix-text-expression + suffix-text-expression
- is the concatenation of prefix-text-expression and
suffix-text-expression (same as cat(prefix-text-expression,
suffix-text-expression))
Some very file selection concerned unary operators save some typing effort:
- integer ~text-expression
- is short for !match(text-expression, basename())
- integer @text-expression
- is short for !match(text-expression, path())
- integer #integer-expression
- is short for integer-expression == current()
- integer $integer-expression
- is short for integer-expression == initial()
- integer %text-expression
- is short for !match(text-expression, album())
- integer ^text-expression
- is short for !match(text-expression, artist())
- integer &text-expression
- is short for !match(text-expression, title())
- integer |text-expression
- is short for !match(text-expression, comment())
Use --list-fs-operators to obtain the complete list of available file
selection concerned unary operators.
Use --list-u-operators to obtain the complete list of available unary
operators.
Use --head-b-operators or --list-b-operators to obtain the complete
list of available binary operators.
Note the filter expression type should evaluate as integer (integral),
and that files are selected when filter expression evaluates non null.
Examples:
- &"pas de doute" | &"et tournoie..."
selects any files for which the title property is one of pas de doute and
et tournoie...
- %"mylenium tour" && &"desenchantee"
selects any files for which the album property is mylenium tour and title
property is desenchantee
PROGRAM EXECUTION
When (--inet-server or --unix-server) controlled and (-o or
--output) device outputting Mylene1f4 can be transmitted
programs for execution.
As for complex filter syntax the accepted syntax is much resembling the C
syntax. It allows for prefix unary and common syntax binary operators,
(Mylene1f4 defined) functions and (Mylene1f4 and user defined)
variables. The supported types are cardinal (integral, positive),
integer (integral), real (real) and text (string), just as
for complex filter syntax.
The C if, else, while, do while and
break statements are supported, their syntax and semantics being pretty
much the same as in C. An extra elif statement is borrowed from
the C preprocessor, yet its syntax is C inspired. The opening and
closing block braces are mandatory. The declarations must precede statements
within a block. The variable initialization is disallowed.
A more formal syntax definition is:
- program: block
- block: declarations_section statements_section
- declarations_section:
- | declarations_line declarations_section
- declarations_line: type name subsequent_name
- ;
- subsequent_name:
- | , name subsequent_name
- statements_section:
- | statement_line statements_section
- statement_line: ;
- | expression ;
- | do { break_block } while (
expression ) ;
- | if ( expression ) { block }
elif_block_list else_block
- | while ( expression ) { break_block
}
- elif_block_list:
- | elif_block elif_block_list
- elif_block: elif ( expression ) {
- block }
- else_block:
- | else { block }
- break_block: declarations_section
- break_statements_section
- break_statements_section:
- | break_statement_line break_statements_section
- break_statement_line: break ;
- | statement_line
Functions and variables do not share the same name space, thus using a function
name for a variable is allowed. The break, do, elif,
if, else and while keywords and the cardinal,
integer, real and text type names are however restricted for
variable naming.
The available functions include all the complex filter available functions
along some more state retrieving functions, among which:
- text L_album(void);
- is the album file selection filter criterion
- text L_artist(void);
- is the artist file selection filter criterion
- integer L_back(void);
- is non zero if the load order is set to previous, 0 otherwise
- text L_basename(void);
- is the basename file selection filter criterion
- text L_class(void);
- is the complex file selection filter criterion
- text L_comment(void);
- is the comment file selection filter criterion
- text L_filter(void);
- same as L_class()
- real L_l3amplification(void);
- is the MPEG layer III audio streams amplification
- real L_l3frequency(integer index);
- is the MPEG layer III audio streams index indexed equalizer band
frequency
- real L_l3level(integer index);
- is the MPEG layer III audio streams index indexed equalizer band level
- integer L_last(void);
- same as L_back()
- text L_lead(void);
- is the first message in the message queue if any, an empty string otherwise
- integer L_long(void);
- is zero if the message queue is zero long, non zero otherwise
- text L_match(void);
- same as L_artist()
- integer L_next(void);
- is non zero if the load order is set to next, 0 otherwise
- integer L_original(void);
- is non zero if the play list is not shuffled, 0 otherwise
- text L_path(void);
- is the path file selection filter criterion
- integer L_previous(void);
- same as L_back()
- integer L_random(void);
- is non zero if the load order is set to random, 0 otherwise
- integer L_shuffled(void);
- is non zero if the play list is shuffled, 0 otherwise
- text L_title(void);
- is the title file selection filter criterion
some state setting functions, among which:
- void S_album(text album);
- sets the album file selection filter criterion to album
- void S_artist(text artist);
- sets the artist file selection filter criterion to artist
- void S_back(void);
- sets the load order to previous
- void S_basename(text basename);
- sets the basename file selection filter criterion to basename
- void S_class(text class);
- sets the complex file selection filter criterion to class
- void S_comment(text comment);
- sets the comment file selection filter criterion to comment
- void S_filter(text filter);
- same as S_class(filter)
- real S_l3amplification(real amplification);
- set the MPEG layer III audio streams amplification to amplification
- real S_l3frequency(integer index, real
- frequency);
sets the MPEG layer III audio streams index indexed equalizer band
frequency to frequency
- real S_l3level(integer index, real level);
- sets the MPEG layer III audio streams index indexed equalizer band level
to level
- void S_last(void);
- same as S_back()
- void S_match(text match);
- same as S_artist(match)
- void S_next(void);
- sets the load order to next
- void S_path(text path);
- sets the path file selection filter criterion to path
- void S_previous(void);
- same as S_back()
- void S_random(void);
- sets the load order to random
- void S_title(text title);
- sets the title file selection filter criterion to title
some state resetting functions, among which:
- void R_album(void);
- resets the album file selection filter criterion to whatever (via -A or
--album settable) default Mylene1f4 has
- void R_artist(void);
- resets the artist file selection filter criterion to whatever (via -a or
--artist settable) default Mylene1f4 has
- void R_basename(void);
- resets the basename file selection filter criterion to whatever (via -B
or --basename settable) default Mylene1f4 has
- void R_class(void);
- resets the complex file selection filter criterion to whatever (via -F or
--filter settable) default Mylene1f4 has
- void R_comment(void);
- resets the comment file selection filter criterion to whatever (via -c or
--comment settable) default Mylene1f4 has
- void R_filter(void);
- same as R_class()
- void R_match(void);
- same as R_artist()
- void R_order(void);
- resets the load order to whatever (via -L or --load-order settable)
default Mylene1f4 has
- void R_path(void);
- resets the path file selection filter criterion to whatever (via -P or
--path settable) default Mylene1f4 has
- void R_title(void);
- resets the title file selection filter criterion to whatever (via -t or
--title settable) default Mylene1f4 has
some pseudo effector functions, among which:
- void F_abort(void);
- aborts program execution
- void F_detach(void);
- asks the program to which PCM data is redirected to temporarily detach the
system audio device (note that the device can be re-attached only via a server
transmitted command)
- void F_interrupt(void);
- suspends program execution. Context execution lists only.
- void F_pause(void);
- asks the program to which PCM data is redirected (likely Mylene0fa(1)) to
pause playing (note that playing can only be resumed via a server transmitted
command)
- void F_scrap(void);
- deletes the first message in the message queue, if any
- void F_suspend(integer index);
- suspends (running execution queue) program execution and reinserts it in the
execution queue before the index indexed program. If index is
negative the suspended program is reinserted before the program indexed by the
sum of queue length, 1 and index. Thus, a 0 value for index
will reinsert the program in the first position, a 1 value in the second,
a -1 value in the last, a -2 value in the before the last and so
forth. If index is less than negated sum of queue length and 1 or
greater than queue length the function has no effect.
- If the function is called from a file selection concerned program (i.e. an
execution queue program) the suspended program is the calling program.
and some effector functions (execution queue only), among which:
- void E_down(integer count);
- sets the repeat count to count - 1 if count is greater than 1 and
plays the (with respect to the current load order and filter criteria) next
file
- void E_exit(void);
- exits Mylene1f4
- void E_load(void);
- loads the (with respect to the current load order) next file
- void E_loop(void);
- repeats the (with respect to the current load order and filter criteria) next
file forever (or until Mylene1f4 is told otherwise)
- void E_play(void);
- plays the (with respect to the current load order and filter criteria) next
file
Use --list-p-functions to obtain the complete list of program available
functions.
The available operators include all the complex filter available operators.
Program available operators also include:
- text text-variable = text-expression
- is text-expression, just as text-variable is after evaluation
Use --list-p-fs-operators to obtain the complete list of available file
selection concerned unary operators.
Use --list-p-u-operators to obtain the complete list of available unary
operators.
Use --head-p-b-operators or --list-p-b-operators to obtain the
complete list of available binary operators.
The executed programs may or may be not file selection concerned.
For the file selection concerned programs Mylene1f4 maintains an
execution queue. See PROGRAM EXECUTION QUEUE.
The non file selection concerned programs are executed in contexts such as file
play back start or finish. See PROGRAM CONTEXT EXECUTION LISTS.
Programs are granted ids. The ids are pairs of unsigned integral numbers and
are never used twice.
The programs may be send messages, by their respective ids.
PROGRAM EXECUTION QUEUE
The programs in the execution queue are executed sequentially, with a new
program starting execution only after the previous completed or was suspended.
A program execution starts after a file playback has completed, but before the
file is unloaded. Thus the file properties retrievable via functions such as
artist, title and so forth refer the file for which the playback
just completed.
Program instructions are executed uninterrupted until an effector function call
occurs. If the uninterrupted executed instructions count exceeds the allowed
limit (settable via --program-interrupt) the program execution is
aborted.
If the called effector function is E_exit Mylene1f4 exits
immediately.
If the called effector function is one of E_down, E_loop and
E_play the (with respect to the current load order and filter criteria)
next file is played as requested by the called effector function and the
program execution is resumed after the file playback completes, but before it
is unloaded (just as for program execution start).
If the called effector function is E_load the (with respect to the
current load order) next file is loaded and the program execution is resumed
before playback start. The file properties retrievable via functions such
as artist, title and so forth refer the just loaded file. If the
next effector function call is to one of the E_down, E_loop and
E_play functions the loaded file is played as it would have been if the
effector function call occured before the previous (with respect to the current
load order) file was unloaded and the current loaded file would match the
filter criteria. The effect of other effector functions is unchanged (and thus
a subsequent call to E_load will cause the loaded file to be skipped).
If no other effector function call follows the E_load call the loaded
file is skipped.
Commands received by controlling UNIX or INET server are still executed during
program execution.
PROGRAM CONTEXT EXECUTION LISTS
For each of the non file selection concerned programs execution contexts
Mylene1f4 maintains a list of to be executed programs. Once such a
context is reached (i.e. file play back starts or completes) the programs in
the context list are executed, all of them, one after another, in the order in
which they are listed.
The programs lists start execution as soon as their respective context is
reached.
Program instructions are executed uninterrupted. If the uninterrupted executed
instructions count exceeds the allowed limit (settable via
--program-interrupt) the program execution is aborted.
The execution of suspended programs is resumed once the programs respective
context is rereached.
The execution contexts (play back start and finish, that is) are reached for
each play back (and thus if a file is repeated the execution contexts are
reached for every play back repeats).
The play back start execution context is reached before the stream header
progress information is formatted (as possibly requested via -1 or
--progress1 options).
The play back finish execution context is reached after the stream trailer
progress information is formatted (as possibly requested via -3 or
--progress3 options) but before the play count (as retrievable via
play function) is incremented.
TEXT FORMATTING
A format specification is composed of zero or more directives: ordinary
characters (not %), which are copied unchanged to the standard output,
and special directives introduced by the character %, which are converted
before printing on standard output.
Apart from the usual find(1) like format directives some special
directives (call them subformat specifiers) are interpreted. A subformat
specifier is composed of the introducing character % followed by the
literal sign identifying the subformat specifier and a subformat specification
enclosed in parentheses. Unless otherwise specified, a second subformat
specification enclosed in parentheses may follow. The subformat specifier
itself does not specify any output but it allows for more flexible formatting
and conditional output (its first subformat specification is printed if some
conditions set is met, the second, if any, otherwise). A subformat specifier
does replace the current set of interpreted directives with its own set within
its scope (the first subformat specification).
A special subformat specifier is the spacing subformat specifier, which is
composed of the introducing character % followed immediately by the
subformat specification enclosed in parentheses (the identifying literal sign
is missing). Its subformat specification is always printed and it does not
replace the set of interpreted directives.
Note that literal parenthesis signes are to be escaped.
The interpreted `\' escapes are:
- \OOO
- The character whose ASCII code is octal OOO.
- \a
- Alarm bell.
- \b
- Backspace.
- \f
- Form feed.
- \n
- Newline.
- \r
- Carriage return.
- \t
- Horizontal tab.
- \v
- Vertical tab.
- \\
- A literal backslash (`\').
The interpreted directives are:
- %%
- A literal percent sign.
- %B
- The clip index (incremented every file examination).
- %C
- The class of the application (Mylene1f4).
- %E
- The release size (the number of bytes of PCM data resulted as audio frame
decoding).
- %G
- The ID3 information (note that version 2 may not be supported) (subformat
specifier).
- %L
- The file information as returned by lstat(2) (subformat specifier).
- %M
- The setup information (subformat specifier).
- %N
- The name of the loaded file (escapable).
- %O
- The file offset.
- %P
- The play index (incremented every file play).
- %Q
- The controller information (subformat specifier).
- %R
- The name of the application (whatever the basename of Mylene1f4 was when
it was called).
- %S
- The file information as returned by stat(2) (subformat specifier).
- %V
- The output information (subformat specifier).
- %X
- The filter information (subformat specifier).
- %Y
- The version.
- %Z
- The process information (subformat specifier).
- %a
- The audio device frame index (approximation).
- %b
- The basename of the loaded file (escapable).
- %c
- The index in the current files list of the loaded file.
- %d
- The dirname of the loaded file (escapable).
- %e
- The cached PCM data in bytes.
- %f
- The (to be decoded) frame index.
- %i
- The index in the initial files list of the loaded file.
- %l
- The files list information (subformat specifier).
- %o
- The load order information (subformat specifier).
- %r
- The read index in cache buffer.
- %s
- The sampling (the number of audio samples that are to be played each second).
- %t
- The stream time information (subformat specifier).
- %v
- The audio stream coding specific information (subformat specifier).
- %w
- The write index in cache buffer.
- %x
- The 1f42 map information (subformat specifier).
- %y
- The detailed version information (subformat specifier).
- %z
- The bytes to end of file.
The ID3 (%G) directives are:
- %A
- The album (escapable).
- %a
- The artist (escapable).
- %c
- The comment (escapable).
- %g
- The genre (unimplemented, for now it outputs nothing).
- %t
- The title (escapable).
- %y
- The year (escapable).
- %z
- The non zero length fields information (subformat specifier).
The ID3 non zero length fields (%G(%z)) directives are:
- %A
- The album (subformat specifier, no interpreted directives, valid when the
album field has a non zero length).
- %a
- The artist (subformat specifier, no interpreted directives, valid when the
artist field has a non zero length).
- %c
- The comment (subformat specifier, no interpreted directives, valid when the
comment field has a non zero length).
- %g
- The genre (subformat specifier, no interpreted directives, never valid).
- %t
- The title (subformat specifier, no interpreted directives, valid when the title
field has a non zero length).
- %y
- The year (subformat specifier, no interpreted directives, valid when the year
field has a non zero length).
The file information as returned by lstat(2) (%L) and the file
information as returned by stat(2) (%S) directives are:
- %B
- The blocksize for filesystem I/O (where available, `0' where not).
- %G
- The group information (subformat specifier).
- %M
- The protection.
- %U
- The user information (subformat specifier).
- %a
- The time of last access (subformat specifier).
- %b
- The number of blocks allocated (where available, `0' where not).
- %c
- The time of last change (subformat specifier).
- %d
- The device (subformat specifier).
- %g
- The group ID of owner.
- %i
- The inode.
- %m
- The time of last modification (subformat specifier).
- %n
- The number of hard links.
- %r
- The device type (if inode device) (subformat specifier).
- %s
- The total size, in bytes.
- %u
- The user ID of owner.
The interpreted group (%L(%G) and %S(%G)) directives are:
- %n
- The name.
The interpreted user (%L(%U) and %S(%U)) directives are:
- %n
- The name.
The interpreted time of last access (%L(%a) and %S(%a)), time of last change
(%L(%c) and %S(%c)), time of last modification (%L(%m) and %S(%m)) and process
start and current times (%Z(%s) and %Z(%t)) directives are:
- %A
- The date information (subformat specifier).
- %D
- The date as returned by ctime(3).
- %T
- The time of day information (subformat specifier).
- %d
- The date expressed as YYYYMMDD, where YYYY is the year, MM is the month and DD
is the month day.
- %e
- The date expressed as YYYY-MM-DD, where YYYY is the year, MM is the month and
DD is the month day.
- %t
- The time expressed as HH:MM:SS, where HH is the hour of the day, MM is the
minute of the hour and SS is the second of the minute. Same as %T(%t).
The interpreted date (%L(%a(%A)), %L(%c(%A)), %L(%m(%A)), %S(%a(%A)),
%S(%c(%A)), %S(%m(%A)), %Z(%s(%A)) and %Z(%t(%A))) directives are:
- %Y
- The year.
- %d
- The day of the month (1 .. 31).
- %m
- The month of the year (1 .. 12).
The file timestamps (%L(%a(%T)), %L(%c(%T)), %L(%m(%T)), %S(%a(%T))),
%S(%c(%T)) and %S(%m(%T))), the play start stream time (%M(%S(%t))), the
process start, current and up broken down times (%Z(%s(%T)) and %Z(%t(%T))),
the stream time (%t) and the 1f42 map available stream length (%x(%l)) and time
to end of stream (%x(%t)) directives are:
- %F
- The frame of the second (0 .. 59).
- %H
- The hour of the day (0 .. 23).
- %M
- The minute of the hour (0 .. 59).
- %S
- The second of the minute (0 .. 59).
- %f
- The frame.
- %h
- The hour.
- %m
- The minute.
- %s
- The second.
- %t
- The time expressed as HH:MM:SS, where HH is the hour of the day, MM is the
minute of the hour and SS is the second of the minute. Same as
%<0>2H:%<0>2M:%<0>2S.
- %x
- The time expressed as HH:MM:SS:FF, where HH is the hour of the day, MM is the
minute of the hour, SS is the second of the minute and FF is the frame of the
second. Same as %<0>2H:%<0>2M:%<0>2S:%<0>2F.
- %y
- The time expressed as HH:MM:SS,FF, where HH is the hour of the day, MM is the
minute of the hour, SS is the second of the minute and FF is the frame of the
second. Same as %<0>2H:%<0>2M:%<0>2S,%<0>2F.
The interpreted device (%L(%d) and %S(%d)) and device type (%L(%r) and %S(%r))
directives are:
- %M
- The major.
- %m
- The minor.
The interpreted setup (%M) directives are:
- %S
- The start information (subformat specifier).
- %V
- The output setup information (subformat specifier).
- %l
- The loaders setup information (subformat specifier).
The interpreted start (%M(%S)) directives are:
- %f
- The play start frame index information (subformat specifier).
- %t
- The play start stream time information (subformat specifier).
The interpreted play start frame index (%M(%S(%f))) directives are:
- %i
- The frame index.
The interpreted output setup (%M(%V)) directives are:
- %d
- The "device" output setup information (subformat specifier, valid when output
type was via -o or --output set to device).
The interpreted "device" output setup (%M(%V(%d))) directives are:
- %n
- The name (set via -C or --device-name, same as %V(%d(%n))).
- %p
- The path (set via -d or --device, same as %V(%d(%p))).
The interpreted loaders setup (%M(%l)) directives are:
- %m
- The MPEG audio stream loader setup information (subformat specifier).
The interpreted MPEG audio stream loader setup (%M(%l(%m))) directives are:
- %a
- The amplification information (subformat specifier).
- %e
- The equalizer information (subformat specifier, valid when the amplification is
not zero).
The interpreted MPEG audio stream amplification (%M(%l(%m(%a)))) directives
are:
- %l
- The level (real).
The interpreted MPEG audio stream equalizer (%M(%l(%m(%e)))) directives are:
- %b
- The equalizer band information (iterable subformat specifier).
- %c
- The equalizer bands count.
The interpreted MPEG audio stream equalizer band (%M(%l(%m(%e(%b)))))
directives are:
- %f
- The frequency (real).
- %i
- The index.
- %l
- The level (real).
The interpreted controller (%Q) directives are:
- %L
- The lanes controller information (subformat specifier).
- %N
- The no controller information (subformat specifier).
- %S
- The UNIX or INET server controller information (subformat specifier).
The interpreted UNIX or INET server controller (%Q(%S)) directives are:
- %C
- The cycling (off if the file is not going to be replayed, on if the
file in repeated forever or a non null cardinal representing the number of
times the file will be replayed).
- %a
- The repeat count (the number of times the currently playing file was
continuously repeated as a result of repeat requests).
- %e
- The program execution information (subformat specifier, no interpreted
directives, valid when a program is being executed or ready for execution).
- %q
- The programs execution queue information (subformat specifier).
- %t
- The context programs execution lists information (subformat specifier).
- %x
- The running program information (subformat specifier, valid when a program is
being executed).
The interpreted UNIX or INET server controller execution queue (%Q(%S(%q))),
file play back start execution list (%Q(%S(%t(%p)))) and file play back finish
execution list (%Q(%S(%t(%q)))) directives are:
- %l
- The queue or list length (the number of programs in the queue or list).
- %p
- The program information (iterable subformat specifier).
The interpreted UNIX or INET server controller execution queue program
(%Q(%S(%q(%p)))), file play back start execution list program
(%Q(%S(%t(%p(%p))))) and file play back finish execution list program
(%Q(%S(%t(%q(%p))))) directives are:
- %d
- The ID (subformat specifier).
- %i
- The index (0 for the first to be executed).
- %m
- The memory statistics information (subformat specifier).
- %t
- The title information (subformat specifier, valid when a title is defined for
the program).
The interpreted UNIX or INET server controller execution queue program ID
(%Q(%S(%q(%p(%d))))), file play back start execution list program ID
(%Q(%S(%t(%p(%p(%d)))))) and file play back finish execution list program ID
(%Q(%S(%t(%q(%p(%d)))))) directives are:
- %M
- The major.
- %m
- The minor.
The interpreted UNIX or INET server controller execution queue program memory
statistics (%Q(%S(%q(%p(%m))))), file play back start execution list program
memory statistics (%Q(%S(%t(%p(%p(%m)))))) and file play back finish execution
list program memory statistics (%Q(%S(%t(%q(%p(%m)))))) directives are:
- %s
- The allocated size, expressed in bytes.
The interpreted UNIX or INET server controller execution queue program title
(%Q(%S(%q(%p(%t))))), file play back start execution list program title
(%Q(%S(%t(%p(%p(%t)))))) and file play back finish execution list program title
(%Q(%S(%t(%q(%p(%t)))))) directives are:
- %t
- The title text.
The interpreted UNIX or INET server controller context execution lists
(%Q(%S(%t))) directives are:
- %p
- The file play back start execution list information (subformat specifier).
- %p
- The file play back finish execution list information (subformat specifier).
The interpreted UNIX or INET server controller running program (%Q(%S(%x)))
directives are:
- %d
- The ID (subformat specifier).
- %m
- The memory statistics information (subformat specifier).
- %t
- The title information (subformat specifier, valid when a title is defined for
the running program).
The interpreted UNIX or INET server controller running program ID
(%Q(%S(%x(%d)))) directives are:
- %M
- The major.
- %m
- The minor.
The interpreted UNIX or INET server controller running program memory
statistics (%Q(%S(%x(%m)))) directives are:
- %s
- The allocated size, expressed in bytes.
The interpreted UNIX or INET server controller running program title
(%Q(%S(%x(%t)))) directives are:
- %t
- The title text.
The interpreted output (%V) directives are:
- %d
- The "device" output information (subformat specifier, valid when output type
was via -o or --output set to device).
- %n
- The "null" output information (subformat specifier, no interpreted directives,
valid when output type was via -o or --output set to null).
- %s
- The "skip" output information (subformat specifier, no interpreted directives,
valid when output type was via -o or --output set to skip).
The interpreted "device" output (%V(%d)) directives are:
- %d
- The reported state (the internal acknowledged state of the program to which
Mylene1f4 redirects PCM data as reported by itself).
- %n
- The name (set via -C or --device-name, same as %M(%V(%d(%n)))).
- %p
- The path (set via -d or --device, same as %M(%V(%d(%p)))).
- %q
- The process id.
The interpreted "device" output reported state (%V(%d(%d))) directives are:
- %A
- The "is system audio device attached" information (subformat specifier, no
interpreted directives, valid when the system audio device is opened).
- %p
- The "is playing" information (subformat specifier, no interpreted directives,
valid when the commanded state is playing if system audio device attached).
The interpreted filter (%X) directives are:
- %A
- The album match target (initially set via -A or --album).
- %B
- The basename match target (initially set via -B or --basename).
- %P
- The path match target (initially set via -P or --path).
- %a
- The artist match target (initially set via -a or --artist).
- %c
- The comment match target (initially set via -c or --comment).
- %t
- The title match target (initially set via -t or --title).
- %x
- The complex filter expression (initially set via -F or --filter).
The interpreted process (%Z) directives are:
- %p
- The process id, as returned by getpid(2).
- %s
- The process (approximate) start time (subformat specifier).
- %t
- The process (approximate) current time (subformat specifier).
- %u
- The process (approximate) up time (subformat specifier).
The process (approximate) up time (%Z(%u)) directives are:
- %T
- The time of day information (subformat specifier).
- %d
- The day.
- %s
- The second day (subformat specifier, no interpreted directives, valid when the
up time day count is 1).
The interpreted files list (%l) directives are:
- %f
- The files information (iterable subformat specifier).
- %l
- The list length.
- %s
- The "is shuffled" information (subformat specifier, no interpreted directives,
valid when the files list is shuffled).
- %t
- The "is tagged" information (subformat specifier, no interpreted directives,
valid when the files list is tagged, i.e. when was specified via one of
-i or --tagged-list options).
The interpreted files in files list information (%l(%f)) directives are:
- %N
- The name of the file (escapable).
- %b
- The basename of the file (escapable).
- %c
- The index in the current files list of the file.
- %d
- The dirname of the file (escapable).
- %i
- The index in the initial files list of the file.
- %t
- The file tags (subformat specifier, valid when the files list is tagged, i.e.
when was specified via one of -i or --tagged-list options).
The interpreted file tags (%l(%f(%t))) directives are:
- %A
- The album (escapable).
- %a
- The artist (escapable).
- %c
- The comment (escapable).
- %g
- The genre (unimplemented, for now it outputs nothing).
- %t
- The title (escapable).
- %y
- The year (escapable).
- %z
- The non zero length fields information (subformat specifier).
The interpreted non zero length file tags (%l(%f(%t(%z)))) directives are:
- %A
- The album (subformat specifier, no interpreted directives, valid when the
album tag has a non zero length).
- %a
- The artist (subformat specifier, no interpreted directives, valid when the
artist tag has a non zero length).
- %c
- The comment (subformat specifier, no interpreted directives, valid when the
comment tag has a non zero length).
- %g
- The genre (subformat specifier, no interpreted directives, never valid).
- %t
- The title (subformat specifier, no interpreted directives, valid when the title
tag has a non zero length).
- %y
- The year (subformat specifier, no interpreted directives, valid when the year
tag has a non zero length).
The interpreted load order (%o) directives are:
- %n
- The "next" order information (subformat specifier, no interpreted directives).
- %p
- The "previous" order information (subformat specifier, no interpreted
directives).
- %z
- The "random" order information (subformat specifier, no interpreted
directives).
The interpreted source specific (%v) directives are:
- %M
- The mpeg system stream information (subformat specifier).
- %a
- The A52a information (subformat specifier).
- %h
- The 1f42 map information (subformat specifier).
- %l
- The DVD audio private_stream_1 Linear PCM track information (subformat
specifier).
- %m
- The mpeg audio stream information (subformat specifier).
The mpeg system stream (%v(%M)) directives are:
- %S
- The specification (one of ISO/IEC 11172-1 and ISO/IEC 13818-1).
The A52a (%v(%a)) directives are:
- %E
- The frame rate denominator.
- %e
- The frame rate numerator.
The 1f42 map (%v(%h)) directives are:
- %A
- The multiple entries map information (subformat specifier, valid when the
entry count is not 1).
The multiple entries 1f42 map (%v(%h(%A))) directives are:
- %E
- The entry count.
- %e
- The entry index.
The DVD audio private_stream_1 Linear PCM track (%v(%l)) directives are:
- %E
- The frame rate denominator.
- %e
- The frame rate numerator.
- %y
- The system information (subformat specifier).
The DVD audio private_stream_1 Linear PCM track system (%v(%l(%y))) directives
are:
- %t
- The private_stream_1 track id.
The mpeg audio stream (%v(%m)) directives are:
- %B
- The bitrate.
- %E
- The frame rate denominator.
- %L
- The layer (arabic digits).
- %M
- The mode extension.
- %S
- The specification (one of ISO/IEC 11172-3 and ISO/IEC 13818-3).
- %e
- The frame rate numerator.
- %f
- The frame rate (real periodic representation).
- %l
- The layer.
- %m
- The mode (one of dual_channel, joint_stereo, single_channel
and stereo).
The 1f42 map (%x) directives are:
- %F
- The frame count.
- %l
- The stream length information (subformat specifier).
- %t
- The time to end of stream information (subformat specifier).
The detailed version (%y) directives are:
- %a
- The Mylene1f4 MPEG audio decoder version.
After the %, the following may appear in sequence:
- A decimal digit string preceded by a : (`colon') sign and followed by a
: (`colon') sign specifying the parent order to which the current format
directive should be interpreted.
- #
- Specifying that the field must be displayed in an alternate form.
- A string preceded by a < (`less') sign and followed by a >
(`greater') sign specifying how should the field be padded if its width is less
than the indicated minimum field width. The field padding is done by
replicating the string as many times as necessary.
- A decimal digit string preceded by any number of + (`plus') and -
(`minus') signs specifying a minimum field width.
- A list of precision specifiers, each composed of the introducing .
(`period') sign and a decimal digit string. For real directives the first
specifies the minimum number of characters following the integral part minus 1,
the second specifies the maximum number of digits of the fractional part.
The escapable string fields are printed escaped in alternate form.
The man page may be obsolete or incorrect in describing the available
formatting directives. Use --list-directives, --pack-directives
or --tree-directives to obtain the compiled list of available formatting
directives.
Example:
The next suitable for stream header progress information (it is actually the
x1f4 progress type formatting for stream header progress information)
text formatting specification adds:
- "%b"
- "%x( \(%l(%<0>2H:%<0>2M:%<0>2S:%<0>2F), %7F frames\))\n"
printing the basename of the file followed by the 1f42 map provided stream
length and number of frames if the file has such a map,
- "%G(%a\n%t\n)"
printing the artist and title properties of the file if an ID3 tag has been
read and
- "%v(%m(%S, layer %3l))"
- "%v(%m(, %3B kbits/s, %:2:5s Hz, %14m, %M\n))"
printing some MPEG audio stream information.
SERVER MODE
If so requested Mylene1f4 may establish a TCP/IP or a TCP/UNIX server on
which commands may be received (see --inet-server and
--unix-server).
Mylene1f4 is able of serving only one client at any single time. A multi
client extension server (such as Mylene200(1)) will allow the
simultaneous connection of more clients.
MAPPED STREAMS SUPPORT
SEE ALSO
Mylene0fa(1), Mylene200(1), Mylene3e8(1), ctime(3),
express17(1), lstat(2), mapmaudio(1), stat(2)
AUTHORS