[docs] Name change of forked-daapd to OwnTone

This commit is contained in:
ejurgensen 2021-04-09 19:37:54 +02:00
parent 89807b61ed
commit 0871a49f28
11 changed files with 124 additions and 128 deletions

19
AUTHORS
View File

@ -1,12 +1,13 @@
forked-daapd is a fork/rewrite of mt-daapd (Firefly Media Server) OwnTone is maintained by:
written by Julien BLACHE <jb@jblache.org>.
mt-daapd (Firefly Media Server) was originally written by
Ron Pedde <ron@pedde.com> and a handful of contributors.
Contributors to forked-daapd include:
- Ace Jones <ace.jones1@yahoo.com>
- Dustin King <daking@rescomp.stanford.edu>
- Kai Elwert <elwertk@googlemail.com>
- Espen Jürgensen <espenjurgensen@gmail.com> - Espen Jürgensen <espenjurgensen@gmail.com>
- Christian Meffert <christian.meffert@googlemail.com> - Christian Meffert <christian.meffert@googlemail.com>
Up until version 27.4 it was called forked-daapd.
forked-daapd up until 0.19 was written by Julien BLACHE <jb@jblache.org>. It was
build on mt-daapd (Firefly Media Server), which was originally written by Ron
Pedde <ron@pedde.com> and a handful of contributors.
For a complete list of contributers, please see:
https://github.com/owntone/owntone-server/graphs/contributors

View File

@ -1,15 +1,14 @@
# Installation instructions for forked-daapd # Installation instructions for OwnTone
This document contains instructions for installing forked-daapd from the git This document contains instructions for installing OwnTone from the git tree.
tree.
The source for this version of forked-daapd can be found here: The source for this version of OwnTone can be found here:
[owntone/owntone-server](https://github.com/owntone/owntone-server.git) [owntone/owntone-server](https://github.com/owntone/owntone-server.git)
## Quick version for Raspbian (Raspberry Pi) ## Quick version for Raspbian (Raspberry Pi)
See the instructions here: See the instructions here:
[Improved forked-daapd (iTunes server) - [OwnTone server (iTunes server) -
Raspberry Pi Forums](http://www.raspberrypi.org/phpBB3/viewtopic.php?t=49928) Raspberry Pi Forums](http://www.raspberrypi.org/phpBB3/viewtopic.php?t=49928)
## Quick version for Debian/Ubuntu users ## Quick version for Debian/Ubuntu users
@ -27,10 +26,10 @@ sudo apt-get install \
libcurl4-openssl-dev libcurl4-openssl-dev
``` ```
Note that forked-daapd will also work with other versions and flavours of Note that OwnTone will also work with other versions and flavours of
libgcrypt and libcurl, so the above are just suggestions. libgcrypt and libcurl, so the above are just suggestions.
While forked-daapd will work with versions of libevent between 2.0.0 and 2.1.3, While OwnTone will work with versions of libevent between 2.0.0 and 2.1.3,
it is recommended to use 2.1.4+. Otherwise you may not have support for it is recommended to use 2.1.4+. Otherwise you may not have support for
simultaneous streaming to multiple DAAP clients. simultaneous streaming to multiple DAAP clients.
@ -48,7 +47,7 @@ Then run the following (adding configure arguments for optional features):
```bash ```bash
git clone https://github.com/owntone/owntone-server.git git clone https://github.com/owntone/owntone-server.git
cd forked-daapd cd owntone-server
autoreconf -i autoreconf -i
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make make
@ -74,11 +73,11 @@ sudo yum install \
libcurl-devel libcurl-devel
``` ```
Clone the forked-daapd repo: Clone the OwnTone repo:
```bash ```bash
git clone https://github.com/owntone/owntone-server.git git clone https://github.com/owntone/owntone-server.git
cd forked-daapd cd owntone-server
``` ```
Now you need to install ANTLR3, but you probably can't use the version that Now you need to install ANTLR3, but you probably can't use the version that
@ -119,7 +118,7 @@ you can still look through it and use it as an installation guide.
## Quick version for macOS (using Homebrew) ## Quick version for macOS (using Homebrew)
This workflow file used for building forked-daapd via Github actions includes This workflow file used for building OwnTone via Github actions includes
all the steps that you need to execute: all the steps that you need to execute:
[.github/workflows/macos.yml](.github/workflows/macos.yml) [.github/workflows/macos.yml](.github/workflows/macos.yml)
@ -169,11 +168,11 @@ Optional features require the following additional ports:
Chromecast | `--enable-chromecast` | gnutls protobuf-c Chromecast | `--enable-chromecast` | gnutls protobuf-c
Pulseaudio | `--with-pulseaudio` | pulseaudio Pulseaudio | `--with-pulseaudio` | pulseaudio
Clone the forked-daapd repo: Clone the OwnTone repo:
```bash ```bash
git clone https://github.com/owntone/owntone-server.git git clone https://github.com/owntone/owntone-server.git
cd forked-daapd cd owntone-server
``` ```
Install antlr3 and library using the included script: Install antlr3 and library using the included script:
@ -195,19 +194,19 @@ sudo make install
Note: if for some reason you've installed the avahi port, you need to Note: if for some reason you've installed the avahi port, you need to
add `--without-avahi` to configure above. add `--without-avahi` to configure above.
Edit `/usr/local/etc/forked-daapd.conf` and change the `uid` to a nice Edit `/usr/local/etc/owntone.conf` and change the `uid` to a nice
system daemon (eg: unknown), and run the following: system daemon (eg: unknown), and run the following:
```bash ```bash
sudo mkdir -p /usr/local/var/run sudo mkdir -p /usr/local/var/run
sudo mkdir -p /usr/local/var/log # or change logfile in conf sudo mkdir -p /usr/local/var/log # or change logfile in conf
sudo chown unknown /usr/local/var/cache/forked-daapd # or change conf sudo chown unknown /usr/local/var/cache/owntone # or change conf
``` ```
Run forked-daapd: Run OwnTone:
```bash ```bash
sudo /usr/local/sbin/forked-daapd sudo /usr/local/sbin/owntone
``` ```
Verify it's running (you need to <kbd>Ctrl</kbd>+<kbd>C</kbd> to stop Verify it's running (you need to <kbd>Ctrl</kbd>+<kbd>C</kbd> to stop
@ -221,7 +220,7 @@ dns-sd -B _daap._tcp
Required tools: Required tools:
- ANTLR v3 is required to build forked-daapd, along with its C runtime - ANTLR v3 is required to build OwnTone, along with its C runtime
(libantlr3c). Use a version between 3.1.3 and 3.5 of ANTLR v3 and the (libantlr3c). Use a version between 3.1.3 and 3.5 of ANTLR v3 and the
matching C runtime version. Get it from <http://www.antlr3.org/> matching C runtime version. Get it from <http://www.antlr3.org/>
- Java runtime: ANTLR is written in Java and as such a JRE is required to - Java runtime: ANTLR is written in Java and as such a JRE is required to
@ -276,7 +275,7 @@ Libraries:
from <https://libwebsockets.org/> from <https://libwebsockets.org/>
If using binary packages, remember that you need the development packages to If using binary packages, remember that you need the development packages to
build forked-daapd (usually named -dev or -devel). build OwnTone (usually named -dev or -devel).
sqlite3 needs to be built with support for the unlock notify API; this isn't sqlite3 needs to be built with support for the unlock notify API; this isn't
always the case in binary packages, so you may need to rebuild sqlite3 to always the case in binary packages, so you may need to rebuild sqlite3 to
@ -284,9 +283,9 @@ enable the unlock notify API (you can check for the presence of the
sqlite3_unlock_notify symbol in the sqlite3 library). Refer to the sqlite3 sqlite3_unlock_notify symbol in the sqlite3 library). Refer to the sqlite3
documentation, look for `SQLITE_ENABLE_UNLOCK_NOTIFY`. documentation, look for `SQLITE_ENABLE_UNLOCK_NOTIFY`.
libav (or ffmpeg) is a central piece of forked-daapd and most other FLOSS libav (or ffmpeg) is a central piece of OwnTone and most other FLOSS
multimedia applications. The version of libav you use will potentially have a multimedia applications. The version of libav you use will potentially have a
great influence on your experience with forked-daapd. great influence on your experience with OwnTone.
## Long version - building and installing ## Long version - building and installing
@ -378,31 +377,31 @@ You can safely ignore all of these warnings.
After installation: After installation:
- edit the configuration file, `/etc/forked-daapd.conf` - edit the configuration file, `/etc/owntone.conf`
- make sure the Avahi daemon is installed and running (Debian: - make sure the Avahi daemon is installed and running (Debian:
`apt install avahi-daemon`) `apt install avahi-daemon`)
Note that `sudo make install` will not install any system files to start the Note that `sudo make install` will not install any system files to start the
service after boot, and it will not setup a system user. service after boot, and it will not setup a system user.
forked-daapd will drop privileges to any user you'll specify in the OwnTone will drop privileges to any user you'll specify in the
configuration file if it's started as root. configuration file if it's started as root.
This user must have read permission on your library (you can create a group for This user must have read permission on your library (you can create a group for
this and make the user a member of the group, for instance) and read/write this and make the user a member of the group, for instance) and read/write
permissions on the database location (`$localstatedir/cache/forked-daapd` by permissions on the database location (`$localstatedir/cache/owntone` by
default). default).
If your system uses systemd then you might be able to use the service file If your system uses systemd then you might be able to use the service file
included, see `forked-daapd.service`. included, see `owntone.service`.
Otherwise you might need an init script to start forked-daapd at boot. A simple Otherwise you might need an init script to start OwnTone at boot. A simple
init script will do, forked-daapd daemonizes all by itself and creates a init script will do, OwnTone daemonizes all by itself and creates a
pidfile under `/var/run`. Different distributions have different standards for pidfile under `/var/run`. Different distributions have different standards for
init scripts and some do not use init scripts anymore; check the documentation init scripts and some do not use init scripts anymore; check the documentation
for your distribution. for your distribution.
For dependency-based boot systems, here are the forked-daapd dependencies: For dependency-based boot systems, here are the OwnTone dependencies:
- local filesystems - local filesystems
- network filesystems, if needed in your setup (library on NFS, ...) - network filesystems, if needed in your setup (library on NFS, ...)
@ -414,7 +413,7 @@ The LSB header below sums it up:
```bash ```bash
### BEGIN INIT INFO ### BEGIN INIT INFO
# Provides: forked-daapd # Provides: owntone
# Required-Start: $local_fs $remote_fs $network $time # Required-Start: $local_fs $remote_fs $network $time
# Required-Stop: $local_fs $remote_fs $network $time # Required-Stop: $local_fs $remote_fs $network $time
# Should-Start: avahi # Should-Start: avahi
@ -422,8 +421,8 @@ The LSB header below sums it up:
# Default-Start: 2 3 4 5 # Default-Start: 2 3 4 5
# Default-Stop: 0 1 6 # Default-Stop: 0 1 6
# Short-Description: DAAP/DACP (iTunes) server, support for AirPlay and Spotify # Short-Description: DAAP/DACP (iTunes) server, support for AirPlay and Spotify
# Description: forked-daapd is an iTunes-compatible media server for # Description: OwnTone is an iTunes-compatible media server for sharing
# sharing your media library over the local network with DAAP # your media library over the local network with DAAP/DACP
# clients like iTunes. Like iTunes, it can be controlled by # clients like iTunes. Like iTunes, it can be controlled by
# Apple Remote (and compatibles) and stream music directly to # Apple Remote (and compatibles) and stream music directly to
# AirPlay devices. It also supports streaming to RSP clients # AirPlay devices. It also supports streaming to RSP clients

View File

@ -1,6 +1,6 @@
# OwnTone Server (previously forked-daapd) # OwnTone (previously forked-daapd)
OwnTone Server is a Linux/FreeBSD DAAP (iTunes), MPD (Music Player Daemon) and OwnTone is a Linux/FreeBSD DAAP (iTunes), MPD (Music Player Daemon) and
RSP (Roku) media server. RSP (Roku) media server.
It supports AirPlay devices/speakers, Apple Remote (and compatibles), It supports AirPlay devices/speakers, Apple Remote (and compatibles),
@ -11,7 +11,7 @@ It does not support streaming video by AirPlay nor Chromecast.
DAAP stands for Digital Audio Access Protocol which is the protocol used DAAP stands for Digital Audio Access Protocol which is the protocol used
by iTunes and friends to share/stream media libraries over the network. by iTunes and friends to share/stream media libraries over the network.
OwnTone Server was previously called forked-daapd, which again was a rewrite of OwnTone was previously called forked-daapd, which again was a rewrite of
mt-daapd (Firefly Media Server). mt-daapd (Firefly Media Server).
@ -20,9 +20,9 @@ mt-daapd (Firefly Media Server).
Before you continue, make sure you know what version of OwnTone you have, Before you continue, make sure you know what version of OwnTone you have,
and what features it was built with (e.g. Spotify support). and what features it was built with (e.g. Spotify support).
How to find out? Go to the [web interface](http://forked-daapd.local:3689) and How to find out? Go to the [web interface](http://owntone.local:3689) and
check. No web interface? Then check the top of the log file (usually check. No web interface? Then check the top of the log file (usually
/var/log/forked-daapd.log). /var/log/owntone.log).
Note that you are viewing a snapshot of the instructions that may or may not Note that you are viewing a snapshot of the instructions that may or may not
match the version that you are using. Go to [references](#references) to find match the version that you are using. Go to [references](#references) to find
@ -59,10 +59,10 @@ please see the [INSTALL.md](INSTALL.md) file.
After installation (see [INSTALL.md](INSTALL.md)) do the following: After installation (see [INSTALL.md](INSTALL.md)) do the following:
1. Edit the configuration file (usually `/etc/forked-daapd.conf`) to suit your 1. Edit the configuration file (usually `/etc/owntone.conf`) to suit your
needs needs
2. Start or restart the server (usually `/etc/init.d/forked-daapd restart`) 2. Start or restart the server (usually `/etc/init.d/owntone restart`)
3. Go to the web interface [http://forked-daapd.local:3689](http://forked-daapd.local:3689), 3. Go to the web interface [http://owntone.local:3689](http://owntone.local:3689),
or, if that won't work, to [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689) or, if that won't work, to [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689)
4. Wait for the library scan to complete 4. Wait for the library scan to complete
5. If you will be using a remote, e.g. Apple Remote: Start the remote, go to 5. If you will be using a remote, e.g. Apple Remote: Start the remote, go to
@ -117,15 +117,12 @@ probably obsolete when you read it :-)
## Web interface ## Web interface
You can find the web interface at [http://forked-daapd.local:3689](http://forked-daapd.local:3689) You can find the web interface at [http://owntone.local:3689](http://owntone.local:3689)
or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689). or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689).
Use the web interface to control playback, trigger manual library rescans, pair Use the web interface to control playback, trigger manual library rescans, pair
with remotes, select speakers, authenticate with Spotify, etc. with remotes, select speakers, authenticate with Spotify, etc.
The Debian forked-daapd package does not include the web interface due to Debian
packaging rules.
You can find some screenshots and build instructions in [README_PLAYER_WEBINTERFACE.md](https://github.com/owntone/owntone-server/blob/master/README_PLAYER_WEBINTERFACE.md). You can find some screenshots and build instructions in [README_PLAYER_WEBINTERFACE.md](https://github.com/owntone/owntone-server/blob/master/README_PLAYER_WEBINTERFACE.md).
## Using Remote ## Using Remote
@ -144,7 +141,7 @@ they return online during playback.
### Pairing ### Pairing
1. Open the [web interface](http://forked-daapd.local:3689) 1. Open the [web interface](http://owntone.local:3689)
2. Start Remote, go to Settings, Add Library 2. Start Remote, go to Settings, Add Library
3. Enter the pair code in the web interface (update the page with F5 if it does 3. Enter the pair code in the web interface (update the page with F5 if it does
not automatically pick up the pairing request) not automatically pick up the pairing request)
@ -359,7 +356,7 @@ the list, OwnTone will look for /foo/bar.{jpg,png}.
You can use symlinks for the artwork files. You can use symlinks for the artwork files.
OwnTone caches artwork in a separate cache file. The default path is OwnTone caches artwork in a separate cache file. The default path is
`/var/cache/forked-daapd/cache.db` and can be configured in the configuration `/var/cache/owntone/cache.db` and can be configured in the configuration
file. The cache.db file can be deleted without losing the library and pairing file. The cache.db file can be deleted without losing the library and pairing
informations. informations.
@ -419,7 +416,7 @@ is changed. So that means OwnTone cannot update its database in real time.
Instead you can schedule a cron job to update the database. Instead you can schedule a cron job to update the database.
The first step in doing this is to add two entries to the 'directories' The first step in doing this is to add two entries to the 'directories'
configuration item in forked-daapd.conf: configuration item in owntone.conf:
``` ```
directories = { "/some/local/dir", "/your/network/mount/library" } directories = { "/some/local/dir", "/your/network/mount/library" }
@ -480,7 +477,7 @@ curl "http://localhost:3689/logout?session-id=50"
OwnTone has support for playback of the tracks in your Spotify library. OwnTone has support for playback of the tracks in your Spotify library.
1. Go to the [web interface](http://forked-daapd.local:3689) and check that your 1. Go to the [web interface](http://owntone.local:3689) and check that your
version of OwnTone was built with Spotify support. version of OwnTone was built with Spotify support.
2. You must have a Spotify premium account. If you normally log into Spotify 2. You must have a Spotify premium account. If you normally log into Spotify
with your Facebook account you must first go to Spotify's web site where you with your Facebook account you must first go to Spotify's web site where you
@ -496,7 +493,7 @@ Once the above is in order you can login to Spotify via the web interface. The
procedure for logging in to Spotify is a two-step procedure due to the current procedure for logging in to Spotify is a two-step procedure due to the current
state of libspotify, but the web interface makes both steps available to you. state of libspotify, but the web interface makes both steps available to you.
Note that the address [http://forked-daapd.local:3689](http://forked-daapd.local:3689) Note that the address [http://owntone.local:3689](http://owntone.local:3689)
must be working on your local network to complete the Spotify OAuth web login. must be working on your local network to complete the Spotify OAuth web login.
The address is announced automatically via mDNS, but if that for some reason The address is announced automatically via mDNS, but if that for some reason
doesn't work then configure it via router or .hosts file. You can remove it doesn't work then configure it via router or .hosts file. You can remove it
@ -513,7 +510,7 @@ configure the location of your Spotify user data in the configuration file.
To permanently logout and remove Spotify tracks + credentials make a request to To permanently logout and remove Spotify tracks + credentials make a request to
[http://[your_server_address_here]:3689/api/spotify-logout](http://[your_server_address_here]:3689/api/spotify-logout) [http://[your_server_address_here]:3689/api/spotify-logout](http://[your_server_address_here]:3689/api/spotify-logout)
and also delete the contents of `/var/cache/forked-daapd/libspotify`. and also delete the contents of `/var/cache/owntone/libspotify`.
Limitations: Limitations:
You will not be able to do any playlist management through OwnTone - use You will not be able to do any playlist management through OwnTone - use

View File

@ -1,6 +1,6 @@
# forked-daapd and ALSA # 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 `forked daapd` configuration. 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.
## Quick introduction to ALSA devices ## Quick introduction to ALSA devices
ALSA devices can be addressed in a number ways but traditionally we have referred to them using the hardware prefix, card number and optionally device number with something like `hw:0` or `hw:0,1`. In ALSA configuration terms `card X, device Y` is known as `hw:X,Y`. ALSA devices can be addressed in a number ways but traditionally we have referred to them using the hardware prefix, card number and optionally device number with something like `hw:0` or `hw:0,1`. In ALSA configuration terms `card X, device Y` is known as `hw:X,Y`.
@ -11,7 +11,7 @@ Alternative ALSA names can be used to refer to physical ALSA devices and can be
* more descriptive rather than being a card number * 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 * 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 `forked-daapd` 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 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:
``` ```
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: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:1 CARD=E30 (E30): 'E30 '
@ -22,7 +22,7 @@ The `CARD=` string is the alternate ALSA name for the device and can be used in
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. 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.
## Configuring the server ## Configuring the server
`forked-daapd` can support a single ALSA device or multiple ALSA devices. 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 soundcard
audio { audio {
@ -34,7 +34,7 @@ audio {
mixer_device = "hw:1" # defaults to same as 'card' value mixer_device = "hw:1" # defaults to same as 'card' value
} }
``` ```
Multiple devices can be made available to `forked-daapd` using seperate `alsa { .. }` sections. Multiple devices can be made available to OwnTone using seperate `alsa { .. }` sections.
``` ```
audio { audio {
type = "alsa" type = "alsa"
@ -63,13 +63,13 @@ $ aplay -Ddefault /tmp/sine441.wav
If you can hear music played then you are good to use `default` for the server configuration. If you can not hear anything from the `aplay` firstly verify (using `alsamixer`) that the sound card is not muted. If the card is not muted AND there is no sound you can try the options below to determine the card and mixer for configuring the server. If you can hear music played then you are good to use `default` for the server configuration. If you can not hear anything from the `aplay` firstly verify (using `alsamixer`) that the sound card is not muted. If the card is not muted AND there is no sound you can try the options below to determine the card and mixer for configuring the server.
## Automatically Determine ALL relevant the sound card information ## Automatically Determine ALL relevant the sound card information
As shown above, `forked-daapd` can help, consider the information that logged: As shown above, OwnTone can help, consider the information that logged:
``` ```
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: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:1 CARD=E30 (E30): 'E30 '
laudio: Available ALSA playback mixer(s) on hw:2 CARD=Seri (Plantronics Blackwire 3210 Seri): 'Sidetone' 'Headset' 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 `forked-daap` 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 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 ALSA device alias where possible # using ALSA device alias where possible
@ -92,7 +92,7 @@ alsa "plughw:E30" {
mixer_device = "hw:E30" mixer_device = "hw:E30"
} }
``` ```
NB: it is troublesome to use `hw` or `plughw` ALSA addressing when running `forked-daapd` on a machine with `pulseaudio` and if you wish to use refer to ALSA devices directly that you stop `pulseaudio`. NB: it is troublesome to use `hw` or `plughw` ALSA addressing when running OwnTone on a machine with `pulseaudio` and if you wish to use refer to ALSA devices directly that you stop `pulseaudio`.
## Manually Determining the sound cards you have / ALSA can see ## 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. 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.
@ -271,13 +271,13 @@ $ aplay -v -Dhw:1 /tmp/sine441.wav
aplay: main:788: audio open error: Device or resource busy aplay: main:788: audio open error: Device or resource busy
``` ```
In this instance this device cannot open multiple streams - `forked-daapd` 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. 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 samplerate (48000 being the default) for this software mixing module meaning any files that have a mismatched samplerate will be resampled.
## ALSA dmix configuration/setup ## ALSA dmix configuration/setup
A `dmix` device can be defined in `/etc/asound.conf` or `~/.asoundrc` for the same user running `forked-daapd`. 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 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`.
``` ```
# use 'dac' as the name of the device: "aplay -Ddac ...." # use 'dac' as the name of the device: "aplay -Ddac ...."
@ -328,7 +328,7 @@ At this point we are able to rerun the concurrent `aplay` commands (adding `-Dda
If there is only one card on the machine you may use `pcm.!default` instead of `pcm.!dac` - there is less configuration to be done later since many ALSA applications will use the device called `default` by default. Furthermore on RPI you can explicitly disable the onboard sound card to leave us with only the IQaudIODAC board enabled (won't affect HDMI sound output) by commenting out `#dtparam=audio=on` in `/boot/config.txt` and rebooting. If there is only one card on the machine you may use `pcm.!default` instead of `pcm.!dac` - there is less configuration to be done later since many ALSA applications will use the device called `default` by default. Furthermore on RPI you can explicitly disable the onboard sound card to leave us with only the IQaudIODAC board enabled (won't affect HDMI sound output) by commenting out `#dtparam=audio=on` in `/boot/config.txt` and rebooting.
### forked-daapd config with dmix ### Config with dmix
We will use the newly defined card named `dac` which uses the underlying `hw:1` device as per `/etc/asound.conf` or `~/.asoundrc` configuration. Note that the `mixer_device` is now required and must refer to the real device (see the `slave.pcm` value) and not the named device (ie `dac`) that we created and are using for the `card` configuration value. We will use the newly defined card named `dac` which uses the underlying `hw:1` device as per `/etc/asound.conf` or `~/.asoundrc` configuration. Note that the `mixer_device` is now required and must refer to the real device (see the `slave.pcm` value) and not the named device (ie `dac`) that we created and are using for the `card` configuration value.
@ -370,7 +370,7 @@ pcm.equal {
hint.description "equalised device" hint.description "equalised device"
} }
``` ```
and in `forked-daapd.conf` and in `owntone.conf`
``` ```
alsa "equal" { alsa "equal" {
nickname = "Equalised Output" nickname = "Equalised Output"

View File

@ -1,4 +1,4 @@
# forked-daapd API Endpoint Reference # OwnTone API Endpoint Reference
Available API endpoints: Available API endpoints:
@ -395,7 +395,7 @@ curl -X GET "http://localhost:3689/api/outputs"
### Set enabled outputs ### Set enabled outputs
Set the enabled outputs by passing an array of output ids. forked-daapd enables all outputs Set the enabled outputs by passing an array of output ids. The server enables all outputs
with the given ids and disables the remaining outputs. with the given ids and disables the remaining outputs.
**Endpoint** **Endpoint**
@ -2192,9 +2192,9 @@ GET /api/config
| Key | Type | Value | | Key | Type | Value |
| --------------- | -------- | ----------------------------------------- | | --------------- | -------- | ----------------------------------------- |
| version | string | forked-daapd server version | | version | string | Server version |
| websocket_port | integer | Port number for the [websocket](#push-notifications) (or `0` if websocket is disabled) | | websocket_port | integer | Port number for the [websocket](#push-notifications) (or `0` if websocket is disabled) |
| buildoptions | array | Array of strings indicating which features are supported by the forked-daapd server | | buildoptions | array | Array of strings indicating which features are supported by the server |
**Example** **Example**
@ -2402,10 +2402,10 @@ curl -X DELETE "http://localhost:3689/api/settings/webinterface/show_composer_no
## Push notifications ## Push notifications
If forked-daapd was built with websocket support, forked-daapd exposes a websocket at `localhost:3688` to inform clients of changes (e. g. player state or library updates). If the server was built with websocket support it exposes a websocket at `localhost:3688` to inform clients of changes (e. g. player state or library updates).
The port depends on the forked-daapd configuration and can be read using the [`/api/config`](#config) endpoint. The port depends on the server configuration and can be read using the [`/api/config`](#config) endpoint.
After connecting to the websocket, the client should send a message containing the event types it is interested in. After that forked-daapd After connecting to the websocket, the client should send a message containing the event types it is interested in. After that the server
will send a message each time one of the events occurred. will send a message each time one of the events occurred.
**Message** **Message**
@ -2610,8 +2610,8 @@ curl --include \
### Artwork urls ### Artwork urls
Artwork urls in `queue item`, `artist`, `album` and `track` objects can be either relative urls or absolute urls to the artwork image. Artwork urls in `queue item`, `artist`, `album` and `track` objects can be either relative urls or absolute urls to the artwork image.
Absolute artwork urls are pointing to external artwork images (e. g. for radio streams that provide artwork metadata), while relative artwork urls are served from forked-daapd. Absolute artwork urls are pointing to external artwork images (e. g. for radio streams that provide artwork metadata), while relative artwork urls are served from the server.
It is possible to add the query parameters `maxwidth` and/or `maxheight` to relative artwork urls, in order to get a smaller image (forked-daapd only scales down never up). It is possible to add the query parameters `maxwidth` and/or `maxheight` to relative artwork urls, in order to get a smaller image (the server only scales down never up).
Note that even if a relative artwork url attribute is present, it is not guaranteed to exist. Note that even if a relative artwork url attribute is present, it is not guaranteed to exist.

View File

@ -1,6 +1,6 @@
# forked-daapd player web interface # OwnTone player web interface
Mobile friendly player web interface for [forked-daapd](http://owntone.github.io/forked-daapd/) build with [Vue.js](https://vuejs.org), [Bulma](http://bulma.io). Mobile friendly player web interface for [OwnTone](http://owntone.github.io/owntone-server/) build with [Vue.js](https://vuejs.org), [Bulma](http://bulma.io).
## Screenshots ## Screenshots
@ -9,7 +9,7 @@ Mobile friendly player web interface for [forked-daapd](http://owntone.github.io
## Usage ## Usage
You can find forked-daapd's web interface at [http://forked-daapd.local:3689](http://forked-daapd.local:3689) You can find OwnTone's web interface at [http://owntone.local:3689](http://owntone.local:3689)
or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689). or alternatively at [http://[your_server_address_here]:3689](http://[your_server_address_here]:3689).
@ -37,4 +37,4 @@ npm run build
npm run build --report npm run build --report
``` ```
After running `npm run dev` the web interface is reachable at [localhost:8080](http://localhost:8080). By default it expects **forked-daapd** to be running at [localhost:3689](http://localhost:3689) and proxies all JSON API calls to this location. If **forked-daapd** is running at a different location you need to modify the `proxyTable` configuration in `config/index.js` After running `npm run dev` the web interface is reachable at [localhost:8080](http://localhost:8080). By default it expects **owntone** to be running at [localhost:3689](http://localhost:3689) and proxies all JSON API calls to this location. If the server is running at a different location you need to modify the `proxyTable` configuration in `config/index.js`

View File

@ -1,4 +1,4 @@
# forked-daapd and Pulseaudio # OwnTone and Pulseaudio
You have the choice of runnning Pulseaudio either in system mode or user mode. You have the choice of runnning Pulseaudio either in system mode or user mode.
For headless servers, i.e. systems without desktop users, system mode is For headless servers, i.e. systems without desktop users, system mode is
@ -24,7 +24,7 @@ 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 forked-daapd, then you 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 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 that the Pulseaudio daemon will be started during boot and be available to all
users. users.
@ -72,16 +72,16 @@ Phew, almost done with Pulseaudio! Now you should:
3. check that the Bluetooth module is loaded with `pactl list modules short` 3. check that the Bluetooth module is loaded with `pactl list modules short`
### Step 2: Setting up forked-daapd ### Step 2: Setting up the server
Add the user forked-daapd is running as (typically "daapd") to the Add the user the server is running as (typically "owntone") to the
"pulse-access" group: "pulse-access" group:
``` ```
adduser daapd pulse-access adduser daapd pulse-access
``` ```
Now (re)start forked-daapd. Now (re)start the server.
### Step 3: Adding a Bluetooth device ### Step 3: Adding a Bluetooth device
@ -99,8 +99,8 @@ trust [MAC address]
connect [MAC address] connect [MAC address]
``` ```
Now the speaker should appear in forked-daapd. You can also verify that Now the speaker should appear. You can also verify that Pulseaudio has detected
Pulseaudio has detected the speaker with `pactl list sinks short`. the speaker with `pactl list sinks short`.
@ -137,7 +137,7 @@ pulseaudio -D
### Step 4: Adjust configuration file ### Step 4: Adjust configuration file
In the `audio` section of `/etc/forked-daapd.conf`, set `server` to `localhost`: In the `audio` section of `/etc/owntone.conf`, set `server` to `localhost`:
``` ```
server = "localhost" server = "localhost"

View File

@ -1,9 +1,9 @@
# forked-daapd and Radio Stream tweaking # OwnTone and Radio Stream tweaking
Radio streams have many different ways in how metadata is sent. Many should 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 just work as expected, but a few may require some tweaking. If you are not
seeing expected title, track, artist, artwork in forked-daapd clients or web UI, seeing expected title, track, artist, artwork in clients or web UI, the
the following may help. following may help.
First, understand what and how the particular stream is sending information. 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 interegrate most of the stream
@ -23,11 +23,11 @@ look at the Metadata section, below is an example.
``` ```
In the example above, all tags are populated with correct information, no In the example above, all tags are populated with correct information, no
modifications to forked-daapd configuration should be needed. Note that modifications to the server configuration should be needed. Note that
StreamUrl points to the artwork image file. StreamUrl points to the artwork image file.
Below is another example that will require some tweaks to forked-daapd, Notice 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. `icy-name` is blank and `StreamUrl` doesn't point to an image.
``` ```
@ -60,7 +60,7 @@ Length is -1 since it's a stream, `<Artist Name>` was left blank since
### 2) StreamUrl is a JSON file with metadata ### 2) StreamUrl is a JSON file with metadata
If `StreamUrl` does not point directly to an artwork file then the link may be If `StreamUrl` does not point directly to an artwork file then the link may be
to a json file that contains an artwork link. If so, you can make forked-daapd to a json file that contains an artwork link. If so, you can make the server
download the file automatically and search for an artwork link, and also track download the file automatically and search for an artwork link, and also track
duration. duration.
@ -82,7 +82,7 @@ Let's assume you get something like this:
} }
``` ```
In this case, you would need to tell forked-daapd to look for "eventDuration" 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: and "eventImageUrl" (or just "duration" and "url"). You can do that like this:
``` ```
@ -95,7 +95,7 @@ If you want multiple search phrases then comma separate, e.g. "duration,length".
### 3) Set metadata with a custom script ### 3) Set metadata with a custom script
If your radio station publishes metadata via another method than the above, e.g. If your radio station publishes metadata via another method than the above, e.g.
just on their web site, then you will have to write a script that pulls the just on their web site, then you will have to write a script that pulls the
metadata and then pushes it to forked-daapd. To update metadata for the metadata and then pushes it to the server. To update metadata for the
currently playing radio station use something like this JSON API request: currently playing radio station use something like this JSON API request:
```shell ```shell

View File

@ -1,7 +1,7 @@
# forked-daapd smart playlists # OwnTone smart playlists
To add a smart playlist to forked-daapd, create a new text file with a filename ending with .smartpl; To add a smart playlist to the server, create a new text file with a filename ending with .smartpl;
the filename doesn't matter, only the .smartpl ending does. The file must be placed somewhere in your the filename doesn't matter, only the .smartpl ending does. The file must be placed somewhere in your
library folder. library folder.
@ -128,7 +128,7 @@ This would match all songs added as files to the library that are not placed und
} }
``` ```
This would match any podcast and audiobook file that was never played with forked-daapd. This would match any podcast and audiobook file that was never played.
``` ```
"Recently added music" { "Recently added music" {
@ -190,7 +190,7 @@ This matches all songs added in the last 2 weeks.
This matches all audiobooks played since the start of the last Monday 00:00AM. This matches all audiobooks played since the start of the last Monday 00:00AM.
All dates, except for `YYYY-DD-HH`, are relative to the day of when `forked-daapd` evaluates the smartpl query; `time_added after today` run on a Monday would match against items added since Monday 00:00hrs and evaluating the same smartpl on Friday would only match against added on Friday 00:00hrs. All dates, except for `YYYY-DD-HH`, are relative to the day of when the server evaluates the smartpl query; `time_added after today` run on a Monday would match against items added since Monday 00:00hrs and evaluating the same smartpl on Friday would only match against added on Friday 00:00hrs.
Note that `time_added after 4 weeks ago` and `time_added after last month` are subtly different; the former is exactly 4 weeks ago (from today) whereas the latter is the first day of the previous month. Note that `time_added after 4 weeks ago` and `time_added after last month` are subtly different; the former is exactly 4 weeks ago (from today) whereas the latter is the first day of the previous month.

View File

@ -1,21 +1,20 @@
Upgrading forked-daapd Upgrading
---------------------- ---------
From time to time, newer versions of forked-daapd may need to perform a From time to time, newer versions of OwnTone may need to perform a database
database upgrade. This upgrade is handled by forked-daapd upon startup if upgrade. This upgrade is handled by the server upon startup if required.
required.
Before upgrading forked-daapd, it is always a good idea to backup your Before upgrading the server, it is always a good idea to backup your database,
database, just in case. just in case.
The database upgrade procedure is built into forked-daapd; there is no The database upgrade procedure is built into the server; there is no external
external upgrade script to run. Depending on the changes done to the database upgrade script to run. Depending on the changes done to the database structure,
structure, the upgrade process will take more or less time and may need some the upgrade process will take more or less time and may need some space in /tmp
space in /tmp for temporary data. The upgrade can also require some more space for temporary data. The upgrade can also require some more space in the
in the directory containing the database file. directory containing the database file.
Before running the new forked-daapd version, make sure you have done your Before running the new server version, make sure you have done your backups and
backups and checked your disk space. checked your disk space.
Some upgrades can also trigger a full rescan to rebuild parts of the database, Some upgrades can also trigger a full rescan to rebuild parts of the database,
so startup will be a bit slower and more resource-intensive than usual. so startup will be a bit slower and more resource-intensive than usual.

View File

@ -1,15 +1,15 @@
.\" -*- nroff -*- .\" -*- nroff -*-
.TH FORKED-DAAPD "8" "2018-01-14" "forked-daapd" "DAAP, MPD, Chromecast & RSP media server" .TH OWNTONE "8" "2018-01-14" "owntone" "DAAP, MPD, Chromecast & RSP media server"
.SH NAME .SH NAME
forked\-daapd \- iTunes\-compatible DAAP server with MPD, Chromecast and RSP support OwnTone \- iTunes\-compatible DAAP server with MPD, Chromecast and RSP support
.SH SYNOPSIS .SH SYNOPSIS
.B forked-daapd .B OwnTone
[\fIoptions\fR] [\fIoptions\fR]
.SH DESCRIPTION .SH DESCRIPTION
\fBforked\-daapd\fP is a Linux/FreeBSD DAAP (iTunes) media server with support \fBOwnTone\fP is a Linux/FreeBSD DAAP (iTunes) media server with support
for AirPlay devices, Apple Remote (and compatibles), MPD, Spotify, Chromecast, for AirPlay devices, Apple Remote (and compatibles), MPD, Spotify, Chromecast,
mp3 streaming and internet radio. It allows you to share your music collection over mp3 streaming and internet radio. It allows you to share your music collection
the local network. over the local network.
.SH OPTIONS .SH OPTIONS
.TP .TP
\fB\-d, \-\-debug=\fR\fIlevel\fP \fB\-d, \-\-debug=\fR\fIlevel\fP
@ -46,15 +46,15 @@ Don't announce RSP service via mDNS.
Don't announce DAAP service via mDNS. Don't announce DAAP service via mDNS.
.TP .TP
\fB\-\-mdns-no-cname\fR \fB\-\-mdns-no-cname\fR
Don't register forked-daapd.local as CNAME via mDNS. Don't register owntone.local as CNAME via mDNS.
.TP .TP
\fB\-\-mdns-no-web\fR \fB\-\-mdns-no-web\fR
Don't announce web interface via mDNS. Don't announce web interface via mDNS.
.SH FILES .SH FILES
.nf .nf
\fI/etc/forked\-daapd.conf\fR \fI/etc/owntone.conf\fR
\fI/var/cache/forked\-daapd\fR \fI/var/cache/owntone\fR
.fi .fi
.SH SEE ALSO .SH SEE ALSO
See \fIhttp://owntone.github.io/forked-daapd/\fR for more in-depth information See \fIhttp://owntone.github.io/owntone-server/\fR for more in-depth information
about using \fBforked-daapd\fP. about using \fBOwnTone\fP.