Meta Modulator Device

This does pretty much the same as the Depth Control, but allows modulation from up to 3 sources. This works different from the Meta Mixer, which doesn’t do real modulation.

If you don’t know how to try it out: Just copy the XML-code below and paste it in the Mixer view to your track.

  
<?xml version="1.0" encoding="UTF-8"?>  
<filterdeviceclipboard doc_version="0"><br>
  <deviceslot type="FormulaMetaDevice"><br>
    <isactive>true</isactive><br>
    <isselected>true</isselected><br>
    <selectedpresetname>Init</selectedpresetname><br>
    <selectedpresetismodified>true</selectedpresetismodified><br>
    <ismaximized>true</ismaximized><br>
    <customdevicename>Meta Modulator</customdevicename><br>
    <formulaparagraphs><br>
      <formulaparagraph>A*B*C</formulaparagraph><br>
    </formulaparagraphs><br>
    <functionsparagraphs><br>
      <functionsparagraph></functionsparagraph><br>
      <functionsparagraph></functionsparagraph><br>
    </functionsparagraphs><br>
    <inputnamea>Input A</inputnamea><br>
    <inputnameb>Input B</inputnameb><br>
    <inputnamec>Input C</inputnamec><br>
    <editorvisible>false</editorvisible><br>
    <panelvisible>0</panelvisible><br>
    <inputa><br>
      <value>1.0</value><br>
      <visualization>Mixer and Device</visualization><br>
    </inputa><br>
    <inputb><br>
      <value>1.0</value><br>
      <visualization>Mixer and Device</visualization><br>
    </inputb><br>
    <inputc><br>
      <value>1.0</value><br>
      <visualization>Mixer and Device</visualization><br>
    </inputc><br>
    <desttrack><br>
      <value>-1</value><br>
      <visualization>Device only</visualization><br>
    </desttrack><br>
    <desteffect><br>
      <value>4</value><br>
      <visualization>Device only</visualization><br>
    </desteffect><br>
    <destparameter><br>
      <value>1.0</value><br>
      <visualization>Device only</visualization><br>
    </destparameter><br>
  </deviceslot><br>
</filterdeviceclipboard>  
  

That’s really cool. You can actually make a native FM Synth from this.
Just set up dblue’s mono native synth or any alternative as long as it uses a ring mod to control the frequency. Put in the meta modulator device and make sure to send the calculated frequency, from the LFO or keytracker, to the modulator device as input A. This will be the carrier frequency. Then add an LFO with some kind of offset (let’s call this P) and send its output to the meta modulator device, B. This will be the modulator frequency. C will be the modulator index, eh I don’t think you actually need it but what the hell.
The formula for FM is A+(B*C). To make the modulator act like a bipolar signal, and subtract as well as add to the carrier frequency, add and account for that offset P. So it will become A+((B-P)*C) in my case I set the offset to 50% so P would be 0.5. Finally, output the meta modulator to a ring mod.
The frequency of the LFO will control the speed and the amplitude of the LFO will control the depth of the modulation, which is why you really don’t need C.
Anyway, the cool thing is that you can add more formula devices and LFOs etc. quickly moving into interesting sounds.

JupiterXLI, this looks interesting. I don’t have enough time to set the whole thing up now, but I’m curious to try it. Would you mind attaching an example song to the thread?

Sounds nice in theory. In practice the Renoise LFOs aren’t made for speed on FM niveau. You’d have to deal with settings beyond 64 LPB at 16 TPL, while using LFOs with a full lenght of 1024, full of continuous waveforms (like 32 sinewaves á 32 points). And that’d be the minimum for maybe halfway useable results. Already tried this.

For a A4 on 440Hz as modulator you’d have to generate 440 sinewaves per second. AND you’d have to exactly sync the LFO. Well, you get the idea…

FM would be cool. But not with LFOs. LFO = LOW(!) Frequency Oscillator. The name says it all. :)

huh, I see, thanks for explanation. Many times in the past an HFO has been requested, indeed.

Something like the Formula device with persistent calculations and variables would be cool. So you could simply pass a few initial params and the device manages the rest on its own.

Edit: Maybe the Formula device is even capable of something like that? I have no idea. How about calculating the FM stuff completely within the Formula device, only passing frequency values as initial params? Actually I think this might work. (!?)

Edit:
I’m gonna try this (having no clue of LUA :D).

Edit:
Okay, I’ve got some HFOs running. Give me some time to figure out a few things and set them up properly. Native FM synthie on its way, baby. :yeah:

Ok, that’s all true but it’s still FM synthesis, even if it is too slow to be “useable”. ;)

just define some locals in the user page (you can define functions and locals there), and they will be available globally (reset every time you change the scripts/formulas).

probably Renoise scripting refresh rate is too low in order to perform realtime synthesis with the formula device. I did some mad experiment of sample morphing in the past but this single problem prevented me from making it usable.

another option could be using a sine wave sample (or whatelse wave you may need) and a SignalFollower in order to generate high frequency oscillations?

When I remember right, the SignalFollower also depends on the TPL. :( As far as I remember, that’s the reason why it doesn’t work accurate for simulation of real sidechain compression, triggering a compressor. No matter how we turn it, we depend on the TPL. :)

I think the Formula device actually isn’t the problem. Even if we had realtime, sample accurate calculations available in the formula device (in fact we have, when I got it right), they’d be useless, because the parameter changes for the RingMod device would be done in TPL frequency only again. :rolleyes: So, let’s just make the best of what we have. :)

Gonna try this. Thanks a lot! :)