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

Logarithmic vs linear, and automation, uncanny behavior #6954

Open
M4rotte opened this issue Oct 31, 2023 · 2 comments
Open

Logarithmic vs linear, and automation, uncanny behavior #6954

M4rotte opened this issue Oct 31, 2023 · 2 comments
Labels

Comments

@M4rotte
Copy link

M4rotte commented Oct 31, 2023

Hi, I search the tracker but found nothing. I’m not even sure if it’s a bug or a feature… You tell me.

When a knob is set to logarithmic scale and you record a movement in an automation track, that’s the logarithmic values which are recorded, and that’s fine. But, then you play back the automation, you have to put back the knob to linear mode, or else, you get logarithm of logarithmic values!

To reproduce, get any knob which can be switched to linear or logarithmic, put it in logarithmic mode. Create an automation track in the song editor, record some moves of the knob, then play it back.

Expected behavior is to get the same value you recorded when you play it back without minding if the knob is linear or logarithmic.

Actual behavior is that’s the values which are rendered are log(log(x)), unless you put back the knob to linear mode before playing back the automation.

LMMS 1.3.0-alpha.1.445+gcd018c04f
(Linux x86_64, Qt 5.15.8, GCC 12.2.0)

I said I wasn’t sure it wasn’t a feature, because with the actual behavior you may move a knob which set logarithmic values and then get the log(log(c)) using the automation. But I’m not sure this could be useful, but sure is disconcerting at first (and not a problem once you know it).

@M4rotte M4rotte added the bug label Oct 31, 2023
@michaelgregorius
Copy link
Contributor

This seems like a bug to me. The following project can be used to reproduce the problem:
6954-LinearVsLogBug.zip

In the attached project the coarse tuning of the oscillator is automated to go up an octave, then down an octave and then back to the original tuning. This is also shown in the automation editor with the +12/-12 half steps.

Steps to reproduce:

  1. Open the project.
  2. Play the "song".
  3. Open the instrument view of the Triple Oscillator.
  4. Set the knob for the coarse tuning ("CRS") of "OSC1" to logarithmic.
  5. Play the song again.

Actual result: different renditions are played. When set to logarithmic the octaves are not reached although the automation editor still shows that +12/-12 half steps are automated.

Expected result: the renditions should sound the same.

My expectation would be that each parameter has a minimum and a maximum value and that the automation allows me to change the values within this range without any interpretation of the values in this range.

Setting the knob to logarithmic should only affect how the knob maps its values to the parameter. It seems however that the automation does not simply automate the parameter according to its range but that in fact it automates the parameter via the knob itself.

So instead of [automation] -> [parameter] it seems to be [automation] -> [knob] -> [parameter]. Hence if you change the behavior/mapping of the knob you change the mapping from automation to parameter.

@michaelgregorius
Copy link
Contributor

Issue #6209 seems to report a very similar issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants