Comprehensive noob guide to creating "objects"?


#1

Hello, Noob here again :slight_smile:
Is there a comprehensive guide to creating "objects"?

I was initially looking for some kind of SDK and coding guide on the github pages.

Then I saw, on a few different threads, that one can simply click edit on an existing object in the Patcher GUI and edit the code and recompile it (!? the Patcher can directly drive the cross-compiler toolchain ?! explicit info here would be nice. At which point does the code get recompiled?)

I note that only the .axo xml file exists in the axoloti/axeloti-factory/objects/gain/ (or whichever) folder which makes me wonder where the .c or .cpp files live,

If this is a "WIP" that would require someone to edit together several existing threads, I'm probably not the guy for this, yet.
(I'm still just exploring the vast world of community objects. categorization would be helpful here, maybe a simple "category" tag, vs searching by author, or am I missing something?)

If there are suggested threads to read to get "up to speed" on coding objects, I'll be happy to hear about them. A single consolidated "Creating Objects for Axoloti" is probably what we eventually want, complete with some basic coding style guide and explanation of the virtual machine and it's parts etc. I can guess what s-rate-code and k-rate-code involve, as I've seen other systems with control rate signals partially interleaved with sample rate signals.

It occurs to me that maybe simply PINNING a few select topics to the top of a sub-forum will eliminate silly repetitive noob questions like mine, as I see 5 topics my topic is similar to, here on the right hand side...

Creating AXO Objects (User Guide) (entitled Objects 101, should continue -> where is 102?)
Making new objects - The basics (Software)
and 3 specific topics one about Debounce Object, one about a lost link to a table, and one about large buffers...

I'm missing the big-picture overview of how to get started and how it's all organized.
I hope this doesn't add to the confusion. Feel free to close this topic once a response has been formulated.


#2

After looking at some .axo files, am I to understand that the entire framework has wrapped the c/c++ code in the xml file itself, such that all I need to do is put my code in the appropriate parts? (if so, genius, in terms of the object editor inside the Patcher app itself)

where can I begin learning about the API overall?


#3

The full API is not documented as far as I know. Best place to learn is to go through the firmware code:


#4

Hey @vectorselector :slight_smile:

If you want to create objects, the easiest way to get started is simply to use the object editor, which is build into the Axoloti patcher. Check this video for the simplest way of creating an Axoloti from within the Axo editor. Just start with one of the existing ones and go from there :slight_smile: :

Just a quick explanation for the wires and some of the other things I show in the short video:
Wires
Yellow = bool
Blue = K-rate modulation signals(updated 3000 times a second, 16 times less than sample rate)
Red = Audio (updated at sample rate, 48khz)

Attributes:
Can be used to set values at run time. They are set once and cannot be edited in real time. Uses less memory than parameters.

Parameters:
Can be edited in real time. There are many to choose from.

Beside that you can also find some info on object here:



the cool thing about Axoloti is that there is al ready soooo much code for you to explore in the community library. Start with looking into some of that, to get an understanding of how it works, edit some of them and see what happens. That's how I learned. Then you can always do some more personal stuff later on :slight_smile: