write 16

sets the indexes of table to the value of the attributes starting at index 'offset'
Author: Robert Schirmer
License: BSD
Github: rbrt/mloop/write 16.axo

Inlets

int32.positive startNote

bool32.rising trig

bool32.risingfalling clear

Outlets

None

Parameters

bool32.tgl clear

Attributes

objref seq

spinner a1

spinner a2

spinner a3

spinner a4

spinner a5

spinner a6

spinner a7

spinner a8

spinner b1

spinner b2

spinner b3

spinner b4

spinner b5

spinner b6

spinner b7

spinner b8

Declaration
bool ntrig;
uint8_t step[16];
uint16_t skip;
Init
step[0] = attr_a1;
step[1] = attr_a2;
step[2] = attr_a3;
step[3] = attr_a4;
step[4] = attr_a5;
step[5] = attr_a6;
step[6] = attr_a7;
step[7] = attr_a8;

step[8] = attr_b1;
step[9] = attr_b2;
step[10] = attr_b3;
step[11] = attr_b4;
step[12] = attr_b5;
step[13] = attr_b6;
step[14] = attr_b7;
step[15] = attr_b8;
Control Rate
if (inlet_trig && !ntrig) {
  ntrig = 1;
  int i;
  if (param_clear || inlet_clear) {
    for (i = 0; i < 512; i++)
      attr_seq.array[i] = 0;
  }
  for (i = 0; i < 16; i++) {
    skip = i << 5;
    while (attr_seq.array[skip])
      skip++;
    attr_seq.array[skip] = inlet_startNote + step[i] + 1 + (127 << 8);
    while (attr_seq.array[skip])
      skip++;
    attr_seq.array[skip] = inlet_startNote + step[i] + 1;
  }
}

if (!inlet_trig)
  ntrig = 0;

Privacy

© 2024 Zrna Research