Coder Social home page Coder Social logo

Comments (7)

cjunekim avatar cjunekim commented on June 8, 2024

Update. I figured that this is not about feedback transformation. It's about Track FX preset.

When the target is a track mute button, the feedback works expectedly. But when the target is Track FX preset, it behaves strangely.

I have investigated inside via a virtual MIDI cable(BTW, it would be helpful if realearn provided this logging). When I press a midi button, the feedback comes out only when the preset become #20, not coming back to preset #0. However, with a track mute button as the target, the feedback comes out in both times. All the Mode Type is toggle.

from realearn.

cjunekim avatar cjunekim commented on June 8, 2024

Update2. I learned more about this issue.

There is also some issue with feedback transformation as well.

Pick a midi button(momentary) and make it as a source, and add reacomp and set its Lowpass to the target. The Mode could be Absolute for example. As you are holding down the button, the Lowpass will go to its maximum at 20000hz, and will go back to 0hz when the button is released. It works okay.

When Target's Min is at 0% and Max is at any number between 0% to 50%, and the feedback transformation string is set to y=1-x, the feedback value becomes very strange.

The feedback output is always 127, which I checked via a virtual MIDI cable. Always, whether you press or release the button. You could change the Target Max to 49%, 30%, 20% or anything and the feedback output stays the same at 127. However, when you set the transformation string to y=x, it works as expected.

from realearn.

helgoboss avatar helgoboss commented on June 8, 2024

I'll try this source/target combination. However, there's something wrong with your feedback transformation formulas:

x = (y>1) ?1 : 0

Neither x nor y should ever be greater than 1. It's supposed to be always between 0 and 1. So with your formula you will always end up with 0. Which means "Source Min" will be sent to your controller, no matter what's the actual target value.

y=1-x

This doesn't do anything. In feedback transformation formulas you need to assign a value to x, not y (because x represents the resulting normalized feedback value and y the current normalized target value). Best have a look in the user guide, it's explained there.

Concerning logging MIDI feedback, you don't have to deal with virtual MIDI cables. Just choose "FX output" as MIDI output and slap a Cockos ReaControlMIDI below it (which lets you show the log).

from realearn.

cjunekim avatar cjunekim commented on June 8, 2024

Yeah. At first, I misunderstood the range of x and y. But my second and third comments are written after that correction of understanding.

y=1-x was my typo when writing the comment. It actually was x=1-y.

When the target max was set at 50% or lower, the feedback behaves strangely(always 127). Try it with a midi controller fader mapped to a slider.

All I found was, to correct the misbehavior, I had to modify my formula. In order to acheive the feedback reversed(127 to 0), I had to do,

x=1-y-1+TM

instead of simply using x=1-y.

Here, TM stands for Target Max in the form of 0..1.

Here is a screencast:

Image of bug

from realearn.

cjunekim avatar cjunekim commented on June 8, 2024

Any updates on this issue?

from realearn.

helgoboss avatar helgoboss commented on June 8, 2024

Looking into it right now. Understood the issue.

from realearn.

helgoboss avatar helgoboss commented on June 8, 2024

This was indeed a bug. The processing order was inconsistent. The bug is fixed in upcoming v1.12.0-pre8.

The control processing order is:

  1. Apply source interval
  2. Apply transformation
  3. Apply target interval
  4. Apply reverse
  5. Apply rounding

The old feedback processing order was:

  1. Apply reverse
  2. Apply transformation
  3. Apply target interval
  4. Apply source interval

The new feedback processing order is:

  1. Apply reverse
  2. Apply target interval
  3. Apply transformation
  4. Apply source interval

Latter order is consistent with control processing order (exactly the reverse) and makes the transformation fomula work on the complete unit interval (0..1).

Please note that this will change the behavior of existing feedback transformation formulas if used in combination with source or target interval restrictions, so they might need some adjustment. Sorry for any inconvenience.

@cjunekim Good catch!

from realearn.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.