sonos-web - Web interface for Sonos audio systems

  •        9

sonos-web is a web interface for the Sonos Audio System, created with the goal of having a nice looking interface to manage the queue, add streaming services like Spotify (even for non-premium users!) and allow other developers to customized the UX as they want by making the project expandable through plugins. Note: It may be required to cd into each plugins/ folder and do an npm install to make sure everything works. YouTube requires ffmpeg to be installed on your system.

https://github.com/denysvitali/sonos-web#readme

Dependencies:

browserify : ^13.1.1
colors : ^1.1.2
express : ^4.15.2
express-http-proxy : ^1.1.0
ip : ^1.1.5
memory-cache : ^0.2.0
pug : ^2.0.0-beta9
recursive-install : ^1.3.0
socket.io : ^2.1.1
sonos : git://github.com/denysvitali/node-sonos
sprintf-js : ^1.0.3
underscore : ^1.9.0

Tags
Implementation
License
Platform

   




Related Projects

echo-sonos - Amazon Echo integration with Sonos

  •    Javascript

All of the pieces for an Amazon Echo (Alexa) <-> Sonos integration. echo-sonos supports Apple Music, Spotify, Deezer, Deezer Elite, Sonos playlists, Sonos favorites, SiriusXM, the local Sonos music library, and configurable node-sonos-http-api presets.

node-sonos - 🔈 Sonos Media Player Interface/Client

  •    Javascript

node-sonos gives you the power to control all your Sonos devices from your own apps in JavaScript. Automatically discover your devices on the network and control the playback and queue with instant events announcing change. Additional examples can be found in the /examples directory within the repository.

SoCo - SoCo (Sonos Controller) is a simple Python class that allows you to programmatically control Sonos speakers

  •    Python

Important Note: this project originally started out under rahims/SoCo. As activity and interest have grown over the past year, the developers decided it was best to spin it out into its own project under its own Github Organization. Going forward, please fork and star the newly official repo, SoCo/SoCo, as rahims/SoCo will be used by Rahim to manage his fork of the official repo. SoCo (Sonos Controller) is a simple Python class that allows you to programmatically control Sonos speakers. It was created at Music Hack Day Sydney, so there is still much room for improvement, however the basic control functionality is there and works well. I've tested it with both a Play:3 and a Play:5.

sonos - Control Sonos speakers with Ruby

  •    Ruby

Control Sonos speakers with Ruby. Huge thanks to Rahim Sonawalla for making SoCo. This gem would not be possible without his work.

Play - A better Sonos controller for iOS

  •    Objective-C

This is an attempt at making a better Sonos controller for iOS. It's pretty hacked together right now -- I'll try to articulate needs later so others can contribute. The following (sparse) instructions below should get it working with your system. Easiest way to do this is to checkout: https://github.com/rahims/SoCo and use the command line example. Run: python sonoshell.py all list_ips to find all the IPs. Then run python sonoshell.py YOUR_SPEAKERS_IP_ADDRESS info to determine the uid for each speaker.


airsonos - :musical_note: AirPlay to Sonos

  •    Javascript

AirSonos is a server that adds Apple AirPlay (iOS, OS X) support to all Sonos devices on a network. AirSonos requires node.js >= v0.10.33 installed to run.

pimusicbox - An image (SD-card) to turn the Raspberry Pi into an easy to use MusicBox with Spotify playback and AirTunes streaming

  •    Shell

Pi MusicBox is the Swiss Army Knife of streaming music on the Raspberry Pi. With Pi MusicBox, you can create a cheap (Sonos-like) standalone streaming music player for Spotify and other online music services. Copyright 2013-2017 Wouter van Wijk and contributors.

Sonority

  •    WPF

The beginnings of a Sonos client, written in C#, C++/CLI and WPF. Most of the middle tier is designed for WPF binding. The database (ESE/Jet Blue in-process db) caching layer schema is almost there. It will be merged in to provide faster library browsing and to allow Windows ...

Subsonic

  •    Java

Subsonic is a web-based media streamer, providing ubiquitous access to your music and video collection. More than 20 apps are available for Android, iPhone, Windows Phone, BlackBerry, Roku, Chumby, Sonos etc. Supports virtually all media formats, converting files on the fly. Also includes a Podcast receiver and jukebox feature allowing you to control what's playing on your computer from your mobile phone.

party-mode - An experimental music visualizer using d3.js and the web audio api.

  •    Javascript

