12-22-2023, 08:20 AM

Hey guys, I been trying to morph internal Env by an external CV source.

My goal is to realize this purpose by an macro control ( kind like control knob in the VCA Mode of Pizza).

TASK:

1. Attack's crossing point is at 1536 (3/8 of 4095), and Decay's crossing point is at 2560(5/8 of 4095).

2. When input cv is in the range of [0, 1536), attack drops from 2048(in decimal expression & 128 for ENV expression) to 0

When input cv is in the range of [1536, 4095], attack ramp from 0 to 4096 (in decimal expression & 256 for ENV expression).

3. When input cv is in the range of [0,2560), decay drops from 4096 to 0(in decimal),

When input cv is in the range of [2560, 4095], decay value ramp forom 0 to 2048(in decimal).

In function expression it look like this:

Attack:

x in [0, 1536): y = -4/3 x + 2048

x in [1536, 4095]: y = 8/5 x - 2457

Decay:

x in [0, 2560): y = -8/5 x + 4096

x in [1536, 4095]: y = 4/3 x - 3413

My approach is firstly shrimp everything by 8(the max numerator or denominator), and calculate the value 4/3, and put the 8 back.

Numerator and denominato

so the problem here is,

1. it is very easy to get overflow when large value execute a MUL, so I have to shrimp all the value before the calculation and multiply it back after evrything calculated. For example, the biggest mul/div value above is 8, so I have to DIV everything by 8 before the calculation, and MUL 8 after the calculation. So I wonder instead of calculate the output directly, is there any possibility to express 4/3 or 8/5... these kind of value in Nerdseq?

2. It is super weird value like 2457 or 3413, and there is no negative value in nerdseq, So I have to calculate it by Substract it by full range (which is FFF, 4095). So, can I invert the value or do some negative value calculation on nerdseq?

3. Is it possible to have internal ENV to be exponential instead of linear?

4. When I trying to multi-segment function, normally it's a IF.. IFNOT... Expression, right? But I find that I cannot assign or pass any value after IF expression. Such as: CAL IF>= VAVB > ENV #1 ATK. (I didn't acctually figure out how IF calculation works, so I just set the value directly to ENV's Attack in two lines. I find it interesting is that, the value is set to the greater one by default. AMAZING). So my question is how to set this kind of IF calculation on Nerdseq?

5.the expression for ENV & MAP are in different resolution (such as 256 in ENV expression = 4096 in Mapping), which is kinda odd, I think, I guess, I assume...？

BTW, the manual says the 4 cv input are capable for 0~10 volts, but it reach FFF or 4096 when I input cv around 2 or 3 Volts. SO I have to us a vca to shrimp that value. is that because I didnt set it up right? or It just because Nerdseq cannot handle value above that range in map?

THANKS! I HAD ALOT FUN OF IT <3

My goal is to realize this purpose by an macro control ( kind like control knob in the VCA Mode of Pizza).

TASK:

1. Attack's crossing point is at 1536 (3/8 of 4095), and Decay's crossing point is at 2560(5/8 of 4095).

2. When input cv is in the range of [0, 1536), attack drops from 2048(in decimal expression & 128 for ENV expression) to 0

When input cv is in the range of [1536, 4095], attack ramp from 0 to 4096 (in decimal expression & 256 for ENV expression).

3. When input cv is in the range of [0,2560), decay drops from 4096 to 0(in decimal),

When input cv is in the range of [2560, 4095], decay value ramp forom 0 to 2048(in decimal).

In function expression it look like this:

Attack:

x in [0, 1536): y = -4/3 x + 2048

x in [1536, 4095]: y = 8/5 x - 2457

Decay:

x in [0, 2560): y = -8/5 x + 4096

x in [1536, 4095]: y = 4/3 x - 3413

My approach is firstly shrimp everything by 8(the max numerator or denominator), and calculate the value 4/3, and put the 8 back.

Numerator and denominato

so the problem here is,

1. it is very easy to get overflow when large value execute a MUL, so I have to shrimp all the value before the calculation and multiply it back after evrything calculated. For example, the biggest mul/div value above is 8, so I have to DIV everything by 8 before the calculation, and MUL 8 after the calculation. So I wonder instead of calculate the output directly, is there any possibility to express 4/3 or 8/5... these kind of value in Nerdseq?

2. It is super weird value like 2457 or 3413, and there is no negative value in nerdseq, So I have to calculate it by Substract it by full range (which is FFF, 4095). So, can I invert the value or do some negative value calculation on nerdseq?

3. Is it possible to have internal ENV to be exponential instead of linear?

4. When I trying to multi-segment function, normally it's a IF.. IFNOT... Expression, right? But I find that I cannot assign or pass any value after IF expression. Such as: CAL IF>= VAVB > ENV #1 ATK. (I didn't acctually figure out how IF calculation works, so I just set the value directly to ENV's Attack in two lines. I find it interesting is that, the value is set to the greater one by default. AMAZING). So my question is how to set this kind of IF calculation on Nerdseq?

5.the expression for ENV & MAP are in different resolution (such as 256 in ENV expression = 4096 in Mapping), which is kinda odd, I think, I guess, I assume...？

BTW, the manual says the 4 cv input are capable for 0~10 volts, but it reach FFF or 4096 when I input cv around 2 or 3 Volts. SO I have to us a vca to shrimp that value. is that because I didnt set it up right? or It just because Nerdseq cannot handle value above that range in map?

THANKS! I HAD ALOT FUN OF IT <3