@tayholliday
the technical “historical” treason is pretty straightforward as @alanza, @Dewb and @murray suggest: using a third-party chip to handle USB dicovery, endpoints and framing was a very good idea given the experimental nature of the project. (which was not initially conceived of as a product.) similarly, using a standard and transport-agnostic data format (OSC) over a bog-standard transport layer (serial port) was also a sensible decision. (again, iphone wasn’t released and we were a long way from iOS and third-party applications.) monome devices have included tilt sensors and other stuff with 10, 12-bit data over the years (your point re:that is not accurate.) MIDI really is a barrier to entry for DIY host devices, compared to raw serial… the list goes on.
as to the broader historical question i couldn’t agree more with @naxuu’s comment - MIDI is a poor fit, creatively and psychologically, for the de-coupled architecture. the whole point was to get away from the standard industry assumptions about how controllers work (push a button, make a note) and allow(/force) people to come up with their own. look: it worked.
to the question as it stands: i don’t think there is a strong technical reason not to consider a more flexible driver component that could be loaded with class-compliant MIDI firmware. (probably AVR8 running LUFA.) i’d very much worry about the fragmentation of the ecosystem at that point though, and of course it’s a significant investment for monome to change things at that level. (especially with the massive proliferation of actual commercial and DIY MIDI grid products that are now available.)
here are some questions for you, the ios developer:
that is a pretty serious issue. some host apps (audulus) will be able to send stuff back to the “midi grid”, most won’t.
monome devices are utterly minimal: they pass through touches and lights. there is no onboard logic to associate touches and lights. how do you deal with this when connected to a “standard” MIDI host?
two ideas: 1) see if there is a way to talk to a USB-CDC device on iOS, without requiring MFi. if that’s the case you can make an IAB service (audulus module?) and even configure stuff like LED feedback for apps that aren’t MIDI sequencers and/or aren’t set up to perform (vs consume) noteon/noteoff logic.
or 2) just build a small usb serial -> bluetooth MIDI converter. everyone is happy, including those of us who won’t touch iOS development with a 10f pole outside of office hours.
on a different note, i think you’re getting (mildly) defensive answers because of the (mildly) aggressive tone of some of your questions and comments. (“hell, the grid isn’t even pressure sensitive” - no shit?) and not everyone one here is an engineer - people are defending the platform they love.