First attempt at a Patch--Am I doing all this right?
I'm gradually building my first significant Max patch. It is a signal processor for my Behringer FCB1010, and it basically lets you--without having to learn how to change the settings on the unit--set whether you want to send a CC, a Note, or the PGM Change message for each button.
Coming from a (hobbyist) programming background, one of the first things I tried to learn was how abstraction works in Max. In the screenshot, each "button strip" is a bpatcher. While I've pretty much got it down, I've run into a few issues.
For one thing, I've noticed that at certain zoom levels, it becomes clear that my interface has gaps between objects, but at other zoom levels, they are clearly touching. Any way to fix that? Am I just using the UI elements incorrectly? I've seen some beautiful patches in the wild, so I know professional-looking UIs are possible (I wish there was more in the way of tutorials for this aspect of patching).
One of the things I would like to get better at is making user interfaces that look professional. So I will happily take advice on that.
The other question I have is more generally: does my work so far look decent? Any redundancies or silliness I could eliminate now? I've pasted code for the main window as well as the bpatcher for the button strips. (The business logic for the button strip--the code that will take the incoming PGM change and fire other events--is working but not implemented into this new version of the FCB1010 controller just yet).
Main GUI Code:
bpatcher Code: