wobb

Author: Smashed Transistors
License: LGPL
Github: tiar/noise/wobb.axo

Inlets

None

Outlets

frac32buffer.bipolar out

Declaration
int32_t r1a = 137; // todo:init with actually random numbers
int32_t r2a = 137;
int32_t c1a = 0;
int32_t c2a = 0;
int32_t r1b = 149;
int32_t r2b = 149;
int32_t c1b = 0;
int32_t c2b = 0;
int32_t r1c = 159;
int32_t r2c = 159;
int32_t c1c = 0;
int32_t c2c = 0;
Audio Rate
// triple wobbulated random gen
r1a = r1a * 69069 + 1;
c1a--;
if (c1a <= 0) {
  c2a--;
  if (c2a <= 0) {
    c2a = GenerateRandomNumber() & 63;
    r2a = GenerateRandomNumber();
  }
  r2a = r2a * 69069 + 1;
  c1a = c2a;
  r1a = r2a; // reset main rand gen seed
  outlet_out = r1a >> 6;
} else {
  outlet_out = r1a >> 6;
}
// _ _ _
r1b = r1b * 69069 + 1;
c1b--;
if (c1b <= 0) {
  c2b--;
  if (c2b <= 0) {
    c2b = GenerateRandomNumber() & 63;
    r2b = GenerateRandomNumber();
  }
  r2b = r2b * 69069 + 1;
  c1b = c2b;
  r1b = r2b; // reset main rand gen seed
  outlet_out += r1b >> 6;
} else {
  outlet_out += r1b >> 6;
}
// _ _ _
r1c = r1c * 69069 + 1;
c1c--;
if (c1c <= 0) {
  c2c--;
  if (c2c <= 0) {
    c2c = GenerateRandomNumber();
    c2c = ___SMMUL(c2c, c2c) >> (30 - 6);
    r2c = GenerateRandomNumber();
  }
  r2c = r2c * 69069 + 1;
  c1c = c2c;
  r1c = r2c; // reset main rand gen seed
  outlet_out += r1c >> 5;
} else {
  outlet_out += r1c >> 5;
}

Privacy

© 2024 Zrna Research