Beginners question
Hi all,
I'm not new to code entirely, but I haven't done a lot of C++ - just basic command line apps. But either I'm not getting the point or I am absurdly out of my depth... I am trying to write my first external, which is to be a work around to get midi out of a max compiled plug-in into logic 8.
So all I want to do is make an object that outputs midi notes onto the IAC bus. Surely it should be simpler than the hundreds of lines of code I am finding over the net. Can anyone point me in the right direction as it seems so overwhelmingly complex to do this mundanely basic task, I genuinely don't know where to start.
Thanks in advance,
Alain
A plug-in, in any modular API, is going to be considerably longer than int main() { printf("Hello World!"); }.
Yes, the simplest Max external will be weigh in at 100 loc. A Finale plug-in will, if anything, be longer. Ditto for VSTs or anything else.
Most of my externals (I've written a few...) are several hundred loc.
If you want to write Max externals, download the SDK and work through the first seven chapters. Look at the sample code (there's plenty). Start with a simple project.
But if you just want to feed MIDI data into the IAC bus, it would be a lot easier to just use existing objects. Handling MIDI is not the simplest beginner's project for an external.
thanks for the info. I would obviously have used the standard midiout in max, but it doesn't seem to work once opened as a plugin in logic pro. neither does the pluggo midi out. there are no existing externals that i can find either.... if its going to be an epic mission I might just give up. I was essentially making a drumagog replacement and need midi out.
Thanks anyway,
Alain
Does the "Echo" example in the Apple developer examples not help a bit?
You are right - we do not open our MIDI drivers in the Pluggo runtime. But I believe others have tried to workaround this lack of MIDI in AU.
Evidently AU has or will soon have MIDI IO capabilities. But Pluggo does not yet support them. Another option for you might be to use network protocols to get the data out, like OSC for example. Check out the udpsend object.
-A