From vn Sat Aug  3 22:10:06 1991
~Subject: Stereo Chorus for DSP56001 - code sample
~Newsgroups: comp.dsp,comp.music,rec.music.synth

OK, OK, OK.  After I mentioned in passing one day that I'd been working on some
effects code for the 56001 I got quite a few queries.  Well, here's my story.
I have working on my 56K board reverb, chorus, flange and combinations of them.
The chorus and flange I came up with after playing with and analyzing a
commercial chorus pedal.  I looked at the impulse response and delay-time
characteristics of the box on a scope.  I feel OK about releasing my chorus
and flange code.  The chorus code is attached.

But, my hangup with the reverb is that I used the filter configuration and
coefficients from csound.  I could probably give credit to Dr. Vercoe and
release the code, but while I am quite pleased with the performance of the
algorithm, I would like to tweak it and expand on it to better match it to
my sample rate.  The 56001 has suds left over (I run at 25 MHz).  I remember an 
article I saw in the Computer Music Journal by Dr. Moorer (I think)
where he discussed filters for reverb.  I was hoping to get a hold of his
paper again to attempt to tune the code.  I think I need another comb filter
or two.  The sound is a bit "grainy" on highs.

But, anyhow, here is some sample code for chorus.  Chorus uses a single
delay-line with time-varying delay time.  Flange is very similar, with
shorter delay and feedback, building effectively a time-varying comb
filter.  Reverb (as implemented in csound) uses four comb filters and
then two all-pass filters.  Commercial reverb makers are very protective
of their respective algorithms.

By the way, I do not use the Motorola assembler but one that I wrote using
YACC and LEX.  It was harder than I thought and I don't like the way the
grammar turned out.  But it does work.  Would any of you DSP hacks like
a documentationless assembler for the 56001?  I've been very tempted to
post it, too, but was afraid of taking on the support issues.

I guess I'll post my comment-lean flange code as well.  The comments
in the chorus code will help.

Enjoy,

Quinn Jensen
work: jensenq@npd.novell.com
home: jensenq@qcj.icon.com
