Or, if you don't have the source, go to the assembler. :)
I made a bit more progress in using the GNU Debugger to run around inside MIDIStroke, and also made some progress in disassembling the entire program using otool. It does look like it might be possible to actually figure out the encoding scheme for program changes and control changes using this method, thought it won't be easy. For those generally unfamiliar with this sort of thing, what I'm doing is taking a complete program and looking at it's guts to try to figure out something about how it works. When you create a program, you have something called "source code", which is a sort-of englishy-language description of how you want the program to run. The computer can't read this, though, so it has to be translated into machine language, which is called assembler. Generally, when you're using an existing program you didn't write, you only get the assembler to look at, which is very much akin to trying to figure out how a car works without having the design diagrams or any manuals.
( Read more... )