Using the web audio api, I can get an array of numbers which corresponds to the waveform of the sound an html5 audio element is producing. There's a good tutorial on how to do this. Then, using requestAnimationFrame (with a little frame limiting for performance reasons) I'm updating that array as the music changes. I then normalize the data a bit (or transform it slightly depending on the visualization) and redraw the screen based on the updated array. I'm using d3.js to draw and redraw SVG based on this normalized data. Each visualization uses the data a bit differently -- it was mostly trial and error to get some stuff I liked looking at. Since I'm using D3 -- which is just drawing SVG -- I was able to style everything in CSS (no images are used at all, including icons). There are a handful of differently colored themes for each visualization, and I do some rudimentary CSS namespacing by updating a class applied to the html element. eg. <html class='theme_1'>. This lets me override or substitute CSS rules pretty trivially. I can add some additional variation to each theme by messing with pseudo selectors. For example, I can use :nth-of-type to hide every nth SVG rectangle or making every odd child have a different stroke-dasharray, etc.

Tone.js - A Web Audio framework for making interactive music in the browser.

  •    Javascript

Tone.js is a Web Audio framework for creating interactive music in the browser. The architecture of Tone.js aims to be familiar to both musicians and audio programmers looking to create web-based audio applications. On the high-level, Tone offers common DAW (digital audio workstation) features like a global transport for scheduling events and prebuilt synths and effects. For signal-processing programmers (coming from languages like Max/MSP), Tone provides a wealth of high performance, low latency building blocks and DSP modules to build your own synthesizers, effects, and complex control signals. Full Installation Instruction.

ion.sound - JavaScript plugin for playing sounds and music in browsers

  •    Javascript

JavaScript plugin for playing sounds on user actions and page events. Today websites are full of events (new mail, new chat-message, content update etc.). Often it is not enough to indicate this events only visually to get user attention. You need sounds! This library, made for playing small sounds, will help you with this task. Also, new version of Ion.Sound is capable to handle browser games audio. It has full control of loading, playing and removing audio files. And audio-sprites support of course.

waud - Web Audio Library

  •    Haxe

Web Audio Library with HTML5 audio fallback. Waud is a simple and powerful web audio library that allows you to go beyond HTML5's <audio> tag and easily take advantage of Web Audio API. It abstracts Web Audio API making it consistent and reliable across multiple platforms and browsers. It also falls back to HTML5 Audio on non-modern browsers where Web Audio API is not supported.

howler.js - Javascript audio library for the modern web

  •    Javascript

howler.js is an audio library for the modern web. It defaults to Web Audio API and falls back to HTML5 Audio. This makes working with audio in JavaScript easy and reliable across all platforms.

web-audio-api - Node.js implementation of Web audio API

  •    Javascript

This library implements the Web Audio API specification (also know as WAA) on Node.js. By default, web-audio-api doesn't play back the sound it generates. In fact, an AudioContext has no default output, and you need to give it a writable node stream to which it can write raw PCM audio. After creating an AudioContext, set its output stream like this : audioContext.outStream = writableStream.

PlayJoom - Web based Audio Streaming Server

  •    PHP

PlayJoom is a web based audio streaming server. It is written in php and save the data about the audio files like mp3 music in a MySQL database. You can stream your music files, manage covers, and additional informations about the music band, the tracks or the albums. You manage your own playlists with your favorite songs and listen it everywhere in your local network on each device. You can play the audio files direct in the most web browsers on a PC and mobile devices.

clubber - Application of music theory in audio reactive visualizations

  •    Javascript

This small js library listens to audio sources and extracts the underlying rhythmic information. The linear frequency energies are converted into midi notes which music theory suggests to be a better segregation for music audio. A set of meaningful measurements are produced in a form suitable for direct use in webgl shaders, or any other context. This simple flow provides a powerful framework for the rapid development of awesome audio reactive visualisations.

cloudtunes - Web-based music player for the cloud :cloud: :notes:

  •    CoffeeScript

CloudTunes provides a unified interface for music stored in the cloud (YouTube, Dropbox, etc.) and integrates with Last.fm, Facebook, and Musicbrainz for metadata, discovery, and social experience. It is similar to services like Spotify, except instead of local tracks and the fixed Spotify catalog, CloudTunes uses your files stored in Dropbox and music videos on YouTube.CloudTunes is a side project of @jakubroztocil who is a bit of a music nerd and who likes to build stuff. In 2012 he decided to create an iTunes-like webapp to make music stored all over the cloud easily discoverable and accessible: hence CloudTunes.

tuna - An audio effects library for the Web Audio API.

  •    Javascript

An audio effects library for the Web Audio API. This is a very incomplete list of places where Tuna.js is used.

dns-rebind-toolkit - A front-end JavaScript toolkit for creating DNS rebinding attacks.

  •    Javascript

DISCLAIMER: This software is for educational purposes only. This software should not be used for illegal activity. The author is not responsible for its use. Don't be a dick. DNS Rebind Toolkit is a frontend JavaScript framework for developing DNS Rebinding exploits against vulnerable hosts and services on a local area network (LAN). It can be used to target devices like Google Home, Roku, Sonos WiFi speakers, WiFi routers, "smart" thermostats, and other IoT devices. With this toolkit, a remote attacker can bypass a router's firewall and directly interact with devices on the victim's home network, exfiltrating private information and in some cases, even controlling the vulnerable devices themselves.