Macro Scaling Does Not Work For Parameters With Units

Bug Description

A Macro value of 20% should lead to a 20% difference in the target parameter’s value. That does work for parameters wirth a value range between 0…100.

For parameters in Hz or seconds, that is wildly off, e.g. for LFO speed, Decay or Release, or Filter Cutoff.

For Osc Value that is broken in a different way, see the separate bug on that. → Inconsistent Response of Osc. Volume to Macros, Velocity and Pressure (AT)

Examples:

  • When I set the cutoff to 1000Hz, and the frequency where my sound is no longer audible is 260Hz, a bipolar value will kill the sound with an amount of 7%, and a unipolar macro will kill the sound at -4%. However, 740Hz (the difference between 260Hz and 1kHz is neither 7% nor 4%, but is 74% of 1000Hz).
  • When I set Decay to 1s, a macro of -6% reduces it to .5s,. which is in fact 50% of 1s
  • When I set an LFO to 1 Hz, a macro value of 2% scales it to 2Hz.

Steps to Reproduce

see above

Occurrence / Frequency

Always

Found in Firmware

  • Version: 1.0.1
  • Build: 1459

Attachments

This is something that bothers me too since the day I’ve got my Play+.
I guess, the official answer to this would be that the scaling is linear and the whole range is:

  • for cutoff it is 0hz…20kHz
  • for decay it is 0s…10s
  • for LFO rate it’s 0Hz…100Hz.

So 1% range for cutoff is 200hz. 1% for decay is 0.1sec. 1% for LFO rate is 1Hz.
Parameters values you set in your patch are not taken into account whatsover. 10% for cutoff is always 2kHz in the both directions whether you set cutoff to 500Hz or 10kHz.
The same logic applies to modulation as well. This makes my patches way harder to tweak and manage.

I think at least cutoff modulation/macro should be logarithmic and based on pitch rather than on frequency. If I set cutoff to 500Hz and modulate it with an LFO, it should go to 2kHz up and to 500Hz down rather than to 0Hz down. And if I increase cutoff to 2kHz, the range should also change to 1kHz…4kHz.

Yes, scaling its in percentage points and not in percent.

But then the bug is the that the unit is wrong, the unit of percentage points is pp , p.p. , or %pt., but not %.

I guess the root cause is that all parameters (maybe with the exception of Osc. Volume) have a resolution of 100 steps that is mapped to the actual range of the parameter.

True.

Good point. Maybe that linear response is also why I find that there is something extremely odd in the response to changes in volume, which that makes both velocity and the mixer much harder to use than on other devices.

Hi @Lizard-of-Oz , thanks for bringing this up, but this is how the Macro system was designed. I’ll try to explain in two simple examples below…

Generally
Output Value = Current Parameter Value + (Current Macro Value * Macro Amount )

  • Decay at 1s is 10% of total range (10s). If Macro Amount is -6% and Macro Current Value is full (100%), then Output Value will be 0.10 + (-0.06 * 1.00) = 0.04 which is actually 0.4s
  • LFO at 1Hz is 1% of total range (100Hz). If Macro Amount is 2% and Macro Current Value is full (100%), then Output Value will be 0.01 + (0.02 * 1.00) = 0.03 which is actually 3Hz

This is correct behaviour by design. Please let me know if that helps :slight_smile:

Hey, thanks for replying, even though it is two months after I posted the bug, and also two months after I returned the Synth.

Yeah, I guess that that is what I meant when I suggested above the value is in percentage points.

However, I don’t think this would explain the differences I observed between unipolar and bipolar macros, because by your explanation unipolar and bipolar should only affect the possible values of the Macro (0…1 vs. –1…+1), but not the scaling, and therefore there should be no difference. Here’s what I observed:

Any idea why that might be?

Anyway, if that is how it is supposed to work, I think we both agree that this cannot be understood from the way it is explained in the handbook (1v1a, p. 87):

“The parameter range can be adjusted by turning the parameter knob
while the parameter is highlighted in the macro page. Example, adjust a
knob to set the ‘Sub-Mix’ between -200% and +200%. Note that this
refers to the range of control for the parameter assigned to the macro
and is not the setting for the parameter itself.”

May I suggest something like this as a starting point for a more clear explanation:

