There's separate left and right feedback amounts and left and right delays, and a LPF in the write path into the delay line so things can get controllably muddier as the feedbacks bounce around. Which sounds pretty great, and is virtually zero cycles. After the delay is the mellotron's reverb unit, which is a few cycles too many for my liking, but heck, it needs a reverb unit to give it some space.
If after all this I can get a reliable 6 note polyphony out of it on the Pi I'll be happy (although I really, really want 8 ...), as a stereo delay and a reverb with 6 notes will make a quite brilliant guitar synth. On which subject my office is filling up fast with guitar-shaped MIDI controllers, so I'm looking forward to pushing those into it to see how playable it is.
After some quick listening tests today via the timeless magic of 'Fox on the Run' I can say that it is not quite as deglitched as I would like - I occasionally heard clicks on note on events. Clicks are the bane of my life, at least on this project. And the mellotron had its clicky moments as well. Also it can definitely be persuaded to alias. The evil little sod. I put in *so* much work into it, to try to get the damn thing to not alias, and this is how it pays me back. The git. But on the plus side, the hardsync works and sounds good if you are sensible with the relative range of the oscillators - I found that shifting OSCB up by a minor third and hardsyncing it sounded pretty neat. The 'PIANAforte knob' (a.k.a 'Phil's 35p version of Brute Factor') is effective at making it sound ugly and overcooked, and once I remembered the difference between FINE and COARSE pitch control I managed to induce some lovely detuning and movement via an LFO, and it all sounded pretty sweet, if I say so myself.
Re. the difference between COARSE and FINE pitch modifiers - I shall write this all down AGAIN. I do need to remember this, because I keep getting it wrong ...
There are mod matrix outputs for FINEA, FINEB, COARSEA and COARSEB. FINE values are in the range -1 to +1 and yield a semitone of down and up bend at these limits. COARSE are different, they are explicitly multiplicative, and are clamped for safety into the range 0.5 to 2.0. So if you want a coarse change of 1 semitone up, you need to get this mod output to drive a value of 1.05946 ... and to induce a perfect Pythagorean fifth of uplift in OSCB, you or I need to set its COARSEB to 1.5. This is easily done by setting its mod equation to be ABC+DE, with arguments 1,1,1,0.5 and 1 to yield 1*1*1 + 0.5*1. Magic, eh? And then on top of that, a small wobble in pitch driven by an LFO can be generated by setting FINEB to +-1/9th semitone via 0.33 * 0.33 * LFO1 + 0*0 - remember, signed -1 to +1 rather than multiplicative. The final multiply (which is pitchwheel * fine * coarse * feet) is sorted out within the guts of the mod matrix.