How do macros work on the Synth?

My expectations around how macros work are pretty simple:

TargetValue = BaselineValue ± (KnobValue x Factor)

This means:

  • I expect a macro to add or subtract values from a parameter’s current value (i.e. the value that would be stored in the preset).
  • A macro control can be assumed to send either positive values or bipolar, values, for the sake of simplicity, let’s say the range is either 0…1 or -1…+1
  • there is a macro parameter specific to each target parameter that defines direction and maximum of the offset that is applied to the target parameter’s value. For bipolar controls, a negative macro parameter value would simply invert the offset.

Example: I would set cutoff on the filter page to a value that sounds good as a “normal” value, and define a macro that allows for changing the cutoff in a specific range so that I can use the macro knob to add some movement without it ever sounding too harsh or too quiet.

This is the way it’s typically implemented in other devices, sometimes in the form of a mod matrix where dedicated knobs or MIDI CCs are available as source, sometimes they’re called “performance controls”, or, as in the case of the Polyend Synth, just “macros”. Of course, if there is both a mod matrix and macros, I’d expect them both to work consistently.

Working with the Synth, I found that macros do appear to work that way, I always got some odd results, the relationship between parameter value, “macro value” and value of the knobs (C1-C3) did not appear to be as simple and straightforward as I expected. The manual does not explain how macros work, either.

So I made some experiments to find out how things are actually working. I used Osc. Volume as a target parameter (set to 100% to allow for ample room in both directions), and compiled a table how the C1 knob affects output volume for various macro values, both for a unipolar and a bipolar macro. You’ll find details of the my settings and how I conducted experiments below the table.

These are my preliminary results:

  • Unipolar knobs mapped to unipolar parameters behave in unexpected ways
    • I could not create values higher than the parameter value
    • with some settings, the knob has no effect over a wide range of the possible values
  • Effects of bipolar knobs mapped to unipolar parameters are also unexpected:
    • sometimes they increase the value, but not consistently
    • directions of the offset are counterintuitive
  • Bipolar Macros applied to bipolar targets work as expected
  • Mods appear to work just as described above

Now I might have made a lot of errors collecting this data, but from that data I’m unable to divine a simple formula that would explain my observations consistently.

So I’ll put this here hoping that maybe somebody else sees something that I don’t.

Or even better, one of the developers might jump in and explain the theory behind macros.

bipolar Macro Value Perceived Volume @ C1 = 0% @ C1 = 50% @C1= 100% Experiment
off 0% 100% 100% 100%
off 50% 50% 75% 100%
off 100% off 50% 100% 1
off 200% off off 100% 3
off -50% 200% 150% 100%
off -100% 200% 100% 100%
off -200% 200% 200% 100% 2
on 200% off off off 5
on 150% off off 125% 5
on 100% off off 100% 5
on 50% 25% 50% 75% 5
on 0% 100% 100% 100% 5
on -50% 200% 100% 100% 5
on -100% 200% 200% 100% 5
on -200% 200% 200% 100% 5

Note: “off” means no audible sound, percent values were compared to Osc. Volume of the same sound without macros in the other 2 slots.

Details about the experiments

Preparation

  • select VAP engine, init the sound
  • Reset all macros and modulations (delete all macros, mods, filter off)
  • set filter cutoff to off (fully CCW)
  • check that Osc Volume is 100
  • set amp envelope to 0s, 0s, 100%, 1.5s

To compare loudness levels, save that preset and create a scene with all 3 synths set to that preset, use the 3z3 grid. Work with the blue synth, compare to the yellow synth, and use the purple synth to match osc volume levels if you want more accurate comparisons.

Check baseline:

Play sound: Boring, static, no velocity or AT response

Experiment 1:

Ensure C1 is set to 0, then map Map Osc Volume to Timbre macro, set macro value to 100%

Play notes => no sound
Play notes on Synth 2: sound

Increase C1 gradually until the bar is completely filled while holding down a note → sound gradually becomes as loud as before (compare to slot 2 )

Experiment 2

Now with C1 fully on set the macro value value to -200%. → no change in sound

