I'd guess this is the problem: In fm4op.c: hammondB3(...): .... if (*p->modDepth > FL(0.0)) { p->v_rate = *p->vibFreq * p->vibWave->flen * csound->onedsr; temp = FL(1.0) + (*p->modDepth * FL(0.1) * Wave_tick(&p->v_time, (int)p->vibWave->flen, p->vibWave->ftable, p->v_rate, FL(0.0))); temp *= p->baseFreq * csound->onedsr; p->w_rate[0] = p->ratios[0] * temp * p->waves[0]->flen; p->w_rate[1] = p->ratios[1] * temp * p->waves[1]->flen; p->w_rate[2] = p->ratios[2] * temp * p->waves[2]->flen; p->w_rate[3] = p->ratios[3] * temp * p->waves[3]->flen; } lastOutput = FM4Alg8_tick(p, c1, c2); .... All those variables never get set if modDepth is never greater-than-zero, but FM4Alg8_tick(...) uses them! Strangely none of the other 'fm...' opcodes has any value check on modDepth, but if it is necessary, some default computations in an else clause should fix things, i'd think. [Can't conveniently compile right now, so I can't verify...] -- Pete -- On Wed, Dec 19, 2018 at 08:24:37PM -0800, Pete Goodeve wrote: > On Wed, Dec 19, 2018 at 07:37:18PM +0000, jpff wrote: > > If the vibraro depth is a constat zero I hear a higher note but if the depth decreases to zero I do nit get anyting odd. > > Confirmed... With a single score note sustained for a few seconds, > if I use something like: > kvdpth linseg 0.2, p3/2, 0.0, p3/2, 0.0 > the vibrato just decays to nothing and the pitch stays steady. > > If I use: > kvdpth linseg 0.0, p3/2, 0.0, p3/2, 0.2 > the pitch is wrong to start, but corrects as soon as kvdepth > rises from zero. > > -- Pete -- > > Csound mailing list > Csound@listserv.heanet.ie > https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND > Send bugs reports to > https://github.com/csound/csound/issues > Discussions of bugs and features can be posted here Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here