arrayEdit

This module is used to alter the patterns in the "polycountMan" module and "polyRyTrig" module (set module-name in "core" attribute). First 16 selectors set up the values within the pattern. For "polycountMan" in controls the amount of measures for each stage. For "polyRyTrig" it controls the amount of triggers that will be generated within the set amount of measures. "length" sets the amount of selectors that will actually be used. eg. for a 32-step loop with a stage-length of 10, the measures-per-stage could be: 5,3,5,2,1,5,3,5,1,1,1 if using the polyRyTrig and it would be set to: 5,4,5,2,3,5,3,5,2,1,3 it will create a "normal" count where the values are the same (like the 5's in the upper row). But by using a higher rate for the single measures (1's), you can make halves, tripples, quarters etc etc. The first "3" has 4 triggers, generating 4 triggers within 3 measures, speeding up the rythm a bit. "pattern" sets which pattern in the core-module is being controlled by the arrayEdit module. This knob is scaled to the amount of patterns made available by the core-module and is midiCC controllable.
Author: Remco van der Most
License: BSD
Github: sss/table/arrayEdit.axo

Inlets

None

Outlets

None

Parameters

bool32.mom set

frac32.u.map pattern

int32.mini def

int32.mini i0

int32.mini i1

int32.mini i2

int32.mini i3

int32.mini i4

int32.mini i5

int32.mini i6

int32.mini i7

int32.mini i8

int32.mini i9

int32.mini i10

int32.mini i11

int32.mini i12

int32.mini i13

int32.mini i14

int32.mini i15

int32.mini length

Attributes

objref core

Declaration
int prev;
int prv;
Control Rate
int32_t P =
    ___SMMUL(param_pattern << 3, attr_core.patt << 2) * attr_core.LENGTH;
int i;
if (!(prev == param_pattern)) {
  for (i = 0; i < attr_core.LENGTH; i++) {
    PExParameterChange(&parent->PExch[PARAM_INDEX_attr_legal_name_i0 + i],
                       attr_core.array[i + P], 0xFFFD);
  }
}
if (!(prv == param_set)) {
  for (i = 0; i < attr_core.LENGTH; i++) {
    PExParameterChange(&parent->PExch[PARAM_INDEX_attr_legal_name_i0 + i],
                       param_def, 0xFFFD);
  }
}

attr_core.array[0 + P] = param_i0;
attr_core.array[1 + P] = param_i1;
attr_core.array[2 + P] = param_i2;
attr_core.array[3 + P] = param_i3;
attr_core.array[4 + P] = param_i4;
attr_core.array[5 + P] = param_i5;
attr_core.array[6 + P] = param_i6;
attr_core.array[7 + P] = param_i7;
attr_core.array[8 + P] = param_i8;
attr_core.array[9 + P] = param_i9;
attr_core.array[10 + P] = param_i10;
attr_core.array[11 + P] = param_i11;
attr_core.array[12 + P] = param_i12;
attr_core.array[13 + P] = param_i13;
attr_core.array[14 + P] = param_i14;
attr_core.array[15 + P] = param_i15;
attr_core.length = param_length;
prv = param_set;
prev = param_pattern;

Privacy

© 2024 Zrna Research