Sat May 4 17:48:19 EDT 2013

How to make something difficult?

So I got stuck at an invisible point: simulation code (ai-stream)
looks fine for both AR and AD, but in Pd, the AD doesn't give any

( hmm... just thinking, might be a param vs. state interaction )

Maybe what is needed is a standalone C .elf that can be run in the
debugger.  Actually, this already exists:

( changed code a bit to limit number of params, then run it like this: )

make synth.g.elf ; ./synth.g.elf .1 1 1 1 0 .1 .1

gdb -i=mi --args synth.g.elf .1 1 1 1 0 .1 .1

Suspicious code line:

		so->r36[i] = p_lt(si->r31[i], so->voice_gate[i], r24, r35);

that should be param->voice_gate[i]

struct proc_so {
	float r34[1];
	float r38[1];
	float r36[1];
	float voice_gate[1];
	float r55[7][1];


The thing that happens here is that there is a direct path from
(state) input to (state) output, meaning that the nodes are not
unique.  In ai-array this needs an additional decoupling.

So, no panic.  This was a true compiler bug :)