In/out, cv and gates in gen~

Decide to centralize informations/questions about INs, OUTs, CVs and GATEs usage in gen~

In L :

  • audio In automatically scaled to a -1 to 1 signal out of the in 1 object in gen~
  • CV In L (from 0 to 10V), scaled to a -1 to 1 signal out of the in 1 object in gen~. Don’t know why but the signal is inverted in gen~, so you’ve to inverse it back with the * -1 object.

In R :

  • audio In automatically scaled to a -1 to 1 signal out of the in 2 object in gen~
  • CV In R (from 0 to 10V), scaled to a -1 to 1 signal out of the in 2 object in gen~. Same here, need to be inverted.

CVs In (A, B, C D) from 0 to 10 V are added to corresponding knob value (from 0 to 1)

  • so you get a signal from 0 to 10 out of “param A”, or B, or C, or D object in gen~ and you should set the @min and @max accordingly ??? param object clamp signals, but does it doing some sort of scaling in the same time???

Gate 1 and 2 normalized with the corresponding buttons:

  • signal of 0 or 1 from “param Button A” or B object in gen~ according to the state of the gate in signal

In gen~ all outputs are audio signals, so to convert to CV outputs the values will be averaged each block. For triggers and gates (out 5), any value within the block that is over 0.5 will set the output high, otherwise it will be low.
The values sent to these outputs (out 3, out 4 and out 5) from gen~ should be scaled from 0.0 to 1.0 before entering to “out” object in gen~. Signal will be converted to full scale unipolar CV or trigger/gate output.

You can offset the output of out 3 or out 4 by adding tenth of volts. For instance adding 0.5 to the signal before leaving gen~ will offset the output by 5 V.

Finally, you’ll have to define out 3, out 4 and out 5 parameters using the online compiler as follow :

And don’t forget to compile again your code before loading to Lich :

1 Like

Since (maybe before) firmware Lich v21.2.2, there is no more need to scale CV signal to 0 to 1 before leaving gen~ by out3 or out4.

Finally after tests and the help of Martin @mars :

CVs In (A, B, C D) from 0 to 10 V are added to the corresponding knob value (from 0 to 1) and scaled to 0 to 1 before entering param.
By default, you get a scaled signal from @min 0 to @max 1 out of “param A”, or B, or C, or D object in gen~. The @min and @max param object clamp signals and scale the signal again if needed.

For instance if you set A CV full clockwise and pot A full clockwise too, you get a 0 to 11 signal which is clamped to 0 to 1. It is scaled/clamped again by the @min and @max args from the param object in max. If you use A CV for pitch control from an external sequencer, you’ll notice some strange behaviours … In this particular case, what you can do is setting the A CV full clockwise and use the pot A as an offset.

If you use a Moog Mother 32 as a sequencer for your Lich, you’ll plug the KB output from the Mama to the A CV full clockwise of the Lich. Thinking that the mother KB output range is from -4V to +4V, every note that is under 0V will be a C0. You can then use the pot A to offset the A CV value by +4V !

1 Like

@10T5, have you considered updating OWL gen~ docs to make them more clear? I’m sure that Martin would accept your edits. Since you obviously care about this issue, it’s probably better to not just leave results in a forum thread that would get buried by more trivial questions. Otherwise we should at lest make this a sticky forum thread.

@antisvin @mars yes I can do that if it helps.