1. Hi everyone,

    Apple just released Logic Pro 10.5 for MacOS 10.15. We found out that Massive X, Crush Pack, Mod Pack, Replika, and Replika XT will crash.

    Our teams are currently working on a fix, and we hope to have this out to you as soon as we can!

    Best wishes, 
    The NI Team

    Dismiss Notice

WTF patent insanity!

Discussion in 'Building With Reaktor' started by colB, Mar 13, 2020.

  1. colB

    colB NI Product Owner

    Messages:
    3,228
    According to the book "Designing Software Synthesizer Plug-Ins in C++: For RackAFX, VST3, and Audio", at the bottom of page 183, Yamaha have a patent on the expression:
    expression patent.PNG
    For use as a waveshaper. It's hard to believe that this is possible!.

    So anyway, I use a slightly different (better I think) approach to normalise this type of curve, so I'll post it here for prior art in case someone hasn't yet patented it and tries to in the future:

    expression mine.PNG
    I'm not claiming to have invented this or to own it - the basic concept is freaking ubiquitous. It's just one possible way to normalise the simple term x-(x^3)/3, which IIRC, I got from a cubic shaper that was in an earlier version of the Reaktor factory library.
    Here's a graph showing x in green, the yamaha patent in red, the alternative in blue, and tanh(x) in purple for comparison.

    expression graph 2.PNG

    Did yamaha really invent x-(x^3)/3, or use it in dsp before anyone else? even if they did, would that be valid grounds for a successful patent? I thought math or software based patents only worked in the context of tangible hardware products?

    Stumped!
     
    • Like Like x 4
  2. ShelLuser

    ShelLuser NI Product Owner

    Messages:
    703
    It's the one thing I never understood of the US: the excessive and - in my opinion - pathetic patent system. I mean, history showed us that you could even patent (unproven) theories and hypotheses without any actual implementation or proof of viability. Even so; when another party eventually does succeed in realizing the whole thing you can now claim a violation of your patent and thus require financial compensation.

    Totally absurd if you ask me... For a long time it seemed as if the EU wasn't going to fall into this same rabbit hole but alas... although not as bad we're getting there as well. Fortunately the EU doesn't acknowledge all patent infringement claims "just like that".

    But yeah, I agree, this is ridiculous.

    At this point in time I do most of my programming work within Max and Max for Live and I'm definitely going to look into this one at a later time :) Thanks for sharing!
     
    • Like Like x 1
  3. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    655
    Yamah also patented the negative feedback square (reface dx ) , which is just the output of an operator 'squared' and send back to itself
     
  4. Paule

    Paule NI Product Owner

    Messages:
    6,087
    Are that parts of DX7?
     
  5. gentleclockdivider

    gentleclockdivider NI Product Owner

    Messages:
    655
    No , reface dx is the only yamaha fm synth that has negative feedback reulting in square , but like I said it's not really negative feedback but the output powered ^2 routed back .
    Rectifying the output +feedback gives also a square like waveform
     
  6. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,445
    here's one i use instead of tanh(x)

    upload_2020-3-14_18-19-6.png
     
    • Like Like x 1
  7. colB

    colB NI Product Owner

    Messages:
    3,228
    That's cool. I'd be inclined to use it with k=1.
    Main reason is that with k!=1, the slope as the curve approaches the origin is not the same as the slope of x. One of the nice things about using tanh, atan etc. is that you can muck about with swapping out different ones for positive and negative going parts of the signal. Not so easy if they have different gradients through zero though.

    I don't think we should be trying to get super close to tanh unless we are attempting an approximation to be used mathematically. From the perspective of saturation shapers to emulate analog hardware, tanh is only an approximation anyway.
     
  8. colB

    colB NI Product Owner

    Messages:
    3,228
    An alternative might be to average the two:
    Here the red curve is your exponential approach with k set to 1, black is the approach I posted above, purple is tanh(x) and green is the average of the other two approximations.
    tanh approx.PNG

    Seems like overkill, but the zero crossing is good, and it's pretty close to tanh where that might be important... for most things it would probably better at this point to use a legit tanh approximation and be done with it :)
     
    • Like Like x 1
  9. salamanderanagram

    salamanderanagram NI Product Owner

    Messages:
    3,445
    yeah, typically k = 1, but you can bump it up to saturate more, basically.

    i like this function because it has an analytic (rather than numerical) solution when used in the feedback loop of a zdf filter (tanh does not, or at least, it's beyond my math skills, which isn't saying much)

    EDIT - ha, just noticed i divided the whole thing by 1 in that picture :rolleyes:

    i was trying to remember the function and was originally dividing by something
     
    Last edited: Mar 15, 2020