Giter Site home page Giter Site logo

attacca-dmx's Introduction

Attacca DMX

Attacca DMX is a project that allows for DMX control over remote audio players and smart home devices. The system runs quite well on a modern Raspberry Pi.

Features

  • Playback control (play, pause, stop)
  • Shuttle control (seek)
  • Playlist selection
  • Track selection
  • Volume control
  • Playback options (shuffle, repeat, single, consume, crossfade)
  • Automated volume fades
  • Multiple instances of the music player, all sharing the same audio library
  • Apple AirPlay audio receiver
  • State control of smart home devices (just on/off so far)
  • Multiple instances of the smart home controller

Use Cases

My original intent was to design a "poor man's" DMX audio server that would play theatrical sound effects on cue. It needed to handle playing one or two ambient sounds on a loop at the same time as the shorter cued sounds. As I met this original goal, I wondered if I could add theatrical control to the house lights as well. A Z-Wave wall switch and the Almond+ router made this goal possible.

Hardware Requirements

For control of audio, all that's required is a Raspberry Pi and an external sound card (even a cheap one is better than the built-in analogue audio on the Pi). For control of smart home devices, a Securifi Almond+ router (or similar model) is also required. This router offers a local WebSocket API to control its associated Z-Wave and Zigbee devices.

Warnings

Because I maintain this project for my own use as a theater technician, I'm only releasing it here as a courtesy to the community. I will make updates, but they will skew towards my use cases. Please feel free to use the code here and adapt it to your specific situation. If you'd like to make changes adapting it to a wider audience, I'll entertain them.

If you decide to use this project in a production environment, be warned: there are glitches. I make absolutely no guarantees that it won't crash and burn in a fiery mess. Currently, the project is documented poorly. As I make updates, I plan to improve this some. I am relatively new to programming and have learned most of it by trial and error (including GitHub).

Setup

If you've read all the warnings and still want to try setting it up, see the setup procedure. You'll need some familiarity with the Linux terminal, but most of you here on GitHub checked that box a long time ago.

Acknowledgements

This project would not be possible without these truly excellent platforms:

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.