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

Typein and Modulator Bugs #2229

Closed
10 of 11 tasks
baconpaul opened this issue Jun 28, 2020 · 32 comments
Closed
10 of 11 tasks

Typein and Modulator Bugs #2229

baconpaul opened this issue Jun 28, 2020 · 32 comments
Labels
UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Milestone

Comments

@baconpaul
Copy link
Collaborator

baconpaul commented Jun 28, 2020

Leaving this one open while I think about that spacing issue, and to see if other bugs come in.

Typein and Modulator Bugs

  • Sin HiCut is in Semitons on my mac
  • Oh I didn't test the Decibel case carefully enough. Thank you @Jacky-Ligon - that's the send problem
  • Agree with spacing comments. Need to think about how to do this better. Pushed some padding for now.
  • Agree i need to fix FMRatio - I must have missed a custom case.
  • @mkruselj the "8123 seconds" or whatever gets subbed with "Forever" in the value and should get similarly subbed in the modulation.
  • Specious "+" on -ve values in the full linear case
  • Mixer shows old school. Generally "I skipped Decibels"
  • Sine Os High Cut displays differently then Low cut and with much higher values then anything else.
  • +/- -> -/+ on bipolars
  • M1 Ratio is custom and doesn't do the 5-way thing
  • M1 Ratio is custom and doesn't support types properly
baconpaul added a commit to baconpaul/surge that referenced this issue Jun 28, 2020
when we setType we want to init DisplayInfo back
to original state. This particularly was important
for things like the control flags, where we had
lingering values.

Addresses surge-synthesizer#2229
baconpaul added a commit that referenced this issue Jun 28, 2020
when we setType we want to init DisplayInfo back
to original state. This particularly was important
for things like the control flags, where we had
lingering values.

Addresses #2229
baconpaul added a commit to baconpaul/surge that referenced this issue Jun 28, 2020
Cleanup the code a bit. Restore "s" on time and "Hz" on absolutes

Addresses surge-synthesizer#2229
@ghost
Copy link

ghost commented Jun 28, 2020

Surge-NIGHTLY-2020-06-28-0afefa8 | Win-10, VST3i

Sine Osc Typein Issues
Assign Velocity or Keytrack, to Low or High Cut filters and move blue handle to right.
RC and typein 500 Hz.
Check result, which shows 513.750 Hz (and apparent rounding error).

image

Modulation Of Mixer Levels Typein Issue
Pull down Mixer Channel 1 to -inf dB.
Assign a Velocity, ENV, LFO, or SLFO modulation-source to positively modulate the Mixer Channel in from -INF to 0 dB.
As one moves the Mixer channel slider up, the leftmost value shows -INF, and the rightmost 0 dB.
RC on the blue handle and try to type in a new value for the rightmost value shown when setting the modulation initial range, and one will see that it is actually the leftmost value that is displayed for editing, rather than the right.
Try a type in value of -24 dB, and one will observe that the blue handle of the Mixer channel, rather than being set to -24 dB, is rather set to -INF.
In this scenario, it appears that the typein values are inverted, and is not possible to typein a value less than 0 dB without setting the control to -INF.

LICEcap

Surge-NIGHTLY-2020-06-27-4ec1fc6 | Windows-10, VST3i | Typein Issues
Filter Modulation Typein Issues
RC on a Filter handle, type in 500 Hz for the cutoff frequency.
Assign Velocity to positively modulate the cutoff frequency with a range of 500 Hz, to 5000 Hz.
RC on the blue handle, and typein 5000, then RC again to check the value...
Rather than the expected 5000 Hz, 5500 Hz is displayed instead.
This rounding error (?) seems to manifest with all of the other modulation-sources as well.

LICEcap

Send FX and Return FX Modulation Typein Issues
RC on any Send or Return FX slider, and typein -12 dB to set the initial center value of the control.
Assign a S-LFO to the control for bipolar modulation.
Move the blue modulation range handle to the right where the readout shows approximately -6 dB for the rightmost value, then RC and typein -6 dB, and observe that the blue handle swaps sides of the control center.
RC on the blue modulation range control, and notice that the displayed values show -7.12 ... -18 dB.

LICEcap

baconpaul added a commit that referenced this issue Jun 28, 2020
Cleanup the code a bit. Restore "s" on time and "Hz" on absolutes

Addresses #2229
baconpaul added a commit to baconpaul/surge that referenced this issue Jun 29, 2020
There's so many mod values
Lets show em all

Addresses surge-synthesizer#2229
@baconpaul
Copy link
Collaborator Author

Just for posterity: Those reports are all examples of the synth doing what I intended it to. So they weren't coding bugs. They were design-time UX bugs. New push coming soon which shows the data rather differently.

baconpaul added a commit that referenced this issue Jun 29, 2020
There's so many mod values
Lets show em all

Addresses #2229
@VincyZed
Copy link
Collaborator

image

@baconpaul baconpaul added this to the 1.7 0 milestone Jun 29, 2020
@baconpaul
Copy link
Collaborator Author

That gets fixed by adding a modulationCap to displayInfo for the freqs. Will push with others at end of day if other bugs come in.

@baconpaul
Copy link
Collaborator Author

Oh I accidentally pushed the fix to that with #2238

baconpaul added a commit to baconpaul/surge that referenced this issue Jun 29, 2020
1. Default to a minimal modulation display which is menu consistent
2. Make the expansive one a user optio
3. Default the -ve bar to green

Addresses surge-synthesizer#2229
@ghost
Copy link

ghost commented Jun 29, 2020

Surge-NIGHTLY-2020-06-29-9c42bd3 | Win-10, VST3i

FM3 Oscillator doesn't accept typeins for M1 or M2 Ratios

LICEcap

baconpaul added a commit that referenced this issue Jun 29, 2020
1. Default to a minimal modulation display which is menu consistent
2. Make the expansive one a user optio
3. Default the -ve bar to green

Addresses #2229
@baconpaul
Copy link
Collaborator Author

Oh thank you! That's a real bug indeed.

@ghost
Copy link

ghost commented Jun 29, 2020

UPDATE: Fixed in Surge-NIGHTLY-2020-06-29-b1c054b

Surge-NIGHTLY-2020-06-29-9c42bd3 | Win-10, VST3i

modulationCap issue for all oscillators with High Cut filters

Overlapping values and label when mapping Velocity modulation to High Cut filters, and ambiguous results with typeins of cutoff frequencies.

LICEcap

@baconpaul
Copy link
Collaborator Author

@Jacky-Ligon after a long conversation on slack, we/ve made some more changes simplifying the UI in the base case. Just GYI. There's a new nightly. Things are moving quickly. Apologies. This is hard!

@ghost
Copy link

ghost commented Jun 29, 2020

Confirming that the above is fixed in Surge-NIGHTLY-2020-06-29-b1c054b

@ghost
Copy link

ghost commented Jun 29, 2020

Surge-NIGHTLY-2020-06-29-b1c054b | Win-10, VST3i

Modulated FEG and AEG release times can be set up to 8,191 seconds.

LICEcap

@ghost
Copy link

ghost commented Jun 29, 2020

Surge-NIGHTLY-2020-06-29-b1c054b | Win-10, VST3i

Unexpected results when modulating FX Sends and Returns with S-LFO

There appears to be no correlation between slider-values, typein values, and values displayed in context menu after typeins, although the Returns make a little more sense than the Sends.

LICEcap

@mkruselj
Copy link
Collaborator

Modulated FEG and AEG release times can be set up to 8,191 seconds.

Not a bug. They can really go on for that long.

There appears to be no correlation between slider-values, typein values, and values displayed in context menu after typeins, although the Returns make a little more sense than the Sends.

Another issue here is that these don't show the information in the same way that other parameters do - there is no 3rd line with deltas when "Modulation popups show bounds" option is enabled. But also yes I see the discrepancy between the delta shown in the menu/popup and the value in typein.

@mkruselj
Copy link
Collaborator

image

Could probably give more space to the base value in the middle.

@baconpaul
Copy link
Collaborator Author

baconpaul commented Jun 29, 2020

Thank you all.

@mkruselj mkruselj added the UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc. label Jun 29, 2020
@K0rrid0r
Copy link
Collaborator

K0rrid0r commented Jun 30, 2020

116
"+-" is shown on negative values in the oscillator window.

