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

wish: free envelope #179

Open
wayfu opened this issue Nov 2, 2024 · 4 comments
Open

wish: free envelope #179

wayfu opened this issue Nov 2, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@wayfu
Copy link

wayfu commented Nov 2, 2024

a simple x/y field with a length parameter and 2+ nodes (one at time 0, one at time 1)- with more nodes addable.

@vsariola vsariola added the enhancement New feature or request label Nov 2, 2024
@vsariola
Copy link
Owner

vsariola commented Nov 2, 2024

We discussed this with qm210 and the more universal unit (& easier to implement) might be "lookup table": you would draw a linearly interpolated curve with arbitrary number of XY points. You could then make a normal envelope with practically infinite attack and sustain at 0.5, so it effectively goes from 1 -> 0.5 (sustain) -> 0. Then just draw the lookup table shape to whatever you want to happen during decay and during release.

@vsariola
Copy link
Owner

vsariola commented Nov 2, 2024

Such a LUT would also be useful for arbitrary waveshaping & distortion

@wayfu
Copy link
Author

wayfu commented Nov 2, 2024

i don't think i understand completely... isn't the arbitrary number of XY points exactly what i was describing?

@vsariola
Copy link
Owner

vsariola commented Nov 2, 2024

Yes, but instead of envelope, it would take take signal as input and treat it as a mapping. So, instead of just outputting envelopes, it could take any signal e.g. oscillator or envelope as its input. If the input to the unit is signal x, it would output f(x), where f is a piecewise linear function.

You could then input time into it (from an envelope) to get what you want. But you could also input an oscillator to it and e.g. use it to squash the peaks of an oscillator for distortion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants