Does this have a name?


#21

An example:

Super squiggly, but easier to implement (the squiggliness increases with the number of points and higher order polynomials lead to horrid behaviour the further you get from the points):

Less squiggly but more complex, can be used even for non-polynomial shapes. You must define entirely new operations in axoloti (matrix algebra, especially generalized matrix inversion, which is hard)

In both cases you'd have to figure out some way to input data dynamically, and in order to optimize memory usage (it's a limited resource) it would be clever, at least for the least squares method, to create two separate patches: one for the computation of coefficients, and the other for the actual patch.

In the end you'll have made an objects that's fairly complicated to use and will require users to read instructions. Very few will know what the object does (and so many won't use it), some of those who will use it won't read instructions (and because it's a complicated object they'll ask on the forum).

Also, maybe this super complicated object (and thus not efficient) will be overkill in most situations.

Multi-purpose tools make sense if you have some limit on the amount of tools you can have. For example: in case of physical modular synthesizers, where a module can cost you from 50€ to 500 and takes physical space in the rack, it makes sense to have some that can perform more than just one operation.
In digital realm this is not the case. You can add as many modules as you like, and leave un-needed stuff out of the patch.


#22

Hey Sputnki, was that reply for me, or Marc?

I saw reference to "Super Squiggly" and initially thought it was for me, but then saw the content and thought it must be for Marc. Just in case it was for me, I really do appreciate the effort you went to, but I haven't a clue what it means!


#23

Dear Sputnki,

Since the subject still seem to attract you.

I am very aware of the complexity spiral. Therefore the number of parameters for the most accesible version should be very low. More complex versions could still be made by addign more graph points and adding more esoteric fucntions but imagine this for th euser frienly version

An 8 point graph. Time on the X-axis is only set as an overall value over the whole graph length so the distance between the ponts will all be equal. So there are no indiviual times to be set. One can however adjust the total time from 0 to, say, 7 seconds, making the time between individual points change drom 0 to 1 second accordingly. The Y axis values could exist of a number between 1 and 127 which is a proven resolution from the MIDI standard that is good enough for almost any imaginable need (except certain tunign solutions in high octaves maybe but since the value can be connected to a note number it shouldn't when used chromatically. But I degress).

After point 8 there is a separate value for the release time of the curve. In principle this could have been taken care of by a 9th point on the graph but having an independant release time (so after key off) will partly compensate for the lack of individual time settign in the rest of the graph and thus keeping its resolution on the X-axis as low as possible, the of that being 8 x 127 points in this example.

With this tool one can already make / draw quite elaborate point to point shapes.

Now hear this: For the interpolation between the point on the graph I would propose 2 options:
1 - A straight line from pointt to point. In that case you can for instance create a single triangle shape with 3 points only. Furthermoree it is the bes tway to get rough sounding effects, not even squigly but harshly linear.

2 - A smoothing function that "'draws" a smooth graph through the point or maybe even an aproximation near to point curve would be even better. In that respect I do not yet have a clear vision of what woudl work best. Probably somehting to try out in practice.

Chosing linear or smoothed would then basically need one switch.

The next step would be to inlcude a loop portion in the graph to take the use into complex LFO teritorry. Instinctively I'd propose a loop from point 8 back to point 5 so that 4 points on the graph can be looped until key release, after which the extra release parameter takes over.

We are nowt taling about a tool with 12 input points. For instance 8 faders (for the Y levels of the points), 2 pots (for overall time and the individual relese time) and 2 switches (to activate smooth , linear being the default setting, and loop, no loop being the basic setting.

Imagine it. On a small 8 fader controller one could then set up a graphical representation of a curve. The resolution would obviously be low but that could actully be a benifit to produce brash, grindly low fi stiff. The smoothing function woudl compensate for the low number of points when smoothness is actually asked for.

Oops, In the end I have still describe tthe whole concpe tof my Swiss army knife. Let me know if oyu want to know more. I have even already made some sketches.

Which brings us to your "who needs this?" question. The whole attraction of a system like Axoloti is of course that one can work out personally customized soluitons, even if these are made uop out oif "conventional" elements. The next step is to think about improved elements for specific uses. So I am not thinking persé about the universal Swiss army knife but one that would attract peole who are susceptible to having more grpahic aids with a musical purpose.

I know, I know. You could now give me the same answer you just gave to Axoman but remember I just wrote this whole stuff because you seem to like the subject anyway. :slight_smile:


#24

@brasso I'm afraid that your swiss army knife will never come to life :grin:
Sorry, just kidding, it's just that your idea looks to me like the death star to some poor innocent rebel. I'll never embark in such a gigantic odissey.

However, i thought about the fact that ready made shapes could be useful in general, so i'll code some more objects that cover that ground, hoping that users will read instructions.

@axoman sorry if i have been brutal with you, however i have to say something: true, if you want to draw something you can use a pencil, without needing to know how the pencil was made in the first place. However knowing something about the pencil (at least its charateristics) allow you to choose the right tool for your drawing. Play with what you have and get to know it! Trust me, it's time well spent!

Now, check these shapes and tell me if they can be useful, somehow


#25

Ah bugger! Well coming up with such stuff is already fun and I still have high hopes Axoloti will bring me a lot closer to building customized instrument solutions. It surely has a lot of great stuff on board already and if I still insist I'll "only" have to learn to program C myself.


#26

No worries, Sputnki, I know why you did it :sunglasses:

All of those would be useful I can imagine, but if you're trying to make function objects that someone like me would fiind especially useful and be able to understand, I think a more generic custom object would be more use. For example, some of those objects have two, and some four things defining them. Why not just create one that lets us specify a curve through inlet levels, so that the levels are interpolated by the object to create the curve we require?

For example, the Parabola you showed could be defined by setting a three-point function object as:
- Inlet 1 to max
- Inlet 2 to 50%
- Inlet 3 to max

That line could be defined using a two-point object:
- Inlet 1 at around 25%
- Inlet 2 at around 75%

Objects could have their mode set to sharp or smooth interpolation. So for example, those knee shapes could be defined using a three-point object with interpolation set to sharp. With the line it would not matter what it was set to because there is no third point to bend it, and with the Parabola and Polynomial, the interpolation would be set to smooth to give us those curves based upon what we set the inlet levels to.

The object could come in various sizes depending on the amount of inlet points they have, so one with 8 inlets would allow a more complex curve than one with just three.

That said, I'm explaining it to you in a manner I would understand it. If all I had to do was set the levels of the various inlets, there is no way I could do it wrong. But if the object required an understanding of special math and function terms in order to use it, then the problem would still be the same, I would not be able to use it.