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

Glissando Retrigger Tuning Behavior #5483

Closed
baconpaul opened this issue Nov 25, 2021 · 2 comments · Fixed by #5498
Closed

Glissando Retrigger Tuning Behavior #5483

baconpaul opened this issue Nov 25, 2021 · 2 comments · Fixed by #5498
Labels
Bug Report Item submitted using the Bug Report template Tuning Non-standard tuning extensions
Milestone

Comments

@baconpaul
Copy link
Collaborator

Related finding for both microtuning modes: With Glissando and Retrigger At Scale Degrees checked, the degrees appear to be related to 12-equal. Tested with ED2-31 and a glide across 31 MIDI Notes, plays 12 retriggered notes.

In RETUNE_AT_MIDI/MTS mode portamento is in key space so retrievers when you run over a key. If you work in RETUNE_AFTER_MODULATION it should work. But we should open a separate issue, since I have this particular one closed. I'll do that now.

This one has been there since 1.9; it may be tricky to fix. The code in question is this

 if (scene->portamento.porta_retrigger)
            if (floor(state.pkey + 0.5) != state.priorpkey)
            {
                state.priorpkey = floor(state.pkey + 0.5);
                state.porta_doretrigger = true;
            }

which in retune at midi and its mode has to be retuned-key-aware not key-aware

@ztnl

@baconpaul baconpaul added Tuning Non-standard tuning extensions Bug Report Item submitted using the Bug Report template labels Nov 25, 2021
@baconpaul baconpaul added this to the Surge XT 1.0 milestone Nov 25, 2021
@baconpaul
Copy link
Collaborator Author

OK this one turns out to be a bit tricky because there's a hard calculation to do

basically in MTS/Retun@Midi it sweeps keyboard in 12tet space and remaps keys
That means I need to do the calculation of: for this 12tet key what's the underlying midi note key.
That's an inverse lookup (this frequency is between these notes in the scale)
and since the scale isn't monotonic my only choice is really a roughly linear search
but luckily i have the prior starting point
just some tricky code
and tricky code i have to write differently for MTS than native

let me see if i can make native work first.

@baconpaul
Copy link
Collaborator Author

OK got it
it is slightly inefficient but has to be that way alas.

baconpaul added a commit to baconpaul/surge that referenced this issue Nov 25, 2021
Previously it hit the internal 12TET notes

Closes surge-synthesizer#5483
baconpaul added a commit that referenced this issue Nov 25, 2021
Previously it hit the internal 12TET notes

Closes #5483
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Report Item submitted using the Bug Report template Tuning Non-standard tuning extensions
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant