You are certainly right. I was writing here just about my personal expectations, it’s not that I don’t love the Renoise API - which other DAW has such a complete API at all? Recently Steinberg added some JS API for controllers, and also Bitwig still is on the way (where Taktik was 2010 or so already), via two APIs, but none of these is nowhere near the feature set of the Renoise API.
If I am “criticizing” here, it is mostly about my expection or inability to properly code an everlasting tool (which I still can maintain 10 years later easily) without an object-oriented (oo) style approach/abstraction. If I look at my older tools, where I mostly do iterate directly over those array structures of the API, it seems to be obvious that I designed those not nicely. Having even a hard time to understand what’s going on in my own tool. This wouldn’t been the case for me, if I created an abstraction layer beforehand and named the functions, parameters, variables properly. I know that a lot of guys of you have no problem with that at all.
Also it makes a lot of sense that the api is representing the pattern data structure as it actually is. It’s a “near the metal” approach certainly. Still I was also “dreaming” of a tracker which is not bound to absolute numbers / indices, a bit like it started with Aodix, and then all only objects only, oo style structures, e.g. a note object containing all note related data automatically, e.g. per-note-automation, only normalized values, etc, already. I would imagine once you had this kind of song structure objects, how easy it would be to code a pattern view which would be zoomable for example. So everything then very elastic, flexible, and loosly bounded. But making a fast API for that certainly would be a difficult task then.
I am very thankful for what we have with Renoise. It’s the best tracker and one of the best daws existing. Simple as that.