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

Modulation mappers, mixers and lag #1384

Open
mkruselj opened this issue Dec 1, 2019 · 5 comments
Open

Modulation mappers, mixers and lag #1384

mkruselj opened this issue Dec 1, 2019 · 5 comments
Labels
Feature Request New feature request Modulation Modulation related issues Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Milestone

Comments

@mkruselj
Copy link
Collaborator

mkruselj commented Dec 1, 2019

This is a sorely missing feature in Surge, compared to some other powerhouse synths.

Basically, modulation mapper would be something like MMap module in Zebra. You can have any number of steps from 2 to 128, and you can then draw in your curve. It would take in a modulator which it would reshape and provide that as output, behaving as an additional modulator.

There could be a number of modes here. One mode could be Key, which would map the modmapper table to all the keys and then use that as its output value. In this mode modmapper acts on its own and doesn't take input modulator into account. Example: you set the shaper to 6 steps, with different values. These 6 steps map to MIDI notes 0-5, then wrap around for MIDI notes 6-11, and so on. This could be considered as a sort of microtuning table for anything you want to modulate, which is pretty damn spectacular.

Another mode could be Increment, which basically just round-robins throughout the modmapper table on every new key press. There should be a way to reset this increment back to 0 somehow - maybe on transport start, but also via an explicit MIDI message (say MIDI note 0?).

And finally, there would be the remap mode. Which is basically remapping the input modulator to the shape of the modmapper. Takes in modulator with range -1 ... 1 and outputs the same, depending on modmapper table.

Coupling this with lag also makes sense, to smoothen out the steppy nature of the modmappers. Lag should have a few modes too: linear, exponential, and maybe also separate times for attack (going from lower to higher value) and release (going from higher to lower value)?

Oh yeah, almost forgot. There should be some way to have some editing actions on the modmapper. Generating curves from math formulae, maybe? Saving/loading presets is a must. Then some options to carry out over the modmapper itself.

Here's two pages from Zebra's manual:

image

@baconpaul baconpaul added this to the Currently Unscheduled milestone Dec 7, 2019
@mkruselj mkruselj added the Modulation Modulation related issues label Feb 5, 2020
@mkruselj
Copy link
Collaborator Author

Partially related to #868, in a way.

@mkruselj mkruselj added the Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts label Jun 18, 2020
@mkruselj mkruselj modified the milestones: Currently Unscheduled, No earlier than 1.8; Currently Unscheduled Jun 18, 2020
@mkruselj mkruselj added the Feature Request New feature request label Nov 9, 2020
@mkruselj mkruselj modified the milestones: After parameter list expansion, 1.9.0 Nov 14, 2020
@mkruselj mkruselj modified the milestones: 1.9.0, Surge XT Jan 24, 2021
@mkruselj mkruselj modified the milestones: Surge XT, After parameter list expansion Feb 4, 2021
@mkruselj mkruselj modified the milestones: After parameter list expansion, After Surge XT 1.0 Mar 4, 2021
@mkruselj mkruselj changed the title Modulation shaper and lag Modulation mappers, mixers and lag Mar 18, 2021
@mkruselj
Copy link
Collaborator Author

mkruselj commented Mar 18, 2021

Also adding info about mod mixers (MMix module in Zebra).

image

We can probably expand on this concept:

  • Have more than 3 inputs (but 4 should be more than enough IMHO)
  • Have different operations between the inputs (+, -, *, modulo, min, max, AND, OR, XOR...)
  • Module presets
  • ...?

Also here's modifier list from Waldorf Microwave II:

image

@mkruselj
Copy link
Collaborator Author

Three key insights from @baconpaul:

  1. Not all patch params are exposed as vst params
  2. A modmapper has one param and a modmixer has n
  3. A modmapper and modmixer are themselves modulators

@baconpaul
Copy link
Collaborator

Just a note to self from #6929 - remember note-based quantization as a mapper too

@Andreya-Autumn
Copy link
Collaborator

Adding a note here, instead of opening a separate issue, just don't wanna forget this again:

The 1 mod range=1 octave paradigm of the keytracking modulator works great for some things, but is very annoying for others. Say I have a bass sound and I want it to get progressively less bright across its intended playing range. I can easily find my intended modulation range by ear, just by moving a slider around while playing my intended highest-lowest notes. But the actual slider position and keytrack mod range which then gives my intended results looks nothing like what I dialed in.

The fact that you can't currently change the keytrack root is at the heart of this issue, so let's see if we can find a nice intuitive UX for that in XT2. Some intuitive way to say: "The mod range goes from this note to that note" is what I'm looking for. Maybe with a choice of what to do outide that range.

You could make this a mode of mod mapper. Or maybe give keytrack a little UI of its own, since it's kinda specific. Perhaps pulling in some graphics from SCXT? IDK, just throwing some ideas in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature request Modulation Modulation related issues Requires Param List Change To accomplish this issue we need to be able to modify the DAW params in all our hosts
Projects
None yet
Development

No branches or pull requests

3 participants