Yesterday I posted the first half of the interview with Christian Kleine and Nico Starke about their new Max for Live modular system OSCiLLOT. Here's part two of the Max for Cats interview. They also kindly gave me five licenses for OSCiLLOT. So if you'd like one, you could try your luck and take part in the giveaway that's running from now until Monday at midnight CET. Good luck!
What problems or difficulties did arise while developing a modular system for Max for Live?
NS: Well... let's put it this way: it was a bit bumpy path with many compromises and workarounds. The biggest challenge was to make the scripting features of Max on which OSCiLLOT are based available in Live, because the are not really supported by Max for Live.
If you, for example, create a new module in the editor, Live knows absolutely nothing about it first. Neither the position nor the parameter values or even patch cable connections. If you then saved your Live Set and opened it again, everything would be gone. So we had to develop its own complete data model, which stores all this information and restores it correctly. Unfortunately, this also applies to undo/redo actions, which was one of the biggest hurdles.
Another problem was to keep the performance under control. It wasn't even so much about the pure DSP load. Which is even halfway acceptable. Instead, we had trouble with GUI performance and load times. So we had to replace a lot of UI objects, such as volume meter or oscilloscope with our own OpenGL-based variants.
The polyphony was not particularly easy to implement, as our special case isn't conceptually intended in Max. The necessary workaround leads to the relatively long loading times. We hope that this is something that can be improved in the future. Max 7 is in terms of GUI performance already a big step forward and the load times can surely be optimised as well.
Basically, in spite of all obstacles it was always impressive what things you can do with Max. 4 1/2 years ago, I had not even begun to believe that this project might be at all feasible. And then there were always those moments where you discover something new in Max, find a new or better approach. And then you sit there thinking "Wow ... so, it is possible!". Amazing. The guys from Cycling '74 have also been very supportive of us, even if it only was lending an ear to our concerns and problems sometimes.
Do you intend to work on other projects together or is OSCiLLOT a one-off project? Will there be other modules?
NS: OSCiLLOT is of course a big project and only the beginning has been done. There certainly will be new modules and a few improvements to the editor. We have quite a few ideas. The system is also totally open to other Max programmers. We hope that even one or the other great module of a "third party" will see the light of day. As for other projects ... I honestly haven't thought about it much, yet. Presumably, OSCiLLOT is going to keep us busy for a while. But who knows... maybe in the future there will be other Max for Cats devices we'll work on together.
CK: I see it the same way - first we want to fulfill all our wishes for OSCiLLOT (more sample-based modules, for example); as for anything else, we'll see…
Can you control OSCiLLOT with MIDI controllers or with OSCiLLOT something else within Live or even hardware?
NS: It's impossible to directly assign a MIDI controller, unfortunately. This limitation is due to the above-mentioned problem that Live doesn't know anything about the existence of modules/parameters. Our workaround consists of the macro controls, which can be found below in the actual Max for Live device. They can be connected to the CV inputs of a module in the current version. So you have virtually a proxy for MIDI mapping and automation.
Possibly it will eventually give yet another way to map macros directly to module parameters or the other way around - module parameter to Live parameter, but for now that needs a little more work.
Apart from that, you can also use OSCiLLOT very well to control or extend external hardware. With a suitable interface, you can, for example, send CV/gate signals to a hardware modular system or to a CV/gate compatible synth. Or just pure audio signals - to combine noise generators, digital oscillators or sample playback from the OSCiLLOT with analogue oscillators and filters is a great thing.
Fortunately, a great deal of interesting stuff has been done in the hardware sector in recent years. Thus there are, for example, an arsenal of different interface options from the company Expert Sleepers. I personally use an ES-3/ES-6 combination for my hardware modular. So I can transmit and receive control voltages and high-resolution audio signals over 2 compact modules. For simpler applications, a simple MIDI - CV/gate interface suffices.