All Projects → janbar → Noson App

janbar / Noson App

Licence: gpl-3.0
The essential to control music from your SONOS devices on Linux platforms

Projects that are alternatives of or similar to Noson App

Pulseeffects
Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
Stars: ✭ 3,040 (+1288.13%)
Mutual labels:  pulseaudio
Qtquickcontrols2
Qt Quick Controls 2
Stars: ✭ 203 (-7.31%)
Mutual labels:  qml
Ronor
Sonos smart speaker controller API and command-line tools
Stars: ✭ 212 (-3.2%)
Mutual labels:  sonos
Qml Coding Guide
A collection of good practices when writing QML code
Stars: ✭ 196 (-10.5%)
Mutual labels:  qml
I3 Volume
Volume control and volume notifications
Stars: ✭ 196 (-10.5%)
Mutual labels:  pulseaudio
Brig
User Interface Toolkits for Node.js
Stars: ✭ 208 (-5.02%)
Mutual labels:  qml
Browser
🌍 Cross-platform Material design web browser
Stars: ✭ 184 (-15.98%)
Mutual labels:  qml
Plasma Applet Eventcalendar
Stars: ✭ 217 (-0.91%)
Mutual labels:  qml
Projecteur
Linux Desktop Application for the Logitech Spotlight device (and similar devices) - Digital Laser Pointer
Stars: ✭ 199 (-9.13%)
Mutual labels:  qml
Stackoverflow
my answers in Stack Overflow
Stars: ✭ 211 (-3.65%)
Mutual labels:  qml
Qml Rust
QML (Qt Quick) bindings for Rust language
Stars: ✭ 196 (-10.5%)
Mutual labels:  qml
Qml Creative Controls
QML controls for creative applications and creative coding
Stars: ✭ 199 (-9.13%)
Mutual labels:  qml
Qtfirebase
An effort to bring Google's Firebase C++ API to Qt + QML
Stars: ✭ 208 (-5.02%)
Mutual labels:  qml
Asyncfuture
Use QFuture like a Promise object
Stars: ✭ 193 (-11.87%)
Mutual labels:  qml
Qml Material
📖 Material Design implemented in QtQuick
Stars: ✭ 2,443 (+1015.53%)
Mutual labels:  qml
Multi Room Audio Centralized Audio For Home
🎵 This Github Repository provides details on setting up a centralized audio system for your home using nothing but Raspberry Pi's and Old Speakers.
Stars: ✭ 189 (-13.7%)
Mutual labels:  pulseaudio
Qtmvvm
A mvvm oriented library for Qt, to create Projects for Widgets and Quick in parallel
Stars: ✭ 205 (-6.39%)
Mutual labels:  qml
Quickandroid
QML Theme and Component Library for Android
Stars: ✭ 217 (-0.91%)
Mutual labels:  qml
Sortfilterproxymodel
A nicely exposed QSortFilterProxyModel for QML
Stars: ✭ 214 (-2.28%)
Mutual labels:  qml
Musikcube
a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Stars: ✭ 2,663 (+1115.98%)
Mutual labels:  pulseaudio

Gitter Build Status

Noson

A fast and smart SONOS controller for Linux platforms.

Go to project page for further details. Translations are managed by transifex at noson-translations.

Build instructions

The build can be achieved on any platform supporting Qt version 5.9. See debian/control file for more details about dependencies.

Linux/BSD

Running Noson in "freedesktop" allows the following extra features.

  • Streaming the PulseAudio output on your Sonos devices
  • MPRIS2 player interface

Install the dependencies

For Ubuntu(16) / Debian(10) (qtbase5 >= 5.9)
$ apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev \
qtdeclarative5-dev-tools qtquickcontrols2-5-dev libqt5svg5-dev libqt5svg5 \
qml-module-qt-labs-settings qml-module-qtgraphicaleffects \
qml-module-qtqml-models2 qml-module-qtquick2 qml-module-qtquick-controls2 \
qml-module-qtquick-layouts qml-module-qtquick-particles2 \
qml-module-qtquick-templates2 qml-module-qtquick-window2 \
zlib1g-dev libssl-dev libflac-dev libflac++-dev libpulse-dev \
libdbus-1-dev libqt5dbus5
  • Build tools: build-essential git cmake g++ >= 4.8.5 | clang >= 3.4
For Centos(7) / Fedora(26) (qt5-qtbase >= 5.9)
$ yum install qt5-qtbase-devel qt5-qttools-devel qt5-qtdeclarative-devel \
qt5-qtquickcontrols2-devel qt5-qtgraphicaleffects qt5-qtsvg-devel \
qt5-qtsvg zlib-devel openssl-devel flac-devel pulseaudio-libs-devel \
dbus-devel
  • Build tools: git cmake >= 3.8.2 gcc-c++ >= 4.8.5 | clang >= 3.4

  • As needed you have to install cmake >= 3.8.2

    $ wget https://github.com/Kitware/CMake/releases/download/v3.14.7/cmake-3.14.7-Linux-x86_64.tar.gz
    $ tar xvfz cmake-3.14.7-Linux-x86_64.tar.gz
    $ export PATH=$(pwd)/cmake-3.14.7-Linux-x86_64/bin:$PATH
    
For FreeBSD 12.0
$ pkg install cmake git bash dbus flac pulseaudio \
qt5-buildtools qt5-core qt5-dbus qt5-declarative qt5-graphicaleffects \
qt5-gui qt5-network qt5-qmake qt5-quickcontrols2 qt5-svg qt5-widgets \
qt5-xml qt5-xmlpatterns

Build and install the application

$ git clone https://github.com/janbar/noson-app.git
$ cd noson-app && mkdir build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j5
$ sudo make install
  • To uninstall the application type sudo make uninstall

Others supported platforms (without extra features*)

  • Sailfish OS (>= 3.0)
  • MacOSX (XCode >= 9.0)
  • Android (SDK 21.0, Android >= 16 Lollipop)
  • Windows (MSVC 2017)

(*) PulseAudio is available only with freedesktop (Linux/BSD). So on those platforms you can only stream your local music library.

Enabling debug output

Launch the Noson application from command line as follows.

  • noson-app --debug 2>&1 | tee noson.log

Also, that will write debug output into the file noson.log. Please be careful to not paste debug log on public area before cleaning it from any credentials. Debugging registration of music services will log entered credentials.

Streaming my local music files

Noson will scan music files only from the standard directory containing audio media. Depending on the platform and your language, it could be "~/Music" on freedesktop. When you drop files in this location, you should be able to stream them to your Sonos device with Noson. The local library will be exposed in the page "This Device". Supported files are flac, mp3, mp4 and ogg. An additionnal music location can be configured in the general settings.

SSDP discovery fails

You must first disable the running firewall on the system where the app is running, or add extra rules for your firewall profile. The app must listen to Sonos device events to function properly.

To add the according to Sonos, required rules to ufw you can use the following instructions :.

  • Create a file named noson in /etc/ufw/applications.d` with the following:
[noson]
title=noson Sonos controller app
description=controls Sonos devices on the same network
ports=80,443,445,1400:1410,3400,3401,3405,3445,3500,4070,4444/tcp|136,137,138,139,1900,1901,2869,10243,10280,10281,10282,10283,10284,5353,6969/udp|35382
  • Update the rules for ufw with:
sudo ufw app update noson
sudo ufw allow noson

In some circumstances your network couldn't allow broadcast/multicast traffic. To workaround the limitation you can configure the application by specifying a Sonos device endpoint.

Launch the Noson application from command line as follows.

  • noson-app --deviceurl=http://<ipaddress>:1400 for the GUI (the setting will be persistent).

  • noson-app --cli --deviceurl=http://<ipaddress>:1400 for the CLI tool.

Some SONOS devices could listen on port 3400 instead 1400.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].