Skip to content

Struct wfm_seq_t

ClassList > wfm_seq_t

A run of bits, however it is produced. More...

  • #include <wfm_frame.h>

Public Attributes

Type Name
const uint8_t * bits
wfm_seq_kind_t kind
size_t len
int lfsr
uint64_t poly
uint32_t reg_bits
uint64_t seed
uint64_t seed_a
uint64_t seed_b
uint64_t taps_a
uint64_t taps_b

Detailed Description

len is always the OUTPUT length in bits. For the generated kinds it is independent of the register width — pn_create()'s length argument is the register width (period 2^n - 1), while pn_generate(state, n, …) decides how many bits come out. Conflating the two is easy and costly, so they are named apart here: reg_bits against len.

Public Attributes Documentation

variable bits

const uint8_t* wfm_seq_t::bits;

LITERAL only; NULL otherwise


variable kind

wfm_seq_kind_t wfm_seq_t::kind;

variable len

size_t wfm_seq_t::len;

output bits; 0 means the field is absent


variable lfsr

int wfm_seq_t::lfsr;

PN_GALOIS (0) or PN_FIBONACCI (1)


variable poly

uint64_t wfm_seq_t::poly;

0 selects pn_mls_poly(reg_bits) — the same "default" wfm_synth's --pn-poly means. A literal 0 reaching pn_create() is a register with no feedback: it emits the seed and then zeros, which is a CONSTANT field that still looks like a field.


variable reg_bits

uint32_t wfm_seq_t::reg_bits;

register width 1..64; period 2^reg_bits - 1


variable seed

uint64_t wfm_seq_t::seed;

0 selects 1; an all-zero register is a fixed point


variable seed_a

uint64_t wfm_seq_t::seed_a;

variable seed_b

uint64_t wfm_seq_t::seed_b;

variable taps_a

uint64_t wfm_seq_t::taps_a;

variable taps_b

uint64_t wfm_seq_t::taps_b;


The documentation for this class was generated from the following file native/inc/wfm/wfm_frame.h