Now decrease C1 until it’s fully counterclockwise, you will notice that while you do this, the sound increases in volume, and at the end it is much louder than a note played on Synth slot 2.

Experiment 3

Now increase the macro value from -200 to + 200, while keeping C1 at minimum.

When you play some notes, you will notice that you hear no sound at all.

Increase C1, and you will start hearing notes around halfway, which will increase in volume until it reaches the same volume as synth slot 2.

Experiment 4: (bipolar macro)

Now set the Timbre Macro to Bipolar and test different macro values while turning C1

  • macro value 200%, this leads to no sound whatsoever, regardless of the position of C1.
  • macro value of 100%, C1 kills the output level in the left half, and gradually increases level to full in he right half.
  • macro level of -100%, the sound goes from louder than slot 2 (C1 fully to the left) to as loud as slot 2 (fully to the right)
  • macro value -50%: same as a value of -100%
  • With a macro level of -200%, there sound is louder than C2, but regardless of the position of C1
  • With a macro level of 50%, the volume starts at a certain level and rises to full level

Experiment 5: (bipolar target, baseline)

Delete the mapping for the Timbre Macro, and go to the mods page.

No set LFO1 to 1Hz, and a Square wave, and map LFO1 to Volume.

When you latch a note and then increase or decrease the modulation amount, everything behaves as expected:

  • when you increase the amount, the sound jumps between normal volume an a higher volume
  • when you decrease the amount, the sound jumps between normal volume an a lower volume

Experiment 6: (bipolar target)

Set the modulation amount to 0 again, then map Mod Amt1 to C1 with a value of 100%, turn bipolar on.

Now C1 directly controls the mod amount. Also just like you would expect.

Experiment 7: (bipolar target)

Turn bipolar off, and leave the macro value of 100%

Now turn C1 from left to right: the sound starts at a lower volume with no audible effect of the LFO, and as C1 increases, the LFO becomes more pronounced as the level of the sound increases while the LFO’s square is “up”.

1 Like

I’m still don’t understand how macros work after all this time in Play+. I assume that it works like in synth. I would love to see a tutorial explaining very detailed how it works because at least for me I’ve seen few YouTube videos and still don’t understand macros.

A total mystery for me.

That’s an interesting point. I took a look at the Play+ manual, and Macros appear to be similar to the ones in Synth, as they allow for one knob to control multiple parameters, and you can define a value specific to each parameter that controls how it is influenced by the macro.

However, the Manual for Play+ appears to contradict itself on the same page (p. 101): It say the starting value for the Macro is the Amount defined in the Macro, then ist says it’s the Parameter value.

and directly below that table:

The text in the Synth manual is more specific about the value in the macro defining the range (p. 87)

and then it even describes how that range would work:

That, however, appears to be contradicted by my measurements, which can be explained neither as the value scaling the range by a factor, nor by the value setting the starting point.

Let’s ask @Mitch, they’ll be able to to clear that up, or at least point to the person who can.

1 Like

In my understanding, you have a value in the synth settings and the macro, at value 0, bipolar or not, it’s the setting you have chosen for the synth.

Then there are multipliers I understand that they are for more fast or slow increments.

But I’ve tried several times and I guess I’m doing something wrong. Need to test further and need a very detailed tutorial to make. Actually I don’t understand macros. In paper, there are very very powerful tools.

1 Like

I haven’t watched this bu Aisjam knows his stuff - https://www.youtube.com/watch?v=ApDhIvpbQ3c

1 Like

I’ll pass this on to the developers to comment on.

1 Like

While he does not explain what the amount does, the video got me thinking, and I made some more tests.

I think I now understand what my problem was: there is a bug that affects how Macros, Velocity and Aftertouch affect Osc. Volume.

For all other parameters that I tested, the macros do indeed work more or less as expected. However for any parameter with a value range that is different to 1…100, e.g. in Hz or seconds, the macro value is wildly off, it looks like the unit of the value is not percent of the preset value of the target parameter, but but in percentage points of the parameter’s value range. Might be a good idea to drop the percent sign in the macros.

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.

I’m really curious what they’ll say.