Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tiny music server
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
aclocal
cpp
doc
interfaces
py
.gitignore
AUTHORS
COPYING
ChangeLog
INSTALL
LICENSE
Makefile.am
NEWS
README
README.md
aclocal.m4
autogen.sh
config.h.in
config.sh
configure.ac
depcomp
install-sh
libtool
ltmain.sh
missing
mkinstalldirs
stamp-h1

README.md

Lark, a music server

Lark implements a network music daemon in C++ by glueing off the shelf libraries. In particular it uses the following libraries:

  • Thrift
  • Gstreamer
  • TagLib
  • SQLite

Lark is headless and is controlled via TCP through an API generated by Thrift. See interfaces/lark.thrift for details about the API. Automatically generated Python bindings are in py/. Additional bindings for the other languages (such as Java, Erlang, Ruby, Perl, Haskell) can easily be created by adding additonal Makefiles for each (see py/Makefile.am for an example).

Building on Fedora

A partial list of dependencies:

  • uuid-devel
  • boost-devel
  • thrift (not packaged for fedora)
  • gstreamer-devel
  • sqlite-devel
  • taglib-devel

Fedora has an issue finding Boost from configure scripts, and you need to use the --with-boost-* options to get configure to pass, and get things to build. ./configure --with-boost-system=boost_system-mt --with-boost-filesystem=boost_filesystem-mt --with-boost-thread=boost_thread-mt

Fedora doesn't package uuid.pc, I had to install uuid myself to get this. If you intall it locally make sure you have PKG_CONFIG_PREFIX set up correctly (you probably need to do this for thrift anyways).

Running: ./cpp/larkd &

Indexing Music

Now you need to get the client built, and index some music: pushd py make popd PYTHONPATH=py:$PYTHONPATH python py/lark/gen/LarkService-remote scan /path/to/your/music

This should print None to the screen, and the larkd instance will start printing out information about what files it is indexing.

Playing Music

You need to hack up py/lark/testclient.py to get music to play.

Building Doxygen Documentation

Lark is set up to use doxygen (although many parts of the code are not yet annotated for it). To build doxygen docs, run the following command from the root directory (the one that holds the master Makefile): doxygen doc/lark.cfg The generated documentation will end up in doc/html.

Something went wrong with that request. Please try again.