For each parameter affected by a macro, you can define a “value” that controls by how much the macro affects that parameter, and also in which direction. To set that value, turn (Screen) to select a parameter on the macro page, then turn any parameter knob to adjust the value between 0…100%.
When the value is set to 100% (or -100%), the macro knob will cover the full range of the selected parameter, when set to 10% (or -10%), the macro can only add (or subtract) 10% of that range to that parameter’s current value. A positive value will add to the parameter’s value when you turn a macro control clockwise, a while a negative value would subtract from it.

Bipolar Macro
1000Hz is 5% or full range (20000Hz). Mind you that bipolar goes from -0.5 to +0.5, while unipolar goes from 0 to +1.0. If Macro Amount is -7% for bipolar and Macro Current Value is -50%, then Output Value will be 0.05 - (0.07 * 0.5) = 0.015 which is 300Hz

Unipolar Macro
If unipolar Macro Amount is -4% and Macro Current Value is 100%, then Output Value will be 0.05 + (-0.04 * 1.0) = 0.01 which is 200Hz

I agree. I will tag our manual author @synthdawg and ask him to improve it. Thank you for your support and efforts!

Well, that’s unexpected. I guess that should be explained in the manual, too.

@synthdawg another comment for the manual :slight_smile:

@Lizard-of-Oz thanks again!

Miropoly, with all due respect one of the reasons why some of my Polyend products are collecting dust is the kind of answer / closure you’ve provided. I don’t sell them, I hope that somewhere in the future enough people complain and one of the Polyend’s Devs will fix this once for ever and all synth aware products that are not discontinued would get upgrade to macro core logic. Every product using the Macro & Synth has this problem. The problem of “Knob to Value” Translation. Obviously, The most complains are in the macro department b/c that is where the math breaks the most. Unipolar bipolar will not solve this.

Solution:
One of the sleek solution would be to hold the “curves/parameters” on the SDcard. This would be one or more files with knob curves for all these nonlinear parameters. A json file(s) where we could change behavior of knob to value translation.

The beauty of this solution is that if nobody touches this file or files all the presets utilizing macro functions would not break with a future firmware upgrade. This is very important b/c rewriting preset/project/scene files to keep the same sound between firmware upgrades would not require resources on the Polyend side to deal with.

I will not go to math and I don’t assume many people have masters in audio electronics but if you properly translate a position of knob (in case of the synth product a size of the bar indicating value on display) to a logarithmic /exponential value that would solve all your % problems discussed here. Problems adding more than one destination to a modulated parameter

Here are some rough (did not use calc) examples :

Volume/Send Levels  
Knob/value	Normal-ed value used in Engine/Mix routine
0%			0.0
25%			0.4		
50%			0.7
75%			0.9
100%	1.0


Filter CutOff	Translation to Frequency 
0%			10Hz
25%			200Hz	
50%			500Hz
75%			2kHz
100%		10KHz


LFO Rate	Translation to Frequency: 
0%			0.05Hz
25%			.2Hz
50%			1Hz
75%			20Hz
100%		100Hz

That is all; A two extra tables in your firmware or a simplified fast Log/Exp algos

Once you’d go with this you’d find two things:
a) Adding more than one destination to a parameter will not break the %. Meaning adding/subtracting would start to work. You could also control the ratio between a few modulation sources too, by simply adding a constant to the json curve file(see above)

b) There a bunch of other parameters that could benefit with this NON-linear translation

PS: I would love to get this to play+. Half of my time is wasted by tweaking un-controlled sound jump on sequencer steps/locks would go away. Better yet. YT ppl like BoBeats would not have a …“needs more firmware love” in a title of his polyend review videos

1 Like

Hi @george-8461 , first of all I’m sorry to hear your Polyend devices are gathering dust. Thank you for caring and sharing your experience and opinion here. If you want to see the design changed, the best chance is to open a Wishlist report. Thanks for your support.

Thank you for this suggestion.

Can you share more about the process on how and when any of the currently 80 draft wishes for the Synth will be approved as a “real” wishes people can actually vote on?

I have added a wish for this as suggested, feel free to comment or edit.

Hi @Lizard-of-Oz , thanks for your question.

You can find out more info about how here. As for when, we learned from past and don’t give future estimations, I’m sorry.

Thanks for your contributions!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.