diff --git a/midizap.c b/midizap.c index 8ba8725..175398f 100644 --- a/midizap.c +++ b/midizap.c @@ -225,7 +225,7 @@ send_midi(uint8_t portno, int status, int data, } msg[1] = cpvalue[chan]; } else if (mod) { - int v = datavals(swap?val%mod:val/mod, step, steps, n_steps); + int v = datavals(swap?val/mod:val%mod, step, steps, n_steps); if (v > 127 || v < 0) return; msg[1] = v; } else if (!index) { @@ -252,9 +252,9 @@ send_midi(uint8_t portno, int status, int data, } pbval = pbvalue[chan]; } else if (mod) { - int v = datavals(swap?val%mod:val/mod, step, steps, n_steps); - if (v > 8191 || v < -8192) return; - pbval = 8192+v; + int v = datavals(swap?val/mod:val%mod, step, steps, n_steps); + if (v > 16383 || v < 0) return; + pbval = v; } else if (!index) { pbval = 8192+dataval(step, -8192, 8191); } else { @@ -270,7 +270,7 @@ send_midi(uint8_t portno, int status, int data, } case 0xc0: if (mod) { - int d = msg[1] + datavals(swap?val/mod:val%mod, mod_step, mod_steps, mod_n_steps); + int d = msg[1] + datavals(swap?val%mod:val/mod, mod_step, mod_steps, mod_n_steps); if (d > 127 || d < 0) return; msg[1] = d; } @@ -1448,7 +1448,7 @@ handle_event(uint8_t *msg, uint8_t portno, int depth, int recursive) start_debug(); //fprintf(stderr, "pb %d\n", bend); if (get_pb_mod(tr, portno, chan)) { - send_strokes(tr, portno, status, chan, 0, bend, 0, 0, depth); + send_strokes(tr, portno, status, chan, 0, bend+8192, 0, 0, depth); end_debug(); break; } diff --git a/readconfig.c b/readconfig.c index 9adfe27..625127c 100644 --- a/readconfig.c +++ b/readconfig.c @@ -714,7 +714,7 @@ print_stroke(stroke *s, int mod, int step, int n_steps, int *steps, int val) case 0xe0: if (mod) { int v = datavals(s->swap?val/mod:val%mod, s->step, s->steps, s->n_steps); - printf("PB[%d]-%d%s ", v, channel, suffix); + printf("PB[%d]-%d%s ", v-8192, channel, suffix); } else if (s->steps) { printf("PB{"); for (int i = 0; i < s->n_steps; i++)