diff --git a/bank.h b/bank.h index 5812801..7fa7821 100644 --- a/bank.h +++ b/bank.h @@ -19,7 +19,7 @@ typedef struct { U8 bar_divisor; } Oevent_midi; -enum { Oevent_osc_int_count = 4 }; +enum { Oevent_osc_int_count = 16 }; typedef struct { U8 oevent_type; diff --git a/sim.c b/sim.c index 3b014e9..a93484e 100644 --- a/sim.c +++ b/sim.c @@ -370,20 +370,17 @@ BEGIN_OPERATOR(midi) END_OPERATOR BEGIN_OPERATOR(osc) - PORT(0, 2, IN | PARAM); PORT(0, 1, IN | PARAM); - Usz len = index_of(PEEK(0, 1)) + 1; + PORT(0, 2, IN | PARAM); + Usz len = index_of(PEEK(0, 2)) + 1; if (len > Oevent_osc_int_count) len = Oevent_osc_int_count; for (Usz i = 0; i < len; ++i) { - PORT(0, (Isz)i + 1, IN); + PORT(0, (Isz)i + 3, IN); } STOP_IF_NOT_BANGED; - Glyph g = PEEK(0, 2); + Glyph g = PEEK(0, 1); if (g != '.') { - Usz len = index_of(PEEK(0, 1)) + 1; - if (len > Oevent_osc_int_count) - len = Oevent_osc_int_count; U8 buff[Oevent_osc_int_count]; for (Usz i = 0; i < len; ++i) { buff[i] = (U8)index_of(PEEK(0, (Isz)i + 3));