these past weeks i made progress with an operator project. (while reading please bear in mind that i’m a beginner).
the idea came from this @glia’s post (thanks !) : Emergence and Generative Art
(there are drawings of 39 strange attractors.)
while i was looking for definitions, code examples, how to resolve derivative functions, etc. i’ve found this site : rendering strange attractors : 3D drawings you can play with, randomize values, zoom in and out. very nice.
what i like with these functions is the possibility to get a set of 3 values from a single input.
my goal is to write an operator that allow to
- choose a strange attractor out of a list of 39,
- choose operator behavior : output contiguous set of values at trigger or output a set of values at given index,
- choose a “time” delta.
constants and values at index 0 are fixed (though one can easily change them).
(it could get along nicely with the preset system…)
but i’m stuck now.
to get to the point of an actual op, i need help.
as i’ve been trained to write simple and basic C codes that work with an OS, stdlib and stdio, getting into aleph source code is a very different experience, quite challenging and difficult. i get easily lost in it. i guess i miss something fundamental about the embedded environment that would help me to understand what it is, how things work, or are builtand get along together. if you can point me to useful info, resources, etc. i’d be pleased !
i’ve followed @rick_monster’s advice and got the environment set up (thanks for your help !). from there i thought i would go step by step (baby step i guess) and start with some kind of prototype. i’ve uploaded a folder (see down this post) where you can find the code and a ‘prog’ file : it’s an app you can run from a terminal. it will give you a taste of what i aim at.
with this app you can choose between two strange attractors, then choose a behavior, then choose a delta. after this set up, you’ll be promped to trigger the app, or to give an index, in order to get a set of three values.
i’ve built this app this way because i thought it would fit in the bees files organisation : main.c would be op_strange_attractor.c (or whatever the name will be), str_att.c and .h would be macros (is this the correct word ?) like op_math.c and .h
but is it a way to go ?
i understand this op could be a problem because of its size. how do you know there’s a limit ? where do you find the info ? why is there a limit, or how is it set ?
there is still a lot of work to do (at least to me !).
- i’ve been reading posts regarding fixed point math, and searched the web. i get the idea i think but i really need to practice with simple examples before i can get something useful out of the strange attractors…
- i don’t know how to label the type of the variables.
- i’m looking for a function to trigger the op and another to input a value. could you point me to the way inputs are done from one op to another ?
- i need to set the range and scale of the input and output values, something relevant and useful for the bees network. how do i do that ? then : what happens to the values outside of the range ? it’s wrapping, right ? (i’ve been reading the teletype posts and code about that, but i don’t understand what’s going on).
- would you change the name of the var in str_att.c (e.g. l, m, n instead of x, y z) ?
- is there any coding conventions or style i should be aware of ? could you point me to them ?
- what would you do after cloning the aleph repo : create a dev branch locally, then create a branch for the op ?
any help and tips regarding these points would be great !
str_att.zip (4.5 KB)