Git Product home page Git Product logo

oscwebmixer2's Introduction

OSCWebMixer2

A rewrite of OSCWebMixer - A server that allows multiple web clients to control their own mix as well as external devices for a DiGiCo sound desk. It currently works with SD Series consoles.

What makes v2 better?

  • This new version uses the same iPad connection that is built into the SD consoles so it means you can use webmixer devices as well as the DiGiCo iPad apps at the same time. In-fact you can use multiple iPad apps simultaneously!
  • All configuration is done in a browser instead of config files
  • Auxilaries and Channels can have icons assigned to them
  • Channels can be sorted
  • Custom functionality can be added by writing some simple Plugins. There are a couple of examples of how this can be used in the plugins directory
  • Webmixer can send and receive OSC messages to custom devices. This means it can communicate with TouchOSC, Reaper etc.
  • Startup is much quicker because webmixer requests only the information it requires
  • You can group your channels to make them easier to find
  • The current snapshot name is displayed in webmixer

Donate

This project has taken considerable time to create. If you find it useful and would like further development please make a donation.

paypal

Screenshots

Requirements

  • A SD Series DiGiCo Mixing desk.
  • A computer to run the server. Windows, macOS or Linux.
  • Node must be installed. On macOS you can install it with Homebrew (brew install node)
  • Server, Desk and other devices must all be on the same network

Basic Setup Instructions

  1. Download repository and navigate to the directory in a shell.
  2. Run "npm install" to install all the required modules.
  3. Run "node ." to start the server.
  4. Visit the admin URL in your browser to configure the server.
  5. Open the server IP address on another device and start mixing.

FAQs

My External Devices won't connect Ensure the server is running and the devices are connected on the same network. Verify desk settings in the admin area are correct.
What devices work? Anything with a recent web browser can connect, that means it should work on iOS, Android, Windows, macOS and Linux.
How many devices can I connect at once? No limit has been set and we haved tested 20+ without any issues.
Can I connect multiple iPads at once with the DiGiCo app? Yes, go for it.
How do I enable a plugin? Add a script into the plugin directory and make sure the filename doesn't start with an underscore. Restart webmixer and your plugin will be loaded.

oscwebmixer2's People

Contributors

castles avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

real-tonda

oscwebmixer2's Issues

Notes after a test run

Hi Marc,

first of all - great job done!!! The app is a miracle! We tested with six singers over two full-day rehearsals and they loved it! Had also two iPads connected and a laptop with Ableton Live, sending commands to the SD9. Nice thing is that we have OTH OSC commands punched in the ABL session and they worked along the iPad command-set, as we have both loaded in the console. So the console seems to accept multiple command-sets at a time.

The admin section is pretty intuitive, although a few minor touches would be nice:

  • a hint to add a DiGiCo iPad external device to the console, not OTH OSC ... that took me like 30mins to realize :-D
  • be a little more specific about receive and send ports, eg. "console's send"; these binary things always give me a headache
  • add channel numbers to the channel section

We've also had a few issues, my notes from the rehearsal:

Error connecting new web client
console log:

New Connection
/home/admin/oscwebmixer2/OSCWebMixer2/index.js:133
order: config.channels[i].order,
^

TypeError: Cannot read properties of undefined (reading 'order')
at buildConfig (/home/admin/oscwebmixer2/OSCWebMixer2/index.js:133:32)
at WebSocketServer. (/home/admin/oscwebmixer2/OSCWebMixer2/index.js:192:15)
at WebSocketServer.emit (node:events:517:28)
at WebSocketServer.completeUpgrade (/home/admin/oscwebmixer2/OSCWebMixer2/node_modules/ws/lib/websocket-server.js:431:5)
at WebSocketServer.handleUpgrade (/home/admin/oscwebmixer2/OSCWebMixer2/node_modules/ws/lib/websocket-server.js:339:10)
at Server.upgrade (/home/admin/oscwebmixer2/OSCWebMixer2/node_modules/ws/lib/websocket-server.js:114:16)
at Server.emit (node:events:517:28)
at onParserExecuteCommon (node:_http_server:931:14)
at onParserExecute (node:_http_server:825:3)

Node.js v18.19.0

Note:

  1. Config of the digico session has changed during runtime - channels added.
  2. Order of channels in the admin section was changed before adding new channels to console.

Webapp gets disconnected, but does not notify the user

  • Probably only when app saved as a desktop app, it seemed to work correctly in a common browser - Safari, Chrome
  • Tested on iPhone and Android

And finally a handful of "nice-to-have" feature suggestions:

  • logarithmic scale on app faders, now they seem to be linear
  • name of current snapshot in client app header
    • I have added that as a plugin, but changes to mixer.js obviously needed to be done too
    • After receiving “/Snapshots/Current_Snapshot” save snapshot number to a global var and send “/Snapshots/names/?” to receive the whole list; pick the correct number, get args[3] (snap name) and send an arbitrary msg to the clients to update the .innerHTML
  • (Low priority) add an aux output level meter to the client app

Thanks a lot for all the great work, we will definitely send a contribution!
Regards, Lukas

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.