126
"+-" shown on pitch slider

117
differences in display in the mixer, should be shown as Gain info is.

118
Phase / Shuffle
Amplitude
Deform
shows "+-"

119
S shows "+-"
R overlaps the numbers. lower the number of decimals?

120
Filter Keytracking displays "+-"
Waveshaper displays "+-"

121
Polymode displays "+-"

122
Resonance in both filters displays "+-"
F1 F2 slider displays "+-"

123
F1 F2 slider displays "+-"
Amp EG S displays "+-"
Gain displays "+-"

124
FM Depth displays "+-"
Feedback displays "+-"
Width displays "+-"
Pan displays "+-"
Send 1 displays other kind of window that should be the same as the other ones.
Send 2 displays other kind of window that should be the same as the other ones.

125
Master volume displays "+-"
Send 1 displays other kind of window that should be the same as the other ones.
Send 2 displays other kind of window that should be the same as the other ones.

127
SINE
+- on negative values on:
Pitch
Feedback
Unison Detune
High Cut displays differently then Low cut and with much higher values then anything else.

128
WINDOW
+- on negative values on:
Pitch
Morph
Formant
Unison Detune
High Cut displays differently then Low cut and with much higher values then anything else.

129
WAVETABLE
+- on negative values on all sliders

130
FM2
+- on negative values on all sliders

131
FM3
+- on negative values on:
Pitch
M1 Amount
M2 Amount
M3 Amount
Feedback
M1 Ratio displays a different window then the rest of the sliders
M2 Ratio displays a different window then the rest of the sliders

132
S&H Oscillator
+- on negative values on:
Pitch
Correlation
Width
Sync
Unison Detune
High Cut displays differently then Low cut and with much higher values then anything else.

133
Audio Input Scene A
+- on negative values on:
Pitch
Audio In Channel
Audio In Gain
High Cut displays differently then Low cut and with much higher values then anything else.

134
Audio Input Scene B
+- on negative values on all sliders
High Cut displays differently then Low cut and with much higher values then anything else.

@baconpaul
Copy link
Collaborator Author

This is amazingly useful feedback @K0rrid0r and @Jacky-Ligon both - thank you very much

@baconpaul
Copy link
Collaborator Author

I have consolidated this feedback at the top of the issue and will work from that list. Thank you.

@baconpaul
Copy link
Collaborator Author

@K0rrid0r in my test, hi cut and low cut show the exact same. all the frequencies have a cap though. What's the bug exactly?

@K0rrid0r
Copy link
Collaborator

Look at the difference on display, is that really correct?

136

@mkruselj
Copy link
Collaborator

Yes, that is indeed correct.

@K0rrid0r
Copy link
Collaborator

I see it now. i guess too much info about everything at this moment.

@baconpaul
Copy link
Collaborator Author

well also some pretty poor spacing makes it hard to read.

baconpaul added a commit to baconpaul/surge that referenced this issue Jun 30, 2020
1. +/- errors in various spots
2. Implement Decibel mode properly
3. Implement ct_fmration properly
4. Handle "forever" case in modulation
5. Add some spacing

Addresses surge-synthesizer#2229
baconpaul added a commit that referenced this issue Jun 30, 2020
1. +/- errors in various spots
2. Implement Decibel mode properly
3. Implement ct_fmration properly
4. Handle "forever" case in modulation
5. Add some spacing

Addresses #2229
@K0rrid0r
Copy link
Collaborator

K0rrid0r commented Jul 1, 2020

These are regarding the normal display mode and not the ""Modulation popups shows bounds" mode.

145
The two F1 F2 filter sections displays different values where as the ones in waveshaper are correct with +/- 200
F1 and F2 in Filter EG displays +/- 192

146
Mixer section is not displaying negative modulation values meanwhile the modulation actually is going there.
Only Gain works properly.

147
Filter EG
only S shows negative modulation properly

148
Amp EG
only S shows negative modulation properly

baconpaul added a commit to baconpaul/surge that referenced this issue Jul 1, 2020
the minvalue is the actual display value of the minimum.
So it is a2^bx or minvalue
We had coded a2^bx or a2^bminvalue
so env times had a specious display min of 1.00

