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

Index Modulators (sub-issue of Formula Modulator) #4868

Closed
6 of 8 tasks
baconpaul opened this issue Aug 18, 2021 · 1 comment · Fixed by #4878
Closed
6 of 8 tasks

Index Modulators (sub-issue of Formula Modulator) #4868

baconpaul opened this issue Aug 18, 2021 · 1 comment · Fixed by #4878
Labels
Modulation Modulation related issues
Milestone

Comments

@baconpaul
Copy link
Collaborator

baconpaul commented Aug 18, 2021

The formula modulator can produce vector valued outputs and so, in theory, the modulator can be vector valued. You then want to route different indices etc...

I started this in 64c4a41 but never wrote it up in an issue so this does that

first the get_output has an index on the modulation source and there's an index count. Cool. That's there now

In order, probably as several commits

  • Step 1: get to a point where the APIs are complete
    • Add a source_id to ModulationRouting and stream it
    • Make the construction of local copy use the routing source_id
    • For each of the getModRouting and the like calls in SurgeSynthesizer add an index argument (and while at it make them const)
  • Step 2: Make the formula modulator create a vector output, even if you can't route it with the UI
    • Note I can construct it by hand with various hacks to the xml and data structures if I save a patch to test
  • Step 3: Update the UI with a hamburger; consider the alternates issue along the way. Clean up.
    • especially important is what happens if I toggle from formula to sin or what not; do we collapse it to single value? I think yes (that is, the other modulation sources just ignore index rather than throw an error) but this is up in the air.
@baconpaul baconpaul added this to the Surge XT 1.0 milestone Aug 18, 2021
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 18, 2021
Addresses surge-synthesizer#4868

1. Add a source index to modrouting and stream it
2. Use that modrouting to lookup values in processing (but not in all the 'is' or 'get' apis)
3. Const up a bunch of stuff along the way (workign on surge-synthesizer#3808)
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 19, 2021
Addresses surge-synthesizer#4868

1. Add a source index to modrouting and stream it
2. Use that modrouting to lookup values in processing (but not in all the 'is' or 'get' apis)
3. Const up a bunch of stuff along the way (workign on surge-synthesizer#3808)
4. Plumbing through vector value to formula mod
5. Modify the UI so that by menus you can map formula modulators but not
   by click-to-arm yet.
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 19, 2021
Addresses surge-synthesizer#4868

1. Add a source index to modrouting and stream it
2. Use that modrouting to lookup values in processing (but not in all the 'is' or 'get' apis)
3. Const up a bunch of stuff along the way (workign on surge-synthesizer#3808)
4. Plumbing through vector value to formula mod
5. Modify the UI so that by menus you can map formula modulators but not
   by click-to-arm yet.
baconpaul added a commit that referenced this issue Aug 19, 2021
Addresses #4868

1. Add a source index to modrouting and stream it
2. Use that modrouting to lookup values in processing (but not in all the 'is' or 'get' apis)
3. Const up a bunch of stuff along the way (workign on #3808)
4. Plumbing through vector value to formula mod
5. Modify the UI so that by menus you can map formula modulators but not
   by click-to-arm yet.
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 19, 2021
The Random Bi and Uni polar have a normally distributed output
as well as a uniform one, implemented as modulator indices.
This is useful, but also serves as a 'second implementation'
test of my modulator index code and as such has a couple of
tiny tweaks and fixes from adding a second, addresseing surge-synthesizer#4868
@baconpaul
Copy link
Collaborator Author

I bet this issue will close #2678 along the way

baconpaul added a commit that referenced this issue Aug 19, 2021
The Random Bi and Uni polar have a normally distributed output
as well as a uniform one, implemented as modulator indices.
This is useful, but also serves as a 'second implementation'
test of my modulator index code and as such has a couple of
tiny tweaks and fixes from adding a second, addresseing #4868
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 20, 2021
WIP but when done will:
Closes surge-synthesizer#2678
Closes surge-synthesizer#4868

Rework the alternates system and merge it with indexed modulators

1. A rational data structure for the grid layout, including an
   alternates stack at each grid point.
baconpaul added a commit to baconpaul/surge that referenced this issue Aug 20, 2021
Closes surge-synthesizer#2678
Closes surge-synthesizer#4868

Rework the alternates system and merge it with indexed modulators

1. A rational data structure for the grid layout, including an
   alternates stack at each grid point.
2. The UI widget now has a vector of possibilities
3. If that vector size > 1 it shows a burger and lets you swap
4. Which updates hte internal state of the SGE properly
baconpaul added a commit that referenced this issue Aug 20, 2021
Closes #2678
Closes #4868

Rework the alternates system and merge it with indexed modulators

1. A rational data structure for the grid layout, including an
   alternates stack at each grid point.
2. The UI widget now has a vector of possibilities
3. If that vector size > 1 it shows a burger and lets you swap
4. Which updates hte internal state of the SGE properly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Modulation Modulation related issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant