[sdiy] semi ot: convolution and ringmodulation : interested? & help
Czech Martin
Martin.Czech at Micronas.com
Tue Oct 9 14:17:08 CEST 2001
I did not solder much this year (1), but I did some very interesting C
programming. One activity came out as a convolution tool.
Read more here:
http://www.geocities.com/SoHo/Museum/4459/software_em/fact.html
It was not so easy for me to program this. It was even more difficult
to use this in the context of my pieces.
I have composed two pieces for my 4th CD using this technique.
Especially the convolution of rather long sequences is interesting.
Other research (reverb) is ongoing, I will not tell here, but
the results will be interesting for sure.
The other one is brandnew. I needed ringmodulation for the CD and also
for the performance of my tape music instantly. So there was pressure.
I finally came up within 6 days with this C code.
It is a discrete implementation of a so called "ring modulator",
or -as we say- 4 quadrant multiplier. If you do this in discrete
domain, it is not just multiplication, since you must make sure that
the side bands will not get aliased. Thus internal sample rate conversion
is involved, leading to the fact that for any pair of input samples
hundreds of multiplications and additions have to be made.
Of course the code is optimised, so that unnecessary high sample
rate operations are avoided. On my slugish 100MHz Pentium
it will take 2x the playing time, you see how this will go
with a 1GHz machine. Of course, the output is automatically
normalised to 16 bit (same as in FACT), so application
is a real no brainer. Input sample quality should be good,
garbage in, garbage out. This applies especially to spurious
DC offset (ADC).
I think it is interesting that one can hear almost ideal multiplication
without nonlinearities or noise. Caveat: analog systems can modulate
with 20kHz or 40kHz and higher, thus effectively shifting both
sidebands out of audio range. This will obviously not work for
44.1 kHz sample rate input. I didn't need that so far, but
the remedy is straight forward. It can be done.
Another thing is pitch tracking. It would be interesting to track
the modulator with the incomming programme signal.
So there is some work to be done...
If there is any interest I can put the source on my site.
Some people complained that I gave no executeables, or executeables
with rather long dynamic linked libs. This is correct.
Is there anybody out there who could compile these sources for
DOS or MacOS without any lengthy DLLs?
m.c.
(1): if the new girlfriend issue runs hot, the iron will stay cold
very simple. Remember my bitter remarks in spring? A real hate/love affair.
All has settled now. I guess I will be married in 2002.
But I should point out that it is my problem if I'm not able to do
anything due to psycho stress, not hers.
m.c.
More information about the Synth-diy
mailing list