BEAP - Powerful Modules for Max for Live
Max for Live offers virtually unlimited possibilities - the Max, MSP and Jitter languages offer an open book for programing messages, audio synthesis and effects, visuals, and more. Programming Max for Live can also be intimidating - it's sometimes hard to know exactly where to start. BEAP, a new set of free modules for Max for Live, bridges this gap by providing a set of higher-level building blocks. Think of it like a modular synthesizer in Max for Live.
Stretta, aka Cycling '74 employee Matthew Davidson, oversaw the development of BEAP. We spoke to him about some of his favorite modules, the inspiration for BEAP, and where beginners should look to jump in with this incredible new tool kit.
What was your inspiration for the BEAP devices? I've heard that you developed them for academic use?
Beap was developed as a pedagogical tool for the Electronic Production and Design students at Berklee College of Music in Boston. The Beap library is a collection of modules that emulate the function and signaling of hardware modular synthesizers.
The idea of a higher level Max patching system that emulates synthesis modules is not a new or unique idea. If you look around online you'll find a few of them. Ideally, you want the freedom to attach a patch cord from anywhere to anywhere without worrying about what kind of message is flowing down the patch cord.
Beap has been underway for almost a year now. In that time it has grown to encompass many themes of my past interests - especially my monome work. In fact all of my current monome work is now a subset of Beap including favorites like Plane and Polygome.
It turns out that a robust, simple, flexible and easy to understand protocol already exists and has been in use for almost 50 years: the 1v/oct standard. 1v/oct is elegant: C3 is 0 volts. C4 is 1 volt. Add or subtract a volt to anything and you move up or down an octave. Contrast this with other schemes like collapsing frequency down to a 0-1 range and you begin to appreciate the beauty of 1v/oct. Everything in Beap is an audio rate signal that conforms to this standard - even gates and triggers. Obviously, this isn't the most computationally-efficient, but it was the most pedagogically-sensible.
Because Beap emulates the signaling of a 1v/oct system, it is also compatible with 1v/oct modular synthesizer hardware. Any patch cord in Beap can be sent to a DC-coupled audio interface and used to control a hardware modular. In fact, we're doing this at Berklee. We have a new synthesis lab full of individual modular systems where students can freely inter-patch with Beap. The best of both worlds, hardware and software.
What are some of your favorite modules in BEAP?
Whenever someone asks this question about a project, whether it is monome-related, a maxforlive device, or music, the answer is always 'whatever I've been working on most recently.' The phase-vocoder oscillator module is my current favorite. It sounds great and it is wonderful to have a phase vocoder under voltage control. Interfacing is dead simple, a control voltage for pitch, a control voltage for playback position within the sample.
Were there any particular modules that you found extra difficult/complicated to assemble?
I have to come back to the phase vocoder again. This was new territory for me and although there are some good examples of phase vocoders in Max, there wasn't a singular example that did everything I wanted. I found the work of Jean-Francois Charles extremely helpful.
How will development of BEAP modules work moving forward - are you working with a community now?
Beap has been underway for almost a year now. In that time it has grown to encompass many themes of my past interests - especially my monome work. In fact all of my current monome work is now a subset of Beap including favorites like Plane and Polygome.
Beap development is contained at github which is designed for group collaboration. I really appreciate how github has built-in features for interacting with the community including a method for users to open and track issues. If anyone is interested in contributing to the Beap project, I'd encourage you to get in touch with me.
If I'm just starting out, is there a recommended tutorial resource for BEAP - or perhaps a "start module" that's easier to make and that demonstrates how BEAP works?
Darwin Grosse created an excellent getting started resource which is hosted at the Cycling 74 Wiki.
In addition, when you download Beap, there is an examples folder filled with numerous demonstrations of Beap modules.