The biggest initial challenge was ensuring proper communication in between MIDI information from Logic to PlugData. The solution was simply trial and error, changing settings until it eventually played and recorded through. In attempting to make more complex additions, such as chord logic, the wiring crashed, demonstrating IAC's limited ability to seamlessly translate mass information despite the same functioning patch logic being used. That being said, going beyond this class I would like to continue to experiment with this patch and utilize different forms of communication between Logic and PlugData, like using PlugData as a plug-in. I hope that this might result in less bugs.
In an attempt to create more variables and musicality in my patch, I added the minor scale so that the user can choose any key, major or minor. I decided to use the same message logic as the major scale rather than adding arrays to decrease potential complications. That being said, I initially used a [select 0 1] that was triggered by a selector which did not work because depending on the note density, only one output of the select would trigger. To bypass this, I routed each scale to a [spigot] connected to a [tgl] so that one scale will be silent while the other is played.
As previously mentioned, attempts to complicate the algorithm with more notes, chord logic, and even drum sequencer's through a different channel caused PlugData or Logic to crash. This led me to make simpler wirings between notes (using messages instead of arrays), eliminate drum sequencer and chord logic, and make channel selections through Logic rather than decided by PlugData. I also added a simple high-frequency echo sound through the audio objects that can be turned on or off to add something new to the sound enviornment and implement lessons from our later lectures in the syllabus.