Browse Source

Fix '=' bugs, flip param order, increase limit to 16

master
cancel 6 years ago
parent
commit
61effea756
  1. 2
      bank.h
  2. 11
      sim.c

2
bank.h

@ -19,7 +19,7 @@ typedef struct {
U8 bar_divisor; U8 bar_divisor;
} Oevent_midi; } Oevent_midi;
enum { Oevent_osc_int_count = 4 }; enum { Oevent_osc_int_count = 16 };
typedef struct { typedef struct {
U8 oevent_type; U8 oevent_type;

11
sim.c

@ -370,20 +370,17 @@ BEGIN_OPERATOR(midi)
END_OPERATOR END_OPERATOR
BEGIN_OPERATOR(osc) BEGIN_OPERATOR(osc)
PORT(0, 2, IN | PARAM);
PORT(0, 1, 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) if (len > Oevent_osc_int_count)
len = Oevent_osc_int_count; len = Oevent_osc_int_count;
for (Usz i = 0; i < len; ++i) { for (Usz i = 0; i < len; ++i) {
PORT(0, (Isz)i + 1, IN); PORT(0, (Isz)i + 3, IN);
} }
STOP_IF_NOT_BANGED; STOP_IF_NOT_BANGED;
Glyph g = PEEK(0, 2); Glyph g = PEEK(0, 1);
if (g != '.') { 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]; U8 buff[Oevent_osc_int_count];
for (Usz i = 0; i < len; ++i) { for (Usz i = 0; i < len; ++i) {
buff[i] = (U8)index_of(PEEK(0, (Isz)i + 3)); buff[i] = (U8)index_of(PEEK(0, (Isz)i + 3));

Loading…
Cancel
Save