shithub: orca

Download patch

ref: 61effea756c6bca0bef5b8593108413cc6b5b768
parent: 4e0c819f565a0d18fa926390a2cc5e704284ab43
author: cancel <cancel@cancel.fm>
date: Wed Jan 9 18:10:21 EST 2019

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

--- a/bank.h
+++ b/bank.h
@@ -19,7 +19,7 @@
   U8 bar_divisor;
 } Oevent_midi;
 
-enum { Oevent_osc_int_count = 4 };
+enum { Oevent_osc_int_count = 16 };
 
 typedef struct {
   U8 oevent_type;
--- a/sim.c
+++ b/sim.c
@@ -370,20 +370,17 @@
 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));