Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Property system #134

Open
2 of 4 tasks
topisani opened this issue Aug 13, 2019 · 2 comments
Open
2 of 4 tasks

Property system #134

topisani opened this issue Aug 13, 2019 · 2 comments

Comments

@topisani
Copy link
Member

topisani commented Aug 13, 2019

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
  • Better definition of what properties are, and where they are allowed
  • Consider passing the props objects to process calls, making stuff like parameter locking a lot easier.
@jmidt
Copy link
Member

jmidt commented Aug 18, 2019

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
Copy link
Member

jmidt commented Sep 2, 2019

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants