OTTO icon indicating copy to clipboard operation
OTTO copied to clipboard

Property system

Open topisani opened this issue 5 years ago • 2 comments

Mega-issue for property system. Add todo items here

  • [ ] Customization point: custom storage wrappers to allow differences between stored type and user facing type
    • [ ] Replace handling of (better)enums in individual mixins with a EnumStorage class
  • [x] ~Better definition of what properties are, and where they are allowed~
  • [x] ~Consider passing the props objects to process calls, making stuff like parameter locking a lot easier.~

topisani avatar Aug 13 '19 10:08 topisani

Idea for mixin: center point. Would probably require steppable. It would be nice to define a point for a property that takes up several steps. As an example, a pan variable would have the center point as an obvious center point that you would like to be able to hit quickly and easily.

jmidt avatar Aug 18 '19 19:08 jmidt

To give an update (topisani can edit or comment if I misrepresent anything):

The current plan is to separate properties to be more thread-specific. So a property on the logic thread might trigger a change in a property on the audio thread. This split should allow for less shared memory and hopefully a bit better cache localization(?)

Another good thing is that this allows for an easier solution of passing property changes to the process calls. This is also useful for a number of other reasons:

  • If we want to make sure that a property is only changed once per audio buffer, we just make sure only to pass the most recent change.
  • It also allow us to apply all changes in a fixed point in the execution tree. Property changes will be "atomic", from the point of view of the DSP, for instance.

jmidt avatar Sep 02 '19 12:09 jmidt