Addresses surge-synthesizer#2229
Addresses surge-synthesizer#2259
baconpaul added a commit that referenced this issue Jul 1, 2020
the minvalue is the actual display value of the minimum.
So it is a2^bx or minvalue
We had coded a2^bx or a2^bminvalue
so env times had a specious display min of 1.00

Addresses #2229
Addresses #2259
@baconpaul
Copy link
Collaborator Author

So @K0rrid0r each of these are on purpose. It doesn't mean they are right but I'm not quite sure they are bugs. Let me explain

  1. We cap all gains at -192db. The mixer gain has a range which goes down that low so if you modulate below -192db you end up getting no extra modulation. Since the overarching gain has a range of +/-48db you can fully modulate down by -96 and not hit the -192; that's why it shows

  2. The reason A, D, and R have their lower bound at zero is they are times. You can't have a negative time attack. So it's the same thing - we are running into a bound and showing it properly.

  3. The KeyTrack one is more irritating. The display is correct but the keytrack F1/F2 is in units of percent, and the Filter F1/F2 is in units of semitones. The reason for this (in the code) is because the keytrack is multiplied by key number to get the offset (which is in pitches), but the envelope is not. So this is "right but confusing as all heck". However the display does show semitones for the F1/F2 in env and percent for the F1/F2 in keytrack, so the UI correctly shows this. It is very strange though that the two items labeled the same mean different things (in one case, how much to scale the keytrack to apply to the cutoff, and in the second case, how many pitches to multiply the envelope by to apply to the cutoff).

So I'm not quite sure what to fix. I think the first is the only one where we could do anything (the thing to do would be to not cap the mod distances) and I'm happy to do that, but I think the second two are correct.

Thoughts?

@K0rrid0r
Copy link
Collaborator

K0rrid0r commented Jul 1, 2020

thanks for clarification. lets see what others may think, i was just used to see negative modulations that's all :)

@ghost
Copy link

ghost commented Jul 1, 2020

Surge-NIGHTLY-2020-07-01-c84b66a | Win-10, VST3i

Sends and Returns FX Modulation Typeins scale tracks and handles differently with the same input values

LICEcap

@baconpaul
Copy link
Collaborator Author

Oh @mkruselj didn't you find some place where that control was manually adjusting ranges in Parameter space? That ugly thing we found that makes the send have a different max than the return?

@baconpaul
Copy link
Collaborator Author

Anyway @Jacky-Ligon the reason for this is (on purpose) the send and return have different maxes so they will scale differently.

Why exactly that was done on purpose, and the gross way it was implemented, is an interesting question. But this isn't a bug, it's a feature. Which we may want to fix! But the rendering is I think correct.

@mkruselj
Copy link
Collaborator

mkruselj commented Jul 2, 2020

Oh @mkruselj didn't you find some place where that control was manually adjusting ranges in Parameter space? That ugly thing we found that makes the send have a different max than the return?

Yes I did, now it has its own ctype (ct_sendlevel), previously sends just used ct_amplitude and had a hacky multiplication in SurgePatch. Returns always used ct_amplitude straight up, IIRC.

@mkruselj
Copy link
Collaborator

mkruselj commented Jul 2, 2020

Also, I think it's good that modulation amounts are capped. If your osc volume is already at -inf (which means complete silence), modulating that with a negative value is... more negative infinity? Makes no sense. So showing 0 dB is good here. Ditto for envelope times not going below 0.000 s. I don't think it should change.

@baconpaul
Copy link
Collaborator Author

Yeah on @Jacky-Ligon thing I did a double check to make sure we had handled all the max/min differently. We had and the sliders are consistent with their ranges, even though their ranges are different.

So my instinct is: We have this correct. There's some parameters which are weird in surge (the differences in keytrack meaning; the differences in range) but the UI and type-ins correctly represent those strangenesses.

I'm going to close this ticket as resolved the. We can easily reopen it in the beta period if we find something.

And most importantly: @Jacky-Ligon and @K0rrid0r thank you so much for your work with @mkruselj and me on designing and testing this feature. This was a tricky one and I'm super happy with where we landed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
UX Issues related to user experience (UX) - mouse, touch, keyboard, MIDI inputs, etc.
Projects
None yet
Development

No branches or pull requests

4 participants