Switch to unified view

a/doc/upmpdcli-manual.txt b/doc/upmpdcli-manual.txt
...
...
510
impossible to achieve when going through *mpd*, and the second reason why
510
impossible to achieve when going through *mpd*, and the second reason why
511
*sc2mpd* must be set in _alsa_ mode for multiroom setups. In _mpd_ mode,
511
*sc2mpd* must be set in _alsa_ mode for multiroom setups. In _mpd_ mode,
512
the Receivers can be out of sync by several seconds.
512
the Receivers can be out of sync by several seconds.
513
513
514
514
515
[[UPMPDCLI-MS]]
515
[[UPMPDCLI-MS-STR]]
516
== Upmpdcli Media Server
516
== Upmpdcli Media Server: streaming services
517
517
518
The Media Server function in Upmpdcli (1.2.0 and later) gives access to
518
The Media Server function in Upmpdcli (1.2.0 and later) gives access to
519
external streaming services: Qobuz, Tidal, and Google Music at the moment.
519
external streaming services: Qobuz, Tidal, and Google Music at the moment.
520
520
521
You will need a valid account on any service that you want to use.
521
You will need a valid account on any service that you want to use.
...
...
611
611
612
You will need a valid subscription for most functions.
612
You will need a valid subscription for most functions.
613
613
614
The configuration parameters are described in the
614
The configuration parameters are described in the
615
<<gmusicuser,configuration section>>
615
<<gmusicuser,configuration section>>
616
617
618
[[UPRCL]]
619
== Upmpdcli local Media Server: uprcl
620
621
The current (2017-04) upmpdcli code base includes a Media Server function
622
for local music files, analog to MinimServer or ReadyMedia/MiniDLNA. The
623
plugin module is named uprcl.
624
625
Why yet another Media Server ? MinimServer is great, and free, but not
626
open-source. ReadyMedia is nice too, but audio file format support is
627
incomplete (there was a patch for DSD but it was never merged apparently),
628
I've always found it a bit clunky (for example: no incremental updates),
629
and development does not seem very active.
630
631
The new upmpdcli Media Server is at most beta quality. It probably has even
632
less format support than MiniDLNA... But it's written in Python, and I have
633
good hope that it can evolve faster.
634
635
Some features:
636
637
- Mostly written in Python, except for the pieces shared with the streaming
638
  plugins: UPnP interface proper, and plugin management, which are C++, but
639
  should not need a lot of changes.
640
- Tries to mimick the MinimServer tree view, which I find quite nice. We're
641
  not quite there yet, many functions and niceties, and the customization
642
  capability are missing.
643
- Uses Recoll and python-recoll (hence the uprcl name) for harvesting the
644
  metadata and searching. Recoll already had almost everything needed in
645
  this area, no development needed. It can perform incremental updates and
646
  file system monitoring.
647
- Uses Python sqlite3 (on a memory DB) for the tags tree. 
648
649
Installation and configuration: have a look at the
650
xref:uprcluser[configuration variables]
651
652
[[UPRCL-SEARCH]]
653
=== Upmpdcli/Uprcl searches
654
655
The UPnP Media Server search function is based on a specific query
656
language. This language is quite verbose, and most control points will not
657
let you access it directly. Instead, they will usually provide a generic
658
entry field in which you enter search terms.  Behind the scenes, they
659
generate an UPnP search language string. This could be for example
660
something like: `upnp:class = "object.item.audioItem" and dc:title
661
contains "heaven"`
662
663
If it supports search at all, the Media Server will then interpret the
664
query string and return the results.
665
666
If the Media Server is Upmpdcli/Uprcl, there is another step: the UPnP
667
query string is translated into a Recoll one and Recoll is called to
668
perform the actual search. There is no way to directly enter a Recoll
669
search through the control point. However, two important Recoll
670
capabilities should still be visible through the layers:
671
672
.Stemming
673
674
Stemming is the capability to expand a search to the common derivatives of
675
a word. For example, a search for `floor` would be expanded to also look
676
for `floors`, `flooring`, `floored`, etc. By default, stemming is enabled
677
for Uprcl search. It can be turned off for any term by capitalizing the
678
term (Entering `Stones` will only search for `stones`, not `stone` or
679
`stoned`). Uprcl/Recoll searches are case-insensitive apart from this usage
680
of capitalization.
681
682
.Phrase searches
683
684
By default, Uprcl/Recoll searches do not observe the order
685
of terms: `red house` will be matched by a search for `house red` (or
686
`houses red`). You can change this behaviour by quoting a sequence of
687
words. A search for `"red house"` will only look for a text containing the
688
words in order. This supposes that the Control Point does not change the
689
user entry, but this is the case for at least some of them. Stemming
690
expansion does not occur within phrase searches.
691
692
Other Recoll capabilities, such as proximity searches should also be
693
accessible, but probably less useful when searching music titles or artist
694
names.
695
696
616
697
617
698
618
[[UPMPDCLI-CONFIG]]
699
[[UPMPDCLI-CONFIG]]
619
== Upmpdcli configuration file reference
700
== Upmpdcli configuration file reference
620
701