Hey @forrest great to have you on board. I’m going to keep this a bit high level to start; we can go into much more detail as you get started.
If you are coming to the platform for the first time looking to develop new objects, I would start digging through the existing factory and contributor objects for ideas. You can use the object browser on the new site: https://zrna.org/akso/objects
Object pages link out to the original object repositories on Github:
Information from the old Axoloti forum about object development is applicable for sure.
Something like a multichannel breakout is going to be more work. You’ll need to get familiar with the firmware in more detail. Before I post the latest code you can take a look at the legacy implementation of the codec driver here: https://github.com/axoloti/axoloti/blob/master/firmware/codec_ADAU1961_SAI.c
It’s useful to work through exactly how samples get computed in a patch and make their way to the codec.
How object implementations actually get stitched together and loaded as an executable patch is a bit complex and not well documented. It’s something that I need to write about in more detail, more of a theoretical treatment of what the basic architecture is right now for people who are interested in the low level detail.
A multichannel expansion is something I want to do myself actually, so we should talk about it more. One of the advantages of the H7 hardware is that it has several serial audio interfaces that make it easy to talk to multiple codecs.
Do you have a codec in mind that you’d like to use? The +12 and -12 rails are available to expansions so we could take a scaling strategy or use a high voltage codec. There’s a Maxim device that @weasel has experimented with in the past that might fit the bill.
Essentially, we’d pick one of the other SAI interfaces on the H7 and build a driver for the codec we pick.