Hi, I'm creating a creating a DJ system using Max 7.1 (mac, OS X el cap) and an Arduino Uno R3 that is being expanded to 92 I/O's. I have just received the parts to expand the Arduino and starting to create the code for addressing the expanded I/O's. The Arduino code will only send pin data to Max if its current value is different to its previous value to increase the efficiency of the system and prevent artefacts in the audio from processing input data. A DJ has only one pair of hands so a maximum of two functions, at any given , time, will be generating new values.
Whilst the Arduino is being expanded I need to start work on how Max will handle all those inputs. This is a project for uni and am working against deadlines, this is an ambitious project but this area is where I would really appreciate some advice or comments, so that I don't spend valuable time researching the wrong/inefficient way of doing this and having to create new patches each time..
From my understanding there are several ways of doing this (as is always the case!!) but having not used them I'm not sure which way I must do this.
The first thing that Max must do when it loads is read all the Arduino pins (assigned) so that the values correlate to each other; i.e if a hardware fader is half way up then the fader it correlates to in the software will also be half way up. After that Max will only need to respond to the new values that are sent from the Arduino.
There are three methods that I understand could do this but I'm not sure which is the best, or if there is a better way:
1) I could be to read the Arduino pins and have a [router] for routing an input based on its ID.
2) expand Maxuino to take in the extra pins
3) use a matrix to store the data and send it to a function (I've never used matrices but will learn if this is the best way :) )
Many thanks in advance