GithubHelp home page GithubHelp logo

lcyttdg / hifiberry-os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hifiberry/hifiberry-os

0.0 0.0 0.0 28.16 MB

Linux distribution optimized for audio playback

License: MIT License

Shell 11.56% Makefile 10.00% Python 5.06% C++ 71.25% C 2.07% HTML 0.07%

hifiberry-os's Introduction

GitHub contributors License: MIT

HiFiBerryOS

HiFiBerryOS is our version of a minimal Linux distribution optimized for audio playback. The goal isn't to add as much functionality as possible, but to keep it small. Therefore, it is based on Buildroot and it's not possible to use package managers to add more software.

There is a robust update mechanism that will not overwrite the system, but switch between the current and the new version (they run on different partitions). This is documented in more detail at doc/updater.md.

User interface

The user interface is based on the Bang & Olufsen Beocreate project.

Services

At the moment, the following services are supported:

  • Spotify (using Spotifyd) - requires a paid Spotify subscription
  • Airplay (using shairport)
  • Squeezebox (using squeezelite)
  • Bluetooth A2DP sind (using BlueZ 5)
  • Roon - requires a Roon subscription
  • MPD
  • Snapcast (experimental)
  • analogue input on DAC+ ADC (using alsaloop)

Tools

Additional tools that are available:

  • sox
  • HiFiBerry dsptoolkit

Note that there is no direct support for local music archives (e.g. MP3 files on a NAS) yet. If you have a local music collection, you need to use an additional music server to stream music to HiFiBerryOS, e.g.

  • Roon
  • Logitech Media Server
  • iTunes

You might also configure the included music player daemon, but you have to do this from command line. A simple MPD UI names ympd is running on HTTP port 9000.

Integrations and additional functionalities

There are several ways to add functionalities to HiFiBerryOS or integrate it into other systems.

Controlling the system

The main backend controller application is called audiocontrol and offers an API that can be used to start/stop players, switch sources or retrieve metadata. This is often the easiest way if you want to integrate it into other systems, e.g. a automation system.

Extending audiocontrol

Audiocontrol provides a plugin system that can be used to add more complex integrations.Also have a look at the "Anatomy of a controller plugin"

Adding packages

HiFiBerryOS is based on buildroot. This means, you can't easily install additional software from command line. Even if you do, it will be gone after the next update as an update will replace the full filesystem. You need top integrate additonal software via the Buildroot build system

Adding UI components

The UI also uses a plugin concept. Plugins are called extensions. Have a look at the Beocreate documentation

Contributions

We're looking forward to your contributions. Depending on functionality and code quality, we will decide if a contribution will be included in the base system or will be provided as a user-contributed module that users need to install by themselve.

hifiberry-os's People

Contributors

hifiberry avatar qerub avatar patricker avatar mdesnouveaux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.