Reading some of the documentation on writing opcodes in C.
Looking at the rms code in ugens5.h and ugens5.c.  Not very far yet.
Question for anyone who knows:
In rmsset I see

    if (!*p->istor)
      p->prvq = 0.0;

But I don't see anything actually assigning the value of *p->istor to p->prvq.  Does this happen someplace else?
Because in the rms function, p->prvq is assigned to q unconditionally, and this is used for computations.  The RMS struct (declaration? definition?) in ugens5.h doesn't initialize prvq either.

I used this orc code:
asig    init    20000
krms    rms    asig, 10, 20000
    printk2    krms

and the output climbed to 20000 as it did when I left out iskip, rather than starting there as I expected.  I didn't check if the output was exactly the same.

-Chuckk

--
http://www.badmuthahubbard.com