Max Arc Emulator

Arc,max/msp,prototype — JP @ February 1, 2011

…more details to come.

Touch Arc Emulator

Arc,max/msp,Monome™,prototype,TouchOSC — JP @ January 26, 2011

(check the comments, I’m posting updates down there)

Touch Arc is a Monome Arc emulator for development purposes. It is very much not intended to be “nice” to use or a competitor to the hardware, so please don’t complain about that aspect (if you want a useable and ergonomic interface that’s a joy to use, buy an Arc).

Touch Arc comprises two parts, a TouchOSC template and a Max patch that works as the middle ware and converts the Arc OSC your app is transmitting into a format the touchosc template can interpret, and vica versa it takes the touchosc template interface input and converts it into fake Arc OSC format that your app can handle.

This way developers can work on proof of concept, sound in the knowledge that once the arc hardware is released their applications will function.

The touchOSC template initially replicates all the in and out points of the Arc 2 (I’ll do an Arc 4 one later if there is a demand).

This means there are two duplicated UI’s for each encoder, these are made up of:

- 64 slider ui elements, which can handle values of 0 – 15 (these are the LED’s)
- 4 momentary buttons, that output every 100ms either -2, -1, +1, +2 (these are the encoder turns).
- 1 momentary button that registers as an encoder press event.

For the LED side of things, due to the limitations in the TouchOSC interface, the LED UI is made up of 4 multisliders each made up of 16 subsliders. We could have used 64 single sliders, but they can’t go narrow enough to get 64 of them in a row, even in landscape mode, this means the LED handling middleware needs to do a fair amount of math converting 0-64 into 0-3 + 0-15 coordinates. For this reason (and mainly due to hitting a brick wall with the range wrapping round at 64, I used Javascript as the main math function handling.

The interaction conversion side of things is a much easier straight translation, so I handled that with just Max. The encoder rotation interface is faked by firing a value every 100ms for as long as one of the valued buttons is pressed in the UI. I could replace these with a slider the more you slide it from the center the faster it fires the +1 or -1 values, but i figured for ease and simplicity this approach worked.

Source code is available on google projects, so you can download it and try it out http://code.google.com/p/touch-arc/source/browse/#svn%2Ftrunk. If you can find bugs or better ways of approaching the problem, I’m very happy to update the code, or please feel free to use SVN and update the code or post other examples directly to the project.

I have spoken to Brian at Monome and he’s very happy for me to make this available, if it makes developers lives a little easier pre launch, hopefully that will be of benefit to everyone.

Update:

I’m working on a native Max UI, to see if that renders better without so many hicups. It could also be used in app patches where you’d like an onscreen representation of the Arc UI. Should be ready for testing very soon.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2012 Nomeist | powered by WordPress with Barecity