wiki:rpld/Understanding

Version 4 (modified by ph3-der-loewe, 12 years ago) (diff)

small text improvements.

Understanding RoarAudio PlayList Daemon

This page is here to explain you the basic concepts of the RoarAudio PlayList Daemon, later just called rpld. It is not a tutorial helping you to set up rpld for a specific use case. It should help you to understand rpld better and support other tutorials and new users.

Some basics

While rpld looks like a music player it is not but keep reading! rpld is a network transparent playlist manager based on the RoarAudio Sound System supporting multiple interfaces. What this means here in details:

PlayList Manager

It stores and manages playlists for you. It maintains a list of playlists internally. You can import and export playlist files into those, read them, move and copy entries around and alter them in a lot more ways. rpld supports a lot different kinds of playlist formats both for reading and writing. Supported formats include VCLT, m3u, xspf and a lot more.

Based on RoarAudio Sound System

In addition to working with playlists itself rpld can pass the playlist entries to the RoarAudio Sound System for playback. To do this it uses special playlists called queues and histories. When you want to play a song you put it into a queue and hit play. After the song ended it is moved to the history so you can look up what you have just played or jump back and play it again.

rpld can run multiple queues and histories and play multiple songs at the same time. This is useful for example if you want to listen to different music in your room and the kitchen.

Here it is important to understand that rpld itself does not touch the data so the list of supported audio formats depend only on the used RoarAudio Sound Server.

Network transparency

Network transparency means that all that can be done locally (on the same computer) or remotely (over the network) or even over the Internet. It is also possible to run a (web) radio station with rpld and remote control it over the Internet or include a status monitor ('Now playling') on your homepage with a rpld running at your home.

Multiple interfaces

rpld itself does not have any interface for user interaction (this is why it is called a daemon). It provides it's functionality as services so other applications can use it. There are different kind of applications interacting with rpld. This includes webinterfaces such as Romie, GUIs such as App::RPLD::GUI as well as commandlion tools like rpld-ctl.

How a complete setup looks like

Software rpld can interact with

This is a list of software abled to communicate with rpld. This list is not complete. It should just give you an idea of what is possible.

Operating systems

rpld uses libroar for most OS accesses so it runs everywhere libroar is available. This includes:

  • All POSIX systems
  • GNU/Linux
  • NetBSD, OpenBSD, FreeBSD, ...
  • M$ Windows

User Interfaces

Common User interfaces include:

  • rpld-tools (commandlion)
  • Romie (Webinterface)
  • APP::RPLD::GUI (GUI)

RoarAudio Servers

Every RoarAudio Server should work. However some features and codecs will not work with all servers. Commonly the following servers are used with rpld:

Other Software

There are a lot other software that can interact with rpld. This can be direct (e.g. a Perl script using Audio::RPLD) or indirect (e.g. using rpld-ctl). This is a list of tools that are often seen in rpld setups:

  • cron (time based control, e.g. alarms in the morning or jingles every hour)
  • Icecast (Internet multimedia streaming server)
  • Tantalos Servers/Clients? (Automatic content location)
  • OpenSLP (find devices in a local network)
  • Hotplug/Automounter? scripts (e.g. to automatically add content once a medium was inserted)
  • IR daemons (IR remotes)

Playlist Pointers