[docs] Brush up the documentation
* Try to organize after expected user need * Update mkdocs stuff and fix a broken link * Move web building info to building.md * Add info about Roku Soundbridge * Add note about Google Nest not working
This commit is contained in:
parent
75a1082b0a
commit
7da811e3b3
|
@ -11,8 +11,7 @@ interface: Select the device and then enter the PIN that the Apple TV displays.
|
|||
|
||||
If your speaker is silent when you start playback, and there is no obvious error
|
||||
message in the log, you can try disabling ipv6 in the config. Some speakers
|
||||
announce that they support ipv6, but in fact don't (at least not with forked-
|
||||
daapd).
|
||||
announce that they support ipv6, but for some reason don't work with OwnTone.
|
||||
|
||||
If the speaker becomes unselected when you start playback, and you in the log
|
||||
see "ANNOUNCE request failed in session startup: 400 Bad Request", then try
|
|
@ -2,3 +2,8 @@
|
|||
|
||||
OwnTone will discover Chromecast devices available on your network, and you
|
||||
can then select the device as a speaker. There is no configuration required.
|
||||
|
||||
Take note that:
|
||||
|
||||
- Chromecast playback can't be precisely sync'ed with other outputs e.g. AirPlay
|
||||
- Playback to Google Nest doesn't work
|
|
@ -0,0 +1,19 @@
|
|||
# Listening on your Mobile Device
|
||||
|
||||
## iOS
|
||||
|
||||
On iOS, the options are limited because there are no Media Client apps with DAAP
|
||||
support and because Apple doesn't allow AirPlay receiver apps. OwnTone also
|
||||
can't share music via Home Sharing, which is the protocol Apple uses for sharing
|
||||
media between devices.
|
||||
|
||||
That leaves the following options, which all rely on OwnTone's streaming:
|
||||
|
||||
- listen via the [web interface](web.md)
|
||||
- use a [MPD client app](../control-clients/mobile.md#mpd-client-apps) that supports local playback
|
||||
- connect to the [streaming](streaming.md) endpoint with a media player like VLC
|
||||
|
||||
## Android
|
||||
|
||||
On Android, you can use the same streaming methods described for iOS, but you
|
||||
can also find apps that act as AirPlay receivers.
|
|
@ -0,0 +1,9 @@
|
|||
# Roku devices/speakers
|
||||
|
||||
OwnTone can stream audio to classic RSP/RCP-based devices like Roku Soundbridge
|
||||
M1001 and M2000.
|
||||
|
||||
If the source file is in a non-supported format, like flac, OwnTone will
|
||||
transcode to wav. Transmitting wav requires some bandwidth and the legacy
|
||||
network interfaces of these devices may struggle with that. If so, you can
|
||||
change the transcoding format for the speaker to alac via the [JSON API](../json-api.md#change-an-output).
|
|
@ -1,20 +1,10 @@
|
|||
# Streaming
|
||||
|
||||
The streaming option is useful when you want to listen to audio played by
|
||||
OwnTone in a browser or a media player of your choice [^1],[^3].
|
||||
OwnTone in a browser or a media player of your choice [^1],[^2].
|
||||
|
||||
Moreover, Apple Remote or the web interface can be used to control the
|
||||
playback.
|
||||
|
||||
## Listening to Audio in a Browser
|
||||
|
||||
To listen to audio being played by OwnTone in a browser, follow these
|
||||
steps:
|
||||
|
||||
1. Start playing audio in OwnTone.
|
||||
2. In the web interface, activate the stream in the output menu by clicking
|
||||
on the icon :material-broadcast: next to HTTP Stream.
|
||||
After a few seconds, the audio should play in the background [^2].
|
||||
You can control playback via the web interface or any of the supported control
|
||||
clients.
|
||||
|
||||
## Listening to Audio in a Media Player
|
||||
|
||||
|
@ -37,10 +27,7 @@ steps:
|
|||
audio, since Apple does not allow AirPlay receiver apps, and because
|
||||
Home Sharing cannot be supported by OwnTone.
|
||||
|
||||
[^2]: On iOS devices, playing audio in the background when the device is locked
|
||||
is not supported in a private browser tab.
|
||||
|
||||
[^3]: For the streaming option to work, MP3 encoding must be supported by
|
||||
[^2]: For the streaming option to work, MP3 encoding must be supported by
|
||||
`libavcodec`. If it is not, a message will appear in the log file.
|
||||
For example, on Debian or Ubuntu, MP3 encoding support is provided by the
|
||||
package `libavcodec-extra`.
|
|
@ -0,0 +1,19 @@
|
|||
# Listening to Audio in a Browser
|
||||
|
||||
To listen to audio being played by OwnTone in a browser, follow these
|
||||
steps:
|
||||
|
||||
1. Start playing audio in OwnTone.
|
||||
2. In the web interface, activate the stream in the output menu by clicking
|
||||
on the icon :material-broadcast: next to HTTP Stream.
|
||||
After a few seconds, the audio should play in the background [^1].
|
||||
|
||||
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
|
||||
|
||||
For the streaming option to work, MP3 encoding must be supported by
|
||||
`libavcodec`. If it is not, a message will appear in the log file. For example,
|
||||
on Debian or Ubuntu, MP3 encoding support is provided by the package
|
||||
`libavcodec-extra`.
|
||||
|
||||
[^1]: On iOS devices, playing audio in the background when the device is locked
|
||||
is not supported in a private browser tab.
|
|
@ -272,7 +272,12 @@ The source for the player web interface is located under the `web-src` folder an
|
|||
requires nodejs >= 6.0 to be built. In the `web-src` folder run `npm install` to
|
||||
install all dependencies for the player web interface. After that run `npm run build`.
|
||||
This will build the web interface and update the `htdocs` folder.
|
||||
(See [Web interface](clients/web-interface.md) for more informations)
|
||||
|
||||
To serve the web interface locally you can run `npm run serve`, which will make
|
||||
it reachable at [localhost:3000](http://localhost:3000). The command expects the
|
||||
server be running at [localhost:3689](http://localhost:3689) and proxies API
|
||||
calls to this location. If the server is running at a different location you
|
||||
can use `export VITE_OWNTONE_URL=http://owntone.local:3689`.
|
||||
|
||||
Building with libwebsockets is required if you want the web interface.
|
||||
It will be enabled if the library is present (with headers).
|
||||
|
@ -308,6 +313,23 @@ if it's started as root.
|
|||
This user must have read permission to your library and read/write permissions
|
||||
to the database location (`$localstatedir/cache/owntone` by default).
|
||||
|
||||
## Web source formatting/linting
|
||||
|
||||
The source code follows certain formatting conventions for maintainability and
|
||||
readability. To ensure that the source code follows these conventions,
|
||||
[Prettier](https://prettier.io/) is used.
|
||||
|
||||
The command `npm run format` applies formatting conventions to the source code
|
||||
based on a preset configuration. Note that a additional configuration is made in
|
||||
the file `.prettierrc.json`.
|
||||
|
||||
To flag programming errors, bugs, stylistic errors and suspicious constructs in
|
||||
the source code, [ESLint](https://eslint.org) is used.
|
||||
|
||||
ESLint has been configured following this [guide](https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/).
|
||||
|
||||
`npm run lint` lints the source code and fixes all automatically fixable errors.
|
||||
|
||||
## Non-Priviliged User Version for Development
|
||||
|
||||
OwnTone is meant to be run as system wide daemon, but for development purposes
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
# MPD Clients
|
||||
|
||||
You can - to some extent - use clients for MPD to control OwnTone.
|
||||
|
||||
By default OwnTone listens on port 6600 for MPD clients. You can change
|
||||
this in the configuration file.
|
||||
|
||||
Currently only a subset of the commands offered by MPD (see [MPD Protocol](https://mpd.readthedocs.io/en/latest/protocol.html)) are supported.
|
||||
|
||||
Due to some differences between OwnTone and MPD not all commands will act the
|
||||
same way they would running MPD:
|
||||
|
||||
- crossfade, mixrampdb, mixrampdelay and replaygain will have no effect
|
||||
- single, repeat: unlike MPD, OwnTone does not support setting single and repeat separately
|
||||
on/off, instead repeat off, repeat all and repeat single are supported. Thus setting single on will result in repeat single, repeat on results in repeat all.
|
||||
|
||||
The following table shows what is working for a selection of MPD clients:
|
||||
|
||||
| Client | Type | Status |
|
||||
| --------------------------------------------- | ------ | --------------- |
|
||||
| [mpc](https://www.musicpd.org/clients/mpc/) | CLI | Working commands: mpc, add, crop, current, del (ranges are not yet supported), play, next, prev (behaves like cdprev), pause, toggle, cdprev, seek, clear, outputs, enable, disable, playlist, ls, load, volume, repeat, random, single, search, find, list, update (initiates an init-rescan, the path argument is not supported) |
|
||||
| [ympd](http://www.ympd.org/) | Web | Everything except "add stream" should work |
|
|
@ -1,71 +0,0 @@
|
|||
# Using Remote
|
||||
|
||||
Remote gets a list of output devices from the server; this list includes any
|
||||
and all devices on the network we know of that advertise AirPlay: AirPort
|
||||
Express, Apple TV, … It also includes the local audio output, that is, the
|
||||
sound card on the server (even if there is no sound card).
|
||||
|
||||
OwnTone remembers your selection and the individual volume for each
|
||||
output device; selected devices will be automatically re-selected, except if
|
||||
they return online during playback.
|
||||
|
||||
## Pairing
|
||||
|
||||
1. Open the [web interface](http://owntone.local:3689)
|
||||
2. Start Remote, go to Settings, Add Library
|
||||
3. Enter the pair code in the web interface (reload the browser page if
|
||||
it does not automatically pick up the pairing request)
|
||||
|
||||
If Remote does not connect to OwnTone after you entered the pairing code
|
||||
something went wrong. Check the log file to see the error message. Here are
|
||||
some common reasons:
|
||||
|
||||
- You did not enter the correct pairing code
|
||||
|
||||
You will see an error in the log about pairing failure with a HTTP response code
|
||||
that is *not* 0.
|
||||
|
||||
Solution: Try again.
|
||||
|
||||
- No response from Remote, possibly a network issue
|
||||
|
||||
If you see an error in the log with either:
|
||||
|
||||
- a HTTP response code that is 0
|
||||
- "Empty pairing request callback"
|
||||
|
||||
it means that OwnTone could not establish a connection to Remote. This
|
||||
might be a network issue, your router may not be allowing multicast between the
|
||||
Remote device and the host OwnTone is running on.
|
||||
|
||||
Solution 1: Sometimes it resolves the issue if you force Remote to quit, restart
|
||||
it and do the pairing process again. Another trick is to establish some other
|
||||
connection (eg SSH) from the iPod/iPhone/iPad to the host.
|
||||
|
||||
Solution 2: Check your router settings if you can whitelist multicast addresses
|
||||
under IGMP settings. For Apple Bonjour, setting a multicast address of
|
||||
224.0.0.251 and a netmask of 255.255.255.255 should work.
|
||||
|
||||
- Otherwise try using `avahi-browse` for troubleshooting:
|
||||
|
||||
- in a terminal, run:
|
||||
|
||||
```shell
|
||||
avahi-browse -r -k _touch-remote._tcp
|
||||
```
|
||||
|
||||
- start Remote, goto Settings, Add Library
|
||||
- after a couple seconds at most, you should get something similar to this:
|
||||
|
||||
```shell
|
||||
+ ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
= ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
hostname = [Foobar.local]
|
||||
address = [192.168.1.1]
|
||||
port = [49160]
|
||||
txt = ["DvTy=iPod touch" "RemN=Remote" "txtvers=1" "RemV=10000" "Pair=FAEA410630AEC05E" "DvNm=Foobar"]
|
||||
```
|
||||
|
||||
Hit Ctrl+C to terminate `avahi-browse`.
|
||||
|
||||
- To check for network issues you can try to connect to the server address and port with [`nc`](https://en.wikipedia.org/wiki/Netcat) or [`telnet`](https://en.wikipedia.org/wiki/Telnet) commands.
|
|
@ -1,42 +0,0 @@
|
|||
# Supported Clients
|
||||
|
||||
OwnTone supports these kinds of clients:
|
||||
|
||||
- DAAP clients, like iTunes or Rhythmbox
|
||||
- Remote clients, like Apple Remote or compatibles for Android/Windows Phone
|
||||
- AirPlay devices, like AirPort Express, Shairport and various AirPlay speakers
|
||||
- Chromecast devices
|
||||
- MPD clients, like mpc
|
||||
- MP3 network stream clients, like VLC and almost any other music player
|
||||
- RSP clients, like Roku Soundbridge
|
||||
|
||||
Like iTunes, you can control OwnTone with Remote and stream your music to
|
||||
AirPlay devices.
|
||||
|
||||
A single OwnTone instance can handle several clients concurrently, regardless of
|
||||
the protocol.
|
||||
|
||||
By default all clients on 192.168.* (and the ipv6 equivalent) are allowed to
|
||||
connect without authentication. You can change that in the configuration file.
|
||||
|
||||
Here is a list of working and non-working DAAP and Remote clients. The list is
|
||||
probably obsolete when you read it :-)
|
||||
|
||||
| Client | Developer | Type | Platform | Working (vers.) |
|
||||
| ------------------------ | ----------- | ------ | --------------- | --------------- |
|
||||
| iTunes | Apple | DAAP | Win | Yes (12.10.1) |
|
||||
| Apple Music | Apple | DAAP | macOS | Yes |
|
||||
| Rhythmbox | Gnome | DAAP | Linux | Yes |
|
||||
| Diapente | diapente | DAAP | Android | Yes |
|
||||
| WinAmp DAAPClient | WardFamily | DAAP | WinAmp | Yes |
|
||||
| Amarok w/DAAP plugin | KDE | DAAP | Linux/Win | Yes (2.8.0) |
|
||||
| Banshee | | DAAP | Linux/Win/macOS | No (2.6.2) |
|
||||
| jtunes4 | | DAAP | Java | No |
|
||||
| Firefly Client | | (DAAP) | Java | No |
|
||||
| Remote | Apple | Remote | iOS | Yes (4.3) |
|
||||
| Retune | SquallyDoc | Remote | Android | Yes (3.5.23) |
|
||||
| TunesRemote+ | Melloware | Remote | Android | Yes (2.5.3) |
|
||||
| Remote for iTunes | Hyperfine | Remote | Android | Yes |
|
||||
| Remote for Windows Phone | Komodex | Remote | Windows Phone | Yes (2.2.1.0) |
|
||||
| TunesRemote SE | | Remote | Java | Yes (r108) |
|
||||
| rtRemote for Windows | bizmodeller | Remote | Windows | Yes (1.2.0.67) |
|
|
@ -1,123 +0,0 @@
|
|||
# Web Interface
|
||||
|
||||
The web interface is a mobile-friendly music player and browser for OwnTone.
|
||||
|
||||
You can reach it at [http://owntone.local:3689](http://owntone.local:3689)
|
||||
or depending on the OwnTone installation at `http://<server-address>:<port>`.
|
||||
|
||||
This interface becomes useful when you need to control playback, trigger
|
||||
manual library rescans, pair with remotes, select speakers, grant access to
|
||||
Spotify, and for many other operations.
|
||||
|
||||
## Screenshots
|
||||
|
||||
Below you have a selection of screenshots that shows different part of the
|
||||
interface.
|
||||
|
||||
![Now playing](../assets/images/screenshot-now-playing.png){: class="zoom" }
|
||||
![Queue](../assets/images/screenshot-queue.png){: class="zoom" }
|
||||
![Music browse](../assets/images/screenshot-music-browse.png){: class="zoom" }
|
||||
![Music artists](../assets/images/screenshot-music-artists.png){: class="zoom" }
|
||||
![Music artist](../assets/images/screenshot-music-artist.png){: class="zoom" }
|
||||
![Music albums](../assets/images/screenshot-music-albums.png){: class="zoom" }
|
||||
![Music albums options](../assets/images/screenshot-music-albums-options.png){: class="zoom" }
|
||||
![Music album](../assets/images/screenshot-music-album.png){: class="zoom" }
|
||||
![Spotify](../assets/images/screenshot-music-spotify.png){: class="zoom" }
|
||||
![Audiobooks authors](../assets/images/screenshot-audiobooks-authors.png){: class="zoom" }
|
||||
![Audiobooks](../assets/images/screenshot-audiobooks-books.png){: class="zoom" }
|
||||
![Podcasts](../assets/images/screenshot-podcasts.png){: class="zoom" }
|
||||
![Podcast](../assets/images/screenshot-podcast.png){: class="zoom" }
|
||||
![Files](../assets/images/screenshot-files.png){: class="zoom" }
|
||||
![Search](../assets/images/screenshot-search.png){: class="zoom" }
|
||||
![Menu](../assets/images/screenshot-menu.png){: class="zoom" }
|
||||
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
|
||||
|
||||
## Usage
|
||||
|
||||
The web interface is usually reachable at [http://owntone.local:3689](http://owntone.local:3689).
|
||||
But depending on the setup of OwnTone you might need to adjust the server name
|
||||
and port of the server accordingly `http://<server-name>:<port>`.
|
||||
|
||||
## Building and Serving
|
||||
|
||||
The web interface is built with [Vite](https://vitejs.dev/) and [Bulma](http://bulma.io).
|
||||
|
||||
Its source code is located in the `web-src` folder and therefore all `npm`
|
||||
commands must be run under this folder.
|
||||
|
||||
To switch to this folder, run the command hereafter.
|
||||
|
||||
```shell
|
||||
cd web-src
|
||||
```
|
||||
|
||||
### Dependencies Installation
|
||||
|
||||
First of all, the dependencies to libraries must be installed with the command
|
||||
below.
|
||||
|
||||
```shell
|
||||
npm install
|
||||
```
|
||||
|
||||
Once the libraries installed, you can either [build](#source-code-building),
|
||||
[format](#source-code-formatting), and [lint](#source-code-linting) the source
|
||||
code, or [serve](#serving) the web interface locally.
|
||||
|
||||
### Source Code Building
|
||||
|
||||
The following command builds the web interface for production with minification
|
||||
and stores it under the folder `../htdocs`.
|
||||
|
||||
```shell
|
||||
npm run build
|
||||
```
|
||||
|
||||
### Source Code Formatting
|
||||
|
||||
The source code follows certain formatting conventions for maintainability and
|
||||
readability. To ensure that the source code follows these conventions,
|
||||
[Prettier](https://prettier.io/) is used.
|
||||
|
||||
The command below applies formatting conventions to the source code based on a
|
||||
preset configuration. Note that a additional configuration is made in the file
|
||||
`.prettierrc.json`.
|
||||
|
||||
```shell
|
||||
npm run format
|
||||
```
|
||||
|
||||
### Source Code Linting
|
||||
|
||||
In order to flag programming errors, bugs, stylistic errors and suspicious
|
||||
constructs in the source code, [ESLint](https://eslint.org) is used.
|
||||
|
||||
Note that ESLint has been configured following this [guide](https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/).
|
||||
|
||||
The following command lints the source code and fixes all automatically fixable
|
||||
errors.
|
||||
|
||||
```shell
|
||||
npm run lint
|
||||
```
|
||||
|
||||
### Serving
|
||||
|
||||
In order to serve locally the web interface, the following command can be run.
|
||||
|
||||
```shell
|
||||
npm run serve
|
||||
```
|
||||
|
||||
After running `npm run serve` the web interface is reachable at [localhost:3000](http://localhost:3000).
|
||||
|
||||
By default the above command expects the OwnTone server to be running at
|
||||
[localhost:3689](http://localhost:3689) and proxies API calls to this location.
|
||||
|
||||
If the server is running at a different location you have to set the
|
||||
environment variable `VITE_OWNTONE_URL`, like in the example below.
|
||||
|
||||
```shell
|
||||
export VITE_OWNTONE_URL=http://owntone.local:3689
|
||||
npm run serve
|
||||
```
|
|
@ -11,7 +11,7 @@ The configuration of OwnTone - usually located in `/etc/owntone.conf` - is split
|
|||
- [`airplay`](#per-airplay-device-settings) - Settings for a specific AirPlay device.
|
||||
- [`chromecast`](#per-chromecast-device-settings) - Settings for a specific Chromecast device.
|
||||
- [`spotify`](#spotify-settings) - Settings for the Spotify playback.
|
||||
- [`rcp`](#rcp--roku-soundbridge-settings) - Settings for RCP / Roku Soundbridge devices.
|
||||
- [`rcp`](#rcproku-soundbridge-settings) - Settings for RCP / Roku Soundbridge devices.
|
||||
- [`mpd`](#mpd-settings) - Settings for MPD clients.
|
||||
- [`sqlite`](#sqlite-settings) - Settings for SQLite operation.
|
||||
- [`streaming`](#streaming-settings) - Settings for the streaming.
|
||||
|
@ -1233,7 +1233,7 @@ Flag to indicate to use the playlist name as the album name.
|
|||
album_override = <true|false>
|
||||
```
|
||||
|
||||
## RCP / Roku Soundbridge Settings
|
||||
## RCP/Roku Soundbridge Settings
|
||||
|
||||
```conf
|
||||
rcp "<device-name>" {
|
||||
|
|
|
@ -1,10 +1,30 @@
|
|||
# Command Line
|
||||
# API and Command Line
|
||||
|
||||
You can choose between:
|
||||
|
||||
- a [MPD command line client](mpd.md) (easiest) like `mpc`
|
||||
- curl with OwnTone's JSON API (see [JSON API docs](../json-api.md))
|
||||
- curl with DAAP/DACP commands (hardest)
|
||||
- [The JSON API](#json-api)
|
||||
- [A MPD command line client like mpc](#mpc)
|
||||
- [DAAP/DACP commands](#daapdacp)
|
||||
|
||||
The JSON API is the most versatile and the recommended method, but for simple
|
||||
command line operations, mpc is easier. DAAP/DACP is only for masochists.
|
||||
|
||||
|
||||
## JSON API
|
||||
|
||||
See the [JSON API docs](../json-api.md)
|
||||
|
||||
|
||||
## mpc
|
||||
|
||||
[mpc](https://www.musicpd.org/clients/mpc/) is easy to use for simple operations
|
||||
like enabling speakers, changing volume and getting status.
|
||||
|
||||
Due to differences in implementation between OwnTone and MPD, some mpc commands
|
||||
will work differently or not at all.
|
||||
|
||||
|
||||
## DAAP/DACP
|
||||
|
||||
Here is an example of how to use curl with DAAP/DACP. Say you have a playlist
|
||||
with a radio station, and you want to make a script that starts playback of that
|
|
@ -0,0 +1,52 @@
|
|||
# Desktop Remote Control
|
||||
|
||||
To control OwnTone from Linux, Windows or Mac, you can use:
|
||||
|
||||
- [The web interface](#the-web-interface)
|
||||
- [A remote for iTunes/Apple Music](#remotes-for-itunesapple-music)
|
||||
- [A MPD client](#mpd-clients)
|
||||
|
||||
The web interface is the most feature complete and works on all platforms, so
|
||||
on desktop there isn't much reason to use anything else.
|
||||
|
||||
However, instead of a remote control application, you can also connect to
|
||||
OwnTone via a Media Client e.g. iTunes or Apple Music. Media clients will get
|
||||
the media from OwnTone and do the playback themselves (remotes just control
|
||||
OwnTone playback). See [Media Clients](../media-clients.md) for more
|
||||
information.
|
||||
|
||||
|
||||
## The web interface
|
||||
|
||||
See [web interface](web.md).
|
||||
|
||||
|
||||
## Remotes for iTunes/Apple Music
|
||||
|
||||
There are only a few of these, see the below table.
|
||||
|
||||
| Client | Developer | Type | Platform | Working (vers.) |
|
||||
| ------------------------ | ----------- | ------ | --------------- | --------------- |
|
||||
| TunesRemote SE | | Remote | Java | Yes (r108) |
|
||||
| rtRemote for Windows | bizmodeller | Remote | Windows | Yes (1.2.0.67) |
|
||||
|
||||
|
||||
## MPD clients
|
||||
|
||||
There's a range of MPD clients available that also work with OwnTone e.g.
|
||||
Cantata and Plattenalbum.
|
||||
|
||||
The better ones support local playback, speaker control, artwork and automatic
|
||||
discovery of OwnTone's MPD server.
|
||||
|
||||
By default OwnTone listens on port 6600 for MPD clients. You can change
|
||||
this in the configuration file.
|
||||
|
||||
Due to some differences between OwnTone and MPD not all commands will act the
|
||||
same way they would running MPD:
|
||||
|
||||
- crossfade, mixrampdb, mixrampdelay and replaygain will have no effect
|
||||
- single, repeat: unlike MPD, OwnTone does not support setting single and repeat
|
||||
separately on/off, instead repeat off, repeat all and repeat single are
|
||||
supported. Thus setting single on will result in repeat single, repeat on
|
||||
results in repeat all.
|
|
@ -0,0 +1,141 @@
|
|||
# Mobile Remote Control
|
||||
|
||||
To control OwnTone from your mobile device, you can use:
|
||||
|
||||
- [The web interface](#the-web-interface)
|
||||
- [(iOS) The Remote app from Apple](#apple-remote-app-ios)
|
||||
- [(Android) An iTunes/Apple Music remote app](#remotes-for-itunesapple-music-android)
|
||||
- [A MPD client app](#mpd-client-apps)
|
||||
|
||||
The web interface is the most feature complete, but apps may have UX advantages.
|
||||
The table below shows how some features compare.
|
||||
|
||||
| Feature | Remote | MPD client | Web |
|
||||
| ------------------------------------- | ---------- | ---------- | ---------- |
|
||||
| Browse library | yes | yes | yes |
|
||||
| Control playback and queue | yes | yes | yes |
|
||||
| Artwork | yes | yes | yes |
|
||||
| Individual speaker selection | yes | some | yes |
|
||||
| Individual speaker volume | yes | no | yes |
|
||||
| Volume control using phone buttons | no | ? | no |
|
||||
| Listen on phone | no | some | yes |
|
||||
| Access non-library Spotify tracks | no | no | yes |
|
||||
| Edit and save m3u playlists | no | some | yes |
|
||||
|
||||
While OwnTone supports playing tracks from Spotify, there is no support for
|
||||
Spotify Connect, so you can't control from the Spotify app.
|
||||
|
||||
|
||||
## The web interface
|
||||
|
||||
See [web interface](web.md).
|
||||
|
||||
|
||||
## Apple Remote app (iOS)
|
||||
|
||||
Remote gets a list of output devices from the server; this list includes any
|
||||
and all devices on the network we know of that advertise AirPlay: AirPort
|
||||
Express, Apple TV, … It also includes the local audio output, that is, the
|
||||
sound card on the server (even if there is no sound card).
|
||||
|
||||
OwnTone remembers your selection and the individual volume for each
|
||||
output device; selected devices will be automatically re-selected, except if
|
||||
they return online during playback.
|
||||
|
||||
### Pairing
|
||||
|
||||
1. Open the [web interface](web.md) at either [http://owntone.local:3689](http://owntone.local:3689)
|
||||
or `http://SERVER-IP-ADDRESS:3689`
|
||||
2. Start Remote, go to Settings, Add Library
|
||||
3. Enter the pair code in the web interface (reload the browser page if
|
||||
it does not automatically pick up the pairing request)
|
||||
|
||||
If Remote does not connect to OwnTone after you entered the pairing code
|
||||
something went wrong. Check the log file to see the error message. Here are
|
||||
some common reasons:
|
||||
|
||||
- You did not enter the correct pairing code
|
||||
|
||||
You will see an error in the log about pairing failure with a HTTP response code
|
||||
that is *not* 0.
|
||||
|
||||
Solution: Try again.
|
||||
|
||||
- No response from Remote, possibly a network issue
|
||||
|
||||
If you see an error in the log with either:
|
||||
|
||||
- a HTTP response code that is 0
|
||||
- "Empty pairing request callback"
|
||||
|
||||
it means that OwnTone could not establish a connection to Remote. This
|
||||
might be a network issue, your router may not be allowing multicast between the
|
||||
Remote device and the host OwnTone is running on.
|
||||
|
||||
Solution 1: Sometimes it resolves the issue if you force Remote to quit, restart
|
||||
it and do the pairing process again. Another trick is to establish some other
|
||||
connection (eg SSH) from the iPod/iPhone/iPad to the host.
|
||||
|
||||
Solution 2: Check your router settings if you can whitelist multicast addresses
|
||||
under IGMP settings. For Apple Bonjour, setting a multicast address of
|
||||
224.0.0.251 and a netmask of 255.255.255.255 should work.
|
||||
|
||||
- Otherwise try using `avahi-browse` for troubleshooting:
|
||||
|
||||
- in a terminal, run:
|
||||
|
||||
```shell
|
||||
avahi-browse -r -k _touch-remote._tcp
|
||||
```
|
||||
|
||||
- start Remote, goto Settings, Add Library
|
||||
- after a couple seconds at most, you should get something similar to this:
|
||||
|
||||
```shell
|
||||
+ ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
= ath0 IPv4 59eff13ea2f98dbbef6c162f9df71b784a3ef9a3 _touch-remote._tcp local
|
||||
hostname = [Foobar.local]
|
||||
address = [192.168.1.1]
|
||||
port = [49160]
|
||||
txt = ["DvTy=iPod touch" "RemN=Remote" "txtvers=1" "RemV=10000" "Pair=FAEA410630AEC05E" "DvNm=Foobar"]
|
||||
```
|
||||
|
||||
Hit Ctrl+C to terminate `avahi-browse`.
|
||||
|
||||
- To check for network issues you can try to connect to the server address and
|
||||
port with [`nc`](https://en.wikipedia.org/wiki/Netcat) or
|
||||
[`telnet`](https://en.wikipedia.org/wiki/Telnet) commands.
|
||||
|
||||
|
||||
## Remotes for iTunes/Apple Music (Android)
|
||||
|
||||
The below Android remote apps work with OwnTone.
|
||||
|
||||
| Client | Developer | Type | Working (vers.) |
|
||||
| ------------------------ | ----------- | ------ | --------------- |
|
||||
| Retune | SquallyDoc | Remote | Yes (3.5.23) |
|
||||
| TunesRemote+ | Melloware | Remote | Yes (2.5.3) |
|
||||
| Remote for iTunes | Hyperfine | Remote | Yes |
|
||||
|
||||
For usage and troubleshooting details, see the instructions for [Apple Remote](#apple-remote-app-ios).
|
||||
|
||||
|
||||
## MPD client apps
|
||||
|
||||
There's a range of MPD clients available from app store that also work with
|
||||
OwnTone e.g. MPD Pilot, MaximumMPD, Rigelian and Stylophone.
|
||||
|
||||
The better ones support local playback, speaker control, artwork and automatic
|
||||
discovery of OwnTone's MPD server.
|
||||
|
||||
By default OwnTone listens on port 6600 for MPD clients. You can change
|
||||
this in the configuration file.
|
||||
|
||||
Due to some differences between OwnTone and MPD not all commands will act the
|
||||
same way they would running MPD:
|
||||
|
||||
- crossfade, mixrampdb, mixrampdelay and replaygain will have no effect
|
||||
- single, repeat: unlike MPD, OwnTone does not support setting single and repeat
|
||||
separately on/off, instead repeat off, repeat all and repeat single are
|
||||
supported. Thus setting single on will result in repeat single, repeat on
|
||||
results in repeat all.
|
|
@ -0,0 +1,44 @@
|
|||
# Web Interface
|
||||
|
||||
The built-in web interface is a mobile-friendly music player and browser for
|
||||
OwnTone.
|
||||
|
||||
You can reach it at [http://owntone.local:3689](http://owntone.local:3689)
|
||||
or depending on the OwnTone installation at `http://<server-address>:<port>`.
|
||||
|
||||
This interface becomes useful when you need to control playback, trigger
|
||||
manual library rescans, pair with remotes, select speakers, grant access to
|
||||
Spotify, and for many other operations.
|
||||
|
||||
Alternatively, you can use a MPD web client like for instance [ympd](http://www.ympd.org/).
|
||||
|
||||
|
||||
## Screenshots
|
||||
|
||||
Below you have a selection of screenshots that shows different part of the
|
||||
interface.
|
||||
|
||||
![Now playing](../assets/images/screenshot-now-playing.png){: class="zoom" }
|
||||
![Queue](../assets/images/screenshot-queue.png){: class="zoom" }
|
||||
![Music browse](../assets/images/screenshot-music-browse.png){: class="zoom" }
|
||||
![Music artists](../assets/images/screenshot-music-artists.png){: class="zoom" }
|
||||
![Music artist](../assets/images/screenshot-music-artist.png){: class="zoom" }
|
||||
![Music albums](../assets/images/screenshot-music-albums.png){: class="zoom" }
|
||||
![Music albums options](../assets/images/screenshot-music-albums-options.png){: class="zoom" }
|
||||
![Music album](../assets/images/screenshot-music-album.png){: class="zoom" }
|
||||
![Spotify](../assets/images/screenshot-music-spotify.png){: class="zoom" }
|
||||
![Audiobooks authors](../assets/images/screenshot-audiobooks-authors.png){: class="zoom" }
|
||||
![Audiobooks](../assets/images/screenshot-audiobooks-books.png){: class="zoom" }
|
||||
![Podcasts](../assets/images/screenshot-podcasts.png){: class="zoom" }
|
||||
![Podcast](../assets/images/screenshot-podcast.png){: class="zoom" }
|
||||
![Files](../assets/images/screenshot-files.png){: class="zoom" }
|
||||
![Search](../assets/images/screenshot-search.png){: class="zoom" }
|
||||
![Menu](../assets/images/screenshot-menu.png){: class="zoom" }
|
||||
![Outputs](../assets/images/screenshot-outputs.png){: class="zoom" }
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
The web interface is usually reachable at [http://owntone.local:3689](http://owntone.local:3689).
|
||||
But depending on the setup of OwnTone you might need to adjust the server name
|
||||
and port of the server accordingly `http://<server-name>:<port>`.
|
|
@ -54,7 +54,7 @@ OwnTone is written in C with a web interface written in Vue.js.
|
|||
![Music browse](assets/images/screenshot-music-browse.png){: class="zoom" }
|
||||
![Music album](assets/images/screenshot-music-album.png){: class="zoom" }
|
||||
|
||||
_(You can find more screenshots from OwnTone's web interface [here](clients/web-interface.md))_
|
||||
_(You can find more screenshots from OwnTone's web interface [here](control-clients/web.md))_
|
||||
{: class="text-center" }
|
||||
|
||||
---
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# Media Clients
|
||||
|
||||
Media Clients are applications that download the media from the server and do
|
||||
the playback themselves. OwnTone supports media clients via the DAAP and RSP
|
||||
protocols (so not UPNP).
|
||||
|
||||
Some Media Clients are also able to play video from OwnTone.
|
||||
|
||||
OwnTone can't serve Spotify, internet radio and streams to Media Clients. For
|
||||
that you must let OwnTone do the playback.
|
||||
|
||||
Here is a list of working and non-working DAAP clients. The list is probably
|
||||
obsolete when you read it :-)
|
||||
|
||||
| Client | Developer | Type | Platform | Working (vers.) |
|
||||
| ------------------------ | ----------- | ------ | --------------- | --------------- |
|
||||
| iTunes | Apple | DAAP | Win | Yes (12.10.1) |
|
||||
| Apple Music | Apple | DAAP | macOS | Yes |
|
||||
| Rhythmbox | Gnome | DAAP | Linux | Yes |
|
||||
| Diapente | diapente | DAAP | Android | Yes |
|
||||
| WinAmp DAAPClient | WardFamily | DAAP | WinAmp | Yes |
|
||||
| Amarok w/DAAP plugin | KDE | DAAP | Linux/Win | Yes (2.8.0) |
|
||||
| Banshee | | DAAP | Linux/Win/macOS | No (2.6.2) |
|
||||
| jtunes4 | | DAAP | Java | No |
|
||||
| Firefly Client | | (DAAP) | Java | No |
|
||||
|
||||
Technically, devices like the Roku Soundbridge are both media clients and
|
||||
audio outputs. You can find information about them [here](audio-outputs/roku.md).
|
29
mkdocs.yml
29
mkdocs.yml
|
@ -100,8 +100,8 @@ markdown_extensions:
|
|||
- pymdownx.caret
|
||||
- pymdownx.details
|
||||
- pymdownx.emoji:
|
||||
emoji_generator: !!python/name:materialx.emoji.to_svg
|
||||
emoji_index: !!python/name:materialx.emoji.twemoji
|
||||
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
||||
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
||||
- pymdownx.highlight:
|
||||
anchor_linenums: true
|
||||
- pymdownx.inlinehilite
|
||||
|
@ -132,20 +132,23 @@ nav:
|
|||
- Configuration: configuration.md
|
||||
- Building: building.md
|
||||
- Library: library.md
|
||||
- Control:
|
||||
- Mobile Device: control-clients/mobile.md
|
||||
- Desktop: control-clients/desktop.md
|
||||
- Browser: control-clients/web.md
|
||||
- API and CLI: control-clients/cli-api.md
|
||||
- Audio Outputs:
|
||||
- AirPlay: audio-outputs/airplay.md
|
||||
- Chromecast: audio-outputs/chromecast.md
|
||||
- Local Audio: audio-outputs/local-audio.md
|
||||
- Mobile Device: audio-outputs/mobile.md
|
||||
- Web: audio-outputs/web.md
|
||||
- Roku: audio-outputs/roku.md
|
||||
- Streaming: audio-outputs/streaming.md
|
||||
- Media Clients: media-clients.md
|
||||
- Artwork: artwork.md
|
||||
- Playlists and Radio: playlists.md
|
||||
- Smart Playlists: smart-playlists.md
|
||||
- Clients:
|
||||
- Supported Clients: clients/supported-clients.md
|
||||
- Remote: clients/remote.md
|
||||
- Web Interface: clients/web-interface.md
|
||||
- MPD Clients: clients/mpd.md
|
||||
- Command Line: clients/cli.md
|
||||
- Outputs:
|
||||
- Local Audio: outputs/local-audio.md
|
||||
- AirPlay: outputs/airplay.md
|
||||
- Chromecast: outputs/chromecast.md
|
||||
- Streaming: outputs/streaming.md
|
||||
- Services Integration:
|
||||
- Spotify: integrations/spotify.md
|
||||
- LastFM: integrations/lastfm.md
|
||||
|
|
Loading…
Reference in New Issue