Skip to content

Commit

Permalink
[docs] Brush up the documentation
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
ejurgensen committed Oct 11, 2024
1 parent 75a1082 commit 7da811e
Show file tree
Hide file tree
Showing 20 changed files with 388 additions and 298 deletions.
3 changes: 1 addition & 2 deletions docs/outputs/airplay.md → docs/audio-outputs/airplay.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
File renamed without changes.
19 changes: 19 additions & 0 deletions docs/audio-outputs/mobile.md
Original file line number Diff line number Diff line change
@@ -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.
9 changes: 9 additions & 0 deletions docs/audio-outputs/roku.md
Original file line number Diff line number Diff line change
@@ -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).
21 changes: 4 additions & 17 deletions docs/outputs/streaming.md → docs/audio-outputs/streaming.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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`.
19 changes: 19 additions & 0 deletions docs/audio-outputs/web.md
Original file line number Diff line number Diff line change
@@ -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.
24 changes: 23 additions & 1 deletion docs/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).
Expand Down Expand Up @@ -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
Expand Down
22 changes: 0 additions & 22 deletions docs/clients/mpd.md

This file was deleted.

71 changes: 0 additions & 71 deletions docs/clients/remote.md

This file was deleted.

42 changes: 0 additions & 42 deletions docs/clients/supported-clients.md

This file was deleted.

Loading

0 comments on commit 7da811e

Please sign in to comment.