[docs] Fix spelling mistakes and extraneous spaces

This commit is contained in:
Alain Nussbaumer 2024-03-05 11:23:25 +01:00
parent 1e6999587a
commit 815e7b45d2
12 changed files with 66 additions and 81 deletions

View File

@ -1,6 +1,6 @@
# Running Multiple Instances
To run multiple instances of owntone on a server, you should copy
To run multiple instances of OwnTone on a server, you should copy
`/etc/owntone.conf` to `/etc/owntone-zone.conf` (for each `zone`) and
modify the following to be unique across all instances:
@ -17,9 +17,8 @@ modify the following to be unique across all instances:
Then run `owntone -c /etc/owntone-zone.conf` to run owntone with the new
zone configuration.
Owntone has a `systemd` template which lets you run this automatically
OwnTone has a `systemd` template which lets you run this automatically
on systems that use systemd. You can start or enable the service for
a `zone` by `sudo systemctl start owntone@zone` and check that it is
running with `sudo systemctl status owntone@zone`. Use `sudo
systemctl enable ownton@zone` to get the service to start on reboot.
systemctl enable owntone@zone` to get the service to start on reboot.

View File

@ -1,6 +1,6 @@
# OwnTone and ALSA
ALSA is one of the main output configuration options for local audio; when using ALSA you will typically let the system select the soundcard on your machine as the `default` device/sound card - a mixer associated with the ALSA device is used for volume control. However if your machine has multiple sound cards and your system chooses the wrong playback device, you will need to manually select the card and mixer to complete the OwnTone configuration.
ALSA is one of the main output configuration options for local audio; when using ALSA you will typically let the system select the sound card on your machine as the `default` device/sound card - a mixer associated with the ALSA device is used for volume control. However if your machine has multiple sound cards and your system chooses the wrong playback device, you will need to manually select the card and mixer to complete the OwnTone configuration.
## Quick introduction to ALSA devices
@ -13,13 +13,14 @@ Alternative ALSA names can be used to refer to physical ALSA devices and can be
* more descriptive rather than being a card number
* consistent for USB numeration - USB ALSA devices may not have the same card number across reboots/reconnects
The ALSA device information required for configuration the server can be deterined using `aplay`, as described in the rest of this document, but OwnTone can also assist; when configured to log at `INFO` level the following information is provided during startup:
The ALSA device information required for configuration the server can be determined using `aplay`, as described in the rest of this document, but OwnTone can also assist; when configured to log at `INFO` level the following information is provided during startup:
```
laudio: Available ALSA playback mixer(s) on hw:0 CARD=Intel (HDA Intel): 'Master' 'Headphone' 'Speaker' 'PCM' 'Mic' 'Beep'
laudio: Available ALSA playback mixer(s) on hw:1 CARD=E30 (E30): 'E30 '
laudio: Available ALSA playback mixer(s) on hw:2 CARD=Seri (Plantronics Blackwire 3210 Seri): 'Sidetone' 'Headset'
```
The `CARD=` string is the alternate ALSA name for the device and can be used in place of the traditional `hw:x` name.
On this machine the server reports that it can see the onboard HDA Intel sound card and two additional sound cards: a Topping E30 DAC and a Plantronics Headset which are both USB devices. We can address the first ALSA device as `hw:0` or `hw:CARD=Intel` or `hw:Intel` or `plughw:Intel`, the second ALSA device as `hw:1` or `hw:E30` and so forth. The latter 2 devices being on USB will mean that `hw:1` may not always refer to `hw:E30` and thus in such a case using the alternate name is useful.
@ -29,7 +30,7 @@ On this machine the server reports that it can see the onboard HDA Intel sound c
OwnTone can support a single ALSA device or multiple ALSA devices.
```
# example audio section for server for a single soundcard
# example audio section for server for a single sound card
audio {
nickname = "Computer"
type = "alsa"
@ -40,7 +41,7 @@ audio {
}
```
Multiple devices can be made available to OwnTone using seperate `alsa { .. }` sections.
Multiple devices can be made available to OwnTone using separate `alsa { .. }` sections.
```
audio {
@ -81,7 +82,7 @@ laudio: Available ALSA playback mixer(s) on hw:1 CARD=E30 (E30): 'E30 '
laudio: Available ALSA playback mixer(s) on hw:2 CARD=Seri (Plantronics Blackwire 3210 Seri): 'Sidetone' 'Headset'
```
Using the information above, we can see 3 soundcards that we could use with OwnTone with the first soundcard having a number of seperate mixer devices (volume control) for headphone and the interal speakers - we'll configure the server to use both these and also the E30 device. The server configuration for theese multiple outputs would be:
Using the information above, we can see 3 sound cards that we could use with OwnTone with the first sound card having a number of separate mixer devices (volume control) for headphone and the internal speakers - we'll configure the server to use both these and also the E30 device. The server configuration for these multiple outputs would be:
```
# using ALSA device alias where possible
@ -111,9 +112,9 @@ NB: it is troublesome to use `hw` or `plughw` ALSA addressing when running OwnTo
## Manually Determining the sound cards you have / ALSA can see
The example below is how I determined the correct sound card and mixer values for a Raspberry Pi that has an additional DAC card (hat) mounted. Of course using the log output from the server would have given the same results.
Use `aplay -l` to list all the sound cards and their order as known to the system - you can have multiple `card X, device Y` entries; some cards can also have multiple playback devices such as the RPI's onboard soundcard which feeds both headphone (card 0, device 0) and HDMI (card 0, device 1).
Use `aplay -l` to list all the sound cards and their order as known to the system - you can have multiple `card X, device Y` entries; some cards can also have multiple playback devices such as the RPI's onboard sound card which feeds both headphone (card 0, device 0) and HDMI (card 0, device 1).
```
```shell
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
@ -135,11 +136,11 @@ card 1: IQaudIODAC [IQaudIODAC], device 0: IQaudIO DAC HiFi pcm512x-hifi-0 []
On this machine we see the second sound card installed, an IQaudIODAC dac hat, and identified as `card 1 device 0`. This is the playback device we want to be used by the server.
`hw:1,0` is the IQaudIODAC that we want to use - we verify audiable playback through that sound card using `aplay -Dhw:1 /tmp/sine441.wav`. If the card has only one device, we can simply refer to the sound card using `hw:X` so in this case where the IQaudIODAC only has one device, we can refer to this card as `hw:1` or `hw:1,0`.
`hw:1,0` is the IQaudIODAC that we want to use - we verify audible playback through that sound card using `aplay -Dhw:1 /tmp/sine441.wav`. If the card has only one device, we can simply refer to the sound card using `hw:X` so in this case where the IQaudIODAC only has one device, we can refer to this card as `hw:1` or `hw:1,0`.
Use `aplay -L` to get more information about the PCM devices defined on the system.
```
```shell
$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
@ -209,7 +210,7 @@ audio {
Once you have the card number (determined from `aplay -l`) we can inspect/confirm the name of the mixer that can be used for playback (it may NOT be `PCM` as expected by the server). In this example, the card `1` is of interest and thus we use `-c 1` with the following command:
```
```shell
$ amixer -c 1
Simple mixer control 'DSP Program',0
Capabilities: enum
@ -253,11 +254,11 @@ This is the name of the underlying physical device used for the mixer - it is ty
## Handling Devices that cannot concurrently play multiple audio streams
Some devices such as various RPI DAC boards (IQaudio DAC, Allo Boss DAC...) cannot have multiple streams openned at the same time/cannot play multiple sound files at the same time. This results in `Device or resource busy` errors. You can confirm if your sound card has this problem by using the example below once have determined the names/cards information as above.
Some devices such as various RPI DAC boards (IQaudio DAC, Allo Boss DAC...) cannot have multiple streams opened at the same time/cannot play multiple sound files at the same time. This results in `Device or resource busy` errors. You can confirm if your sound card has this problem by using the example below once have determined the names/cards information as above.
Using our `hw:1` device we try:
```
```shell
# generate some audio
$ sox -n -c 2 -r 44100 -b 16 -C 128 /tmp/sine441.wav synth 30 sin 500-100 fade h 0.2 30 0.2
@ -295,11 +296,11 @@ aplay: main:788: audio open error: Device or resource busy
In this instance this device cannot open multiple streams - OwnTone can handle this situation transparently with some audio being truncated from the end of the current file as the server prepares to play the following track. If this handling is causing you problems you may wish to use [ALSA's `dmix` functionally](https://www.alsa-project.org/main/index.php/Asoundrc#Software_mixing) which provides a software mixing module. We will need to define a `dmix` component and configure the server to use that as it's sound card.
The downside to the `dmix` approach will be the need to fix a samplerate (48000 being the default) for this software mixing module meaning any files that have a mismatched samplerate will be resampled.
The downside to the `dmix` approach will be the need to fix a sample rate (48000 being the default) for this software mixing module meaning any files that have a mismatched sample rate will be resampled.
## ALSA dmix configuration/setup
A `dmix` device can be defined in `/etc/asound.conf` or `~/.asoundrc` for the same user running OwnTone. We will need to know the underlying physical soundcard to be used: in our examples above, `hw:1,0` / `card 1, device 0` representing our IQaudIODAC as per output of `aplay -l`. We also take the `buffer_size` and `period_size` from the output of playing a sound file via `aplay -v`.
A `dmix` device can be defined in `/etc/asound.conf` or `~/.asoundrc` for the same user running OwnTone. We will need to know the underlying physical sound card to be used: in our examples above, `hw:1,0` / `card 1, device 0` representing our IQaudIODAC as per output of `aplay -l`. We also take the `buffer_size` and `period_size` from the output of playing a sound file via `aplay -v`.
```
# use 'dac' as the name of the device: "aplay -Ddac ...."
@ -335,7 +336,7 @@ ctl.dmixer {
Running `aplay -L` we will see our newly defined devices `dac` and `dmixer`
```
```shell
$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)

View File

@ -1,19 +1,18 @@
# OwnTone and Pulseaudio
# PulseAudio
You have the choice of running Pulseaudio either in system mode or user mode.
You have the choice of running PulseAudio either in system mode or user mode.
For headless servers, i.e. systems without desktop users, system mode is
recommended.
If there is a desktop user logged in most of the time, a setup with network
access via localhost only for daemons is a more appropriate solution, since the
normal user administration (with, e.g., `pulseaudio -k`) works as advertised.
Also, the user specific configuration for pulseaudio is preserved across
Also, the user specific configuration for PulseAudio is preserved across
sessions as expected.
- [System mode](#system-mode-with-bluetooth-support)
- [User mode](#user-mode-with-network-access)
## System Mode with Bluetooth support
Credit: [Rob Pope](http://robpope.co.uk/blog/post/setting-up-forked-daapd-with-bluetooth)
@ -21,22 +20,21 @@ Credit: [Rob Pope](http://robpope.co.uk/blog/post/setting-up-forked-daapd-with-b
This guide was written based on headless Debian Jessie platforms. Most of the
instructions will require that you are root.
### Step 1: Setting up Pulseaudio
### Step 1: Setting up PulseAudio
If you see a "Connection refused" error when starting the server, then you
will probably need to setup Pulseaudio to run in system mode [1]. This means
that the Pulseaudio daemon will be started during boot and be available to all
will probably need to setup PulseAudio to run in system mode [1]. This means
that the PulseAudio daemon will be started during boot and be available to all
users.
How to start Pulseaudio depends on your distribution, but in many cases you will
need to add a pulseaudio.service file to /etc/systemd/system with the following
content:
How to start PulseAudio depends on your distribution, but in many cases you will
need to add a `pulseaudio.service` file to `/etc/systemd/system` with the
following content:
```
# systemd service file for Pulseaudio running in system mode
# systemd service file for PulseAudio running in system mode
[Unit]
Description=Pulseaudio sound server
Description=PulseAudio sound server
Before=sound.target
[Service]
@ -46,7 +44,7 @@ ExecStart=/usr/bin/pulseaudio --system --disallow-exit
WantedBy=multi-user.target
```
If you want Bluetooth support, you must also configure Pulseaudio to load the
If you want Bluetooth support, you must also configure PulseAudio to load the
Bluetooth module. First install it (Debian:
`apt install pulseaudio-module-bluetooth`) and then add the following to
/etc/pulse/system.pa:
@ -58,32 +56,30 @@ load-module module-bluetooth-discover
.endif
```
Now you need to make sure that Pulseaudio can communicate with the Bluetooth
Now you need to make sure that PulseAudio can communicate with the Bluetooth
daemon through D-Bus. On Raspbian this is already enabled, and you can skip this
step. Otherwise do one of the following:
1. Add the pulse user to the bluetooth group: `adduser pulse bluetooth`
2. Edit /etc/dbus-1/system.d/bluetooth.conf and change the policy for `<policy context="default"\>` to "allow"
Phew, almost done with Pulseaudio! Now you should:
Phew, almost done with PulseAudio! Now you should:
1. enable system mode on boot with `systemctl enable pulseaudio`
2. reboot (or at least restart dbus and pulseaudio)
3. check that the Bluetooth module is loaded with `pactl list modules short`
### Step 2: Setting up the server
Add the user the server is running as (typically "owntone") to the
"pulse-access" group:
```
```shell
adduser owntone pulse-access
```
Now (re)start the server.
### Step 3: Adding a Bluetooth device
To connect with the device, run `bluetoothctl` and then:
@ -99,42 +95,36 @@ trust [MAC address]
connect [MAC address]
```
Now the speaker should appear. You can also verify that Pulseaudio has detected
Now the speaker should appear. You can also verify that PulseAudio has detected
the speaker with `pactl list sinks short`.
## User Mode with Network Access
Credit: wolfmanx and [this blog](http://billauer.co.il/blog/2014/01/pa-multiple-users/)
### Step 1: Copy system pulseaudio configuration to the users home directory
```
```shell
mkdir -p ~/.pulse
cp /etc/pulse/default.pa ~/.pulse/
```
### Step 2: Enable TCP access from localhost only
Edit the file `~/.pulse/default.pa` , adding the following line at the end:
```
```shell
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1
```
### Step 3: Restart the pulseaudio deamon
```
```shell
pulseaudio -k
# OR
pulseaudio -D
```
### Step 4: Adjust configuration file
In the `audio` section of `/etc/owntone.conf`, set `server` to `localhost`:
@ -145,5 +135,5 @@ server = "localhost"
---
[1] Note that Pulseaudio will warn against system mode. However, in this use
case it is actually the solution recommended by the [Pulseaudio folks themselves](https://lists.freedesktop.org/archives/pulseaudio-discuss/2016-August/026823.html).
[1] Note that PulseAudio will warn against system mode. However, in this use
case it is actually the solution recommended by the [PulseAudio folks themselves](https://lists.freedesktop.org/archives/pulseaudio-discuss/2016-August/026823.html).

View File

@ -1,4 +1,4 @@
# OwnTone and Radio Stream tweaking
# Radio Stream Tweaking
Radio streams have many different ways in how metadata is sent. Many should
just work as expected, but a few may require some tweaking. If you are not
@ -6,7 +6,7 @@ seeing expected title, track, artist, artwork in clients or web UI, the
following may help.
First, understand what and how the particular stream is sending information.
ffprobe is a command that can be used to interegrate most of the stream
`ffprobe` is a command that can be used to integrate most of the stream
information. `ffprobe <http://stream.url>` should give you some useful output,
look at the Metadata section, below is an example.
@ -26,7 +26,6 @@ In the example above, all tags are populated with correct information, no
modifications to the server configuration should be needed. Note that
StreamUrl points to the artwork image file.
Below is another example that will require some tweaks to the server, Notice
`icy-name` is blank and `StreamUrl` doesn't point to an image.
@ -67,7 +66,7 @@ duration.
Try to download the file, e.g. with `curl "https://radio.stream.domain/api9/eventdata/49790578"`.
Let's assume you get something like this:
```
```json
{
"eventId": 49793707,
"eventStart": "2020-05-08 16:23:03",
@ -85,7 +84,7 @@ Let's assume you get something like this:
In this case, you would need to tell the server to look for "eventDuration"
and "eventImageUrl" (or just "duration" and "url"). You can do that like this:
```
```shell
curl -X PUT "http://localhost:3689/api/settings/misc/streamurl_keywords_length" --data "{\"name\":\"streamurl_keywords_length\",\"value\":\"duration\"}"
curl -X PUT "http://localhost:3689/api/settings/misc/streamurl_keywords_artwork_url" --data "{\"name\":\"streamurl_keywords_artwork_url\",\"value\":\"url\"}
```

View File

@ -4,10 +4,10 @@ It is possible to access a shared library over the internet from a DAAP client
like iTunes. You must have remote access to the host machine.
First log in to the host and forward port 3689 to your local machine. You now
need to broadcast the daap service to iTunes on your local machine. On macOS the
need to broadcast the DAAP service to iTunes on your local machine. On macOS the
command is:
```
```shell
dns-sd -P iTunesServer _daap._tcp local 3689 localhost.local 127.0.0.1 "ffid=12345"
```
@ -21,7 +21,7 @@ for details.
## Accessing from Internet for authenticated users
If you intend to access Owntone directly from Internet, it's a good idea to
If you intend to access OwnTone directly from Internet, it is recommended to
protect it against unauthenticated users.
[This guide](https://blog.cyril.by/en/software/example-sso-with-authelia-and-owntone)

View File

@ -29,7 +29,7 @@ argument when you run ./configure:
Feature | Configure argument | Packages
---------------------|--------------------------|-------------------------------------
Chromecast | `--enable-chromecast` | libgnutls*-dev
Pulseaudio | `--with-pulseaudio` | libpulse-dev
PulseAudio | `--with-pulseaudio` | libpulse-dev
These features can be disabled saving you package dependencies:
@ -158,7 +158,7 @@ Optional features require the following additional ports:
Feature | Configure argument | Ports
--------------------|--------------------------|-------------------
Chromecast | `--enable-chromecast` | gnutls
Pulseaudio | `--with-pulseaudio` | pulseaudio
PulseAudio | `--with-pulseaudio` | pulseaudio
Clone the OwnTone repo:

View File

@ -18,7 +18,7 @@ station:
observe that you must use a session-id < 100, and that you must login and
logout):
```
```shell
curl "http://localhost:3689/login?pairing-guid=0x1&request-session-id=50"
curl "http://localhost:3689/ctrl-int/1/playspec?database-spec='dmap.persistentid:0x1'&container-spec='dmap.persistentid:0x[PLAYLIST-ID]'&container-item-spec='dmap.containeritemid:0x[FILE ID]'&session-id=50"
curl "http://localhost:3689/logout?session-id=50"

View File

@ -5,16 +5,14 @@ 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 documentation](http://www.musicpd.org/doc/protocol/))
are supported.
Currently only a subset of the commands offered by MPD (see [MPD protocol documentation](http://www.musicpd.org/doc/protocol/)) 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.
- 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:

View File

@ -3,7 +3,7 @@
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 soundcard).
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
@ -39,7 +39,7 @@ some common reasons:
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 proces again. Another trick is to establish some other
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

View File

@ -40,4 +40,3 @@ probably obsolete when you read it :-)
| 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) |

View File

@ -638,7 +638,7 @@ POST /api/queue/items/add
| Parameter | Value |
| --------------- | ----------------------------------------------------------- |
| uris | Comma seperated list of resource identifiers (`track`, `playlist`, `artist` or `album` object `uri`) |
| uris | Comma separated list of resource identifiers (`track`, `playlist`, `artist` or `album` object `uri`) |
| expression | A smart playlist query expression identifying the tracks that will be added to the queue. |
| position | *(Optional)* If a position is given, new items are inserted starting from this position into the queue. |
| playback | *(Optional)* If the `playback` parameter is set to `start`, playback will be started after adding the new items. |

View File

@ -4,22 +4,21 @@
In the config file, you can select ALSA for local audio. This is the default.
When using ALSA, the server will try to syncronize playback with AirPlay. You
can adjust the syncronization in the config file.
When using ALSA, the server will try to synchronize playback with AirPlay. You
can adjust the synchronization in the config file.
For most setups the default values in the config file should work. If they
don't, there is help [here](../advanced/outputs-alsa.md)
## Local audio, Bluetooth and more through PulseAudio
## Local audio, Bluetooth and more through Pulseaudio
In the config file, you can select PulseAudio for local audio. In addition to
local audio, PulseAudio also supports an array of other targets, e.g. Bluetooth
or DLNA. However, PulseAudio does require some setup, so here is a separate page
with some help on that: [PulseAudio](../advanced/outputs-pulse.md)
In the config file, you can select Pulseaudio for local audio. In addition to
local audio, Pulseaudio also supports an array of other targets, e.g. Bluetooth
or DLNA. However, Pulseaudio does require some setup, so here is a separate page
with some help on that: [Pulse audio](../advanced/outputs-pulse.md)
Note that if you select Pulseaudio the "card" setting in the config file has
no effect. Instead all soundcards detected by Pulseaudio will be listed as
Note that if you select PulseAudio the "card" setting in the config file has
no effect. Instead all sound cards detected by PulseAudio will be listed as
speakers by OwnTone.
You can adjust the latency of Pulseaudio playback in the config file.
You can adjust the latency of PulseAudio playback in the config file.