1. Code/Programming Issues

    During the first half of the quarter my primary programming issue was to decide in which environment to build the final project.  I had been working in parallel with many strategies on my last few projects: Processing & Arduino, Supercollider with SCPyduino, Supercollider with raw serial, etc.  I had partial prototypes in each and had used different configurations for each of my previous projects.  As many are aware using SCPyduino/Firmata requires  Arduino 16, which cannot be installed on most of the machines we use, (Java issue…) so I ended up using a combination of Supercollider & Processing which is a bit redundant but allowed for greater flexibility in prototyping or changing functionality.

    The introduction of Festival added a new set of issues.  The challenge was to create a system that dynamically sent text to Festival for synthesis based on brainwave activity and another set of rules to trigger the wav files that Festival output.  I used a combination of Festival, the command line and Python to create an action that was perpetually running in the background.

    After this point I was hounded by the following error in Processing in relation to the oscP5 library which allows Processing to work with OSC messages:
    an OscMessage
    to a method in your program. please check your code for any 
    possible errors that might occur in the method where incoming
     OscMessages are parsed e.g. check for casting errors, possible
     nullpointers, array overflows … .
    method in charge : oscEvent  java.lang.reflect.InvocationTargetException 

    The system would run despite this essentially worthless error message (it’s vagueness is not really an adequate debugging in a complex project) with occasional odd behavior, usually confined to a brief period of high latency.

    In the last few days of the quarter I rebuilt the entire Processing code line by line, using slightly different strategies for controlling activities and change states.  I am happy to report that the final rebuild throws no errors whatsoever.