Beatjazz system software playability
the system software is finally at a stage where it can make, record, loop and manipulate musical sound. this is now the beginning of the next phase. the phase of programming->performance based iteration rather than the all programming/all day/night stage it has been in since October.
I learned that the synthesis was not the hard part. generating sound with pure data is pretty easy. open an [osc~] object and patch it to a [dac~] (sound output object) and viola! you have sound. no, I discovered that the real headache comes from designing the interface to the synth. going into this project i designed the first of the gestural synths from the perspective of designing the synth first then somehow rigging it with gestures. this quickly became obviously tedious. there was no standard way of interacting with the sounds, which meant that each synth/interface combo would be completely different which would sweep the learning curve towards exponential as more and more synths were added.
in late february i went back to the drawing board and decided to design the gestural interface first, then the looper, THEN the synths. the logic being that the sound generation mechanisms will be more easily controllable from a standardized interface. so i created a gesture grid system. the gesture grid is made up of 32 nodes (16 for each hand, accessed by a 2-bit finger sequence) which direct the x and y position of the accelerometer, to various parameters. all of this is within a mode where the entire interface is dedicated to parameter modification. each element has its own gesture grid including each drum sound.
the next stage, which is now so much a part of beatjazz as to be inseperable as a concept, is the looping. within the context of beatjazz, looping, or "recursive improvisation" (recursion) allows for the construction of arrangements from a architectural point of view. the artist plays and when something they play seems to be relevant within the piece, it can be buffered and looped, allowing for more sonic elements to be placed around or on top of this element.
the previous looper, did this with one column of loops. layered one on top of the other. this was a wonderfully challenging because one had to create an arrangemnt consisting of many loops of the same length yet still give the impression of momentum by deconstructing and reconstructing this simple structure, continuously. the drawbacks (which can be strengths depending on how they are approached) are that
all elements are combined into one patchwork of looping layers
to deconstruct the first layer played, one must delete all layers "on top" of that layer first.
this was the main drawback actually because one had to be very careful with what was going to be looped first because that element would be present throughout the entire sonic trajectory. the benefit of this is that it provided an anchor and the interaction with that anchor sound be the main sonic idea of the piece.
with the new looping/buffering system, each element has its own, synchronized, "buffer"; 8 in total. this buffer is basically one loop layer that can be added to over and over again, faded out over time, muted or rerecorded, independently of the other buffers. now, for instance, the drum buffer can be muted and/or rerecorded, irregardless of the order it was recorded.
at the beginning of a sonic trajectory, the loop length toggle is switched then the next loop recorded will determine the base tempo for all buffers. its constructed in such a way that it will be easy to do tempo based edits later and is very stable and glitch free, surprisingly.
so now that this actually works ( and quite well), I have begun creating synths of varying types. i have determined that because of the breath based nature of the system, i can focus more on timbre and harmonic quality than "instrument type", ie, a sound of can be played staccato for percussive sounds and more legato for pads, but still be the same sound. the things that determine elemental character now, are how the parameters interact.
the visualization will be the only thing that most people will ever see of the beatjazz system, including many that will play the system. it will enable complete interface-only interaction with the system. right now, it is very simplistic, consisting of a gesture grid visualization, parameter text readout and loop/buffer nodes at the bottom. its job is to convey all parameters in realtime, mostly for the pilots benefit, but knowing what is doing what, especially in electronic music, is something that i have found to be appreciated by many that come to performances.
for some, the desire to build this system entirely within pure data (extended) is counter productive. some saying that there are other languages that are better at many aspects of what pd does. but pd and its graphical flow chart-esque programming idea, has been a profound and enlightening experience for me. to have hardware integration, graphics and raw dsp-level sound creation all together in one package that also happens to be open source and free is just too good. it is also my belief that relating mathematical principles to sound generation could revolutionize interest in mathematics. i, personally, have now started studying trig and physics to allow me to create ever more relevant sonic structures.
hopefully today, i will have a set of elements that are not embarrasing. this will entail creating various synthesis types (from tutorials in the amazing book, "Designing Sound" by Andy Farnell), assigning them to elements and determining the proper control vectors for each parameter assignment. then very basic element, pre and post fx. once it has a bit more capability, it will replace the "old" system. to tell the truth, this transition has already happened. i played the new system for over an hour last night and it was much fun, even with only 3 super basic sound sources, so i may have already made the switch and dont know it yet, but before i feel comfortable with it psychologically, it needs the above mentioned addtions.
i felt that it was neccessary to report on this stage of the developement because now, everything speeds up immensely. exacerbated by now having an open studio to work out of.