|
@@ -428,20 +428,20 @@ int IDN_QuantizeVisit(laSynthNodeQuantize* n, laNodeVisitInfo* vi){
|
|
|
LA_ADD_THIS_NODE(n,vi);
|
|
|
return LA_DAG_FLAG_PERM;
|
|
|
}
|
|
|
-static const real QTABLE[12]={ VAL13, VAL13+VALHALF, VAL13+VALHALF*2, VAL13+VALHALF*3,
|
|
|
- VAL13+VALHALF*4, VAL13+VALHALF*5, VAL13+VALHALF*6, VAL13+VALHALF*7,
|
|
|
- VAL13+VALHALF*8, VAL13+VALHALF*9, VAL13+VALHALF*10, VAL13+VALHALF*11 };
|
|
|
+static const real QTABLE[12]={ VAL13-VALHALF*9, VAL13-VALHALF*8, VAL13-VALHALF*7, VAL13-VALHALF*6,
|
|
|
+ VAL13-VALHALF*5, VAL13-VALHALF*4, VAL13-VALHALF*3, VAL13-VALHALF*2,
|
|
|
+ VAL13-VALHALF*1, VAL13, VAL13+VALHALF*1, VAL13+VALHALF*2 };
|
|
|
static void set_quantize_out_bit(laSynthNodeQuantize* n, int which){
|
|
|
for(int i=0;i<12;i++){
|
|
|
if(n->EnabledBits[i]){ n->EnabledBits[i]=1; }
|
|
|
if(i==which && n->EnabledBits){ n->EnabledBits[i]=3; }
|
|
|
}
|
|
|
}
|
|
|
-int IDN_QuantizeEval(laSynthNodeQuantize* n){ real cv0=VAL440; LA_GET_SRC_AS_VALUE(cv0, n->In);
|
|
|
+int IDN_QuantizeEval(laSynthNodeQuantize* n){ real cv0=QTABLE[0]+5; /*C4*/ LA_GET_SRC_AS_VALUE(cv0, n->In);
|
|
|
real* cv; INPUTPACKET(cv,n->In); real dists[12];
|
|
|
for(int i=0;i<LA_SYNTH_PLEN;i++){
|
|
|
+ int octave = (int)(cv0-QTABLE[0]); int minkey=0;
|
|
|
if(cv){ cv0=cv[i]; }
|
|
|
- int octave = (int)(cv0-VAL13); int minkey=0;
|
|
|
real use_cv = cv0 - octave;
|
|
|
for(int j=0;j<12;j++){ dists[j] = fabs(use_cv - QTABLE[j]); }
|
|
|
for(int j=1;j<12;j++){ if(n->EnabledBits[j] && dists[j] < dists[minkey]){ minkey=j; } }
|