I let you turn my knobs
Sound on Demand
Sound on Demand
remote controlling for vintage audio gear

Sound on Demand is a concept webservice for lending analog audio gear. We completely remote control a distant Moog MF-101 (lowpass filter) through motors, NodeJS and a website. You upload your audiofile, which is played through the MF-101 and streamed back to your client. At the same time you see a video image of the MF-101. If you start turning knobs on the website, motors start turning the real knobs on the MF-101 and the audio changes in the livestream. You also see the knobs turning in the video. Sound on Demand was mainly done with Nick Riegler and Ralph Stachulla and was Nick's and mine masterthesis.

Robert Rose
Michael Kipp
Peter Pardeike

Nick Riegler
Ralph Stachulla

Adafruit Motorshield
Power supply
Drive shafts
Moog MF-101
Laptop with NodeJS server

PC with browser

Sound on Demand started with our love for old synths, effects, and other audio equipment. And (unfortunately) with the certainty that we will never get our hands on all the nice old synths out there we’d like to play sometimes. So we asked the question: Can i hire a real synth on a webpage, play it, tweak it and still have the feeling of controlling a real device?

We did a concept setup that features a Moog MF-101 lowpass filter. Robust enough to take it to the workshop, yet a nice, defined, and definitely hearable sound effect. The especially tailored mounting for this effect lets us control all the 4 knobs with motors. We remove the original knobs and connect the potentiometer axels with drive shafts to the motors. The motors are equipped with rotary encoders, so we can calculate the position of every one. When starting the installation, all potentiometers are reset to zero. This is done with additional rotating discs on the axles and marked zero positions which are read by photo sensors.

Turning knobs is one chapter. The controller is another one. A NodeJS server is used to control our motordriver with a specially developed protocol. Also the server starts playback of the uploaded file, recording, streaming of sound and video, and delivering the website to the client.

Moog MF-101 built in the setup
Sound on Demand at the workshop
The first motor is turning knobs
Demonstrating Sound on Demand
Sound on Demand ready for presentation
Sound on Demand server and client
Exhibition set-up

Careful testing with powerful gears. Nobody likes getting potentiometers broken by a buggy programm. We used an Arduino Due with Adafruit Motorshield for our motorcontroller. The serial interface implementation checks all values and has his own state management.

Bigger is always better! Preparing the setup for the final presentation.

The Sound on Demand exhibit at Werkschau. Server and client are moved away from each other for better understanding. At the client table we used a consumer midi keyboard and the experimental midi support of chrome together with our client page to give the people the real feeling of knobs.

The center of the clients web view features the live videostream. As soon as you change the value of the virtual controllers, the value is sent to the Node server, verified and the corresponding potentiometer is getting turned. You can see the actual value of the knob as well as the target value. When the encoder measures rotation it sends its updated value to the client, so you wouldn’t even miss it if somebody would turn the axle by hand.

A very cool and handy feature is the automation editor. Because of an unavoidable amount of lag, sometimes it’s hard to hit the right value at the right time. With automations you can paint every parameter into the sound diagram like you would do it in most of the DAW’s. The parameterset is then uploaded to the server and plays simultaneously. Looping over your sound and iterating the parameter tuning you will archive your perfect sound.