The Philosophy of Add-Ons - greenhorn questions

Hi, everyone.

I’m new to oF, and I always begin with a new system by trying to understand the underlying design philosophy - what does it want to accomplish, how does it work toward that goal, and why does it do things the way it does? So please take the following questions not as criticism, but as honest curiosity from one who considers “Why?” one of the best questions you can ask when confronting something new.

Is there a particular reason why OSC and MIDI are not part of the core framework? Or why any of the add-ons in the FAT distribution aren’t? They all seem like pretty basic and essential tools for creative A/V work. What’s the philosophical line between add-ons and the core framework?

Is the core oF framework considered more or less “feature complete” at this point? Or is it more of a process of likely candidates for the core starting out as add-ons in the FAT distro and getting promoted later?

Is there interest in expanding the audio capabilities of the core framework? I know there are some synthesis libraries already implemented as add-ons (STK, SndObj, Maximilian). If I had to nominate just one I’d propose STK because the large number of pre-assembled physical-modeling instruments it includes makes for a rich and inspiring palette. Something you can get right down to work with…which seems very much in the oF spirit.

Also on the audio front, what I’m finding particularly inspiring right now is audio analysis. Has the team looked at Vamp at all? A simple Vamp plug-in host for oF would enable the audio equivalent of OpenCV - extracting useful data from media input and using it to enable interactivity. Or, alternatively, since Vamp is BSD licensed, the algorithms from their example plug-ins could just be rolled into an ofAudioAnalysis class; you lose the extensibility offered by plug-in hosting that way, but gain ease of use and the “everything is in the box” experience. (Plus, oF targets platforms that Vamp does not, such as iPhone, so the binary plug-ins would be unusuable there)

Despite my many questions, I’m loving oF so far and finding it very inspiring. While I’ve done a lot of artistic coding, I’d never been motivated to do it in C++ until I found this framework. Keep up the great work!!

I too have shied away from C++, working mostly in Pascal (Delphi), more lately Kylix but they haven’t the range and flexibility I’m looking for. Here goes with OpenFrameworks…



Hi Gardiner

the main reason for having the add-ons separate is to keep the core part of oF (the part that has to be built into every application) as small as possible.

basically everyone has a different idea of what ‘essential’ is (some people might never use OSC or MIDI, while other people might use them in every project). the core aims to be a minimal set of features that at least 50% of users might want to use, whereas features that might only be used by 10%-20% of users (such as OSC and MIDI) are implemented as add-ons.

hope that helps