Physically Modeling Multitouch Controls

spinnerFor the last two weeks I have been working on a performance application that I’m developing in MaxMSP controlled with TouchOSC on the iPhone or iPod Touch. The application is coming along quite well. I have the granular traversal piece working how I want, as I described in Traversing Samples with Granular Synthesis.

Now I’m working on another feature of the application designed to allow the user to play samples with a rotary dial; not unlike manually spinning a record on a turntable. The basics of getting this going were pretty simple, but I also wanted to be able to spin the dial and have it continue to rotate based on the acceleration applied. Secondly, I wanted to have a slider that would adjust the amount of friction, from frictionless to instant braking.

This essentially involved physically modeling the control to behave like a turntable or other spinning device. After trying four or five techniques using standard Max objects I managed to get it working, but it wasn’t pretty. Instead I decided to try using a few lines of Javascript to do the calculations and adjust the position of the dial. This worked much better and only required about 35 lines of code. The best way to illustrate this application will be with video. I’ll shoot a few minutes to get the point across and share it here soon. For now here’s a recording made with the modeled controller I described and just a small amount of friction.

Percussion Loop Spinning