[sdiy] Digital Synth Module ideas ...

Andre Majorel aym-htnys at teaser.fr
Tue Sep 5 01:27:24 CEST 2006


On 2006-09-04 19:48 +0100, Seb Francis wrote:
> Andre Majorel wrote:
> >On 2006-09-04 11:07 +0100, Seb Francis wrote:
>
> >In general, the resulting spectrum is very sensitive to the
> >amplitude of the input signal so it's definitely worth trying it
> >post-VCA.
> 
> Yeah, this is what I found when I tried it out myself (while developing 
> the 4xD software, I got curious and tried swapping some high order bits 
> around) - depending on the amplitude you go from undistorted to very 
> distorted as you cross the bit threshold.  I didn't find it a terribly 
> useful or pleasant effect for processing complete sounds,

It's highly non-linear so yes I imagine it gets ugly fast on
complex signals. It's like clipping -- couldn't possibly be of any
use for music. ;-)

> although probably it would be quite good with raw waveforms.

Yes. Let's put it through an LPF and a VCA and see what happens.
An unfiltered, static saw tooth wave doesn't exactly sound
appealing either.

> >For a hardware implementation of bit swap, I would use an ADC and
> >a DAC back-to-back with a patch panel between the two, say 12 jack
> >sockets for the top 6 bits. It's intuitive and it opens the
> >possibility of doing bit-bashing with external logic modules like
> >the CGS26 and CGS39. IMO that would be a better interface than
> >anything you might achieve with a micro-controller and a bunch of
> >buttons and LEDs.
> 
> Interesting idea :)

Not knowing how much sarcasm there is in this reply, <g> I'll add
that this setup would also give you quantising for free. If you
normal each socket on the left to its counterpart on the right,
just inserting unconnected patch cords in the N bottom sockets
will quantise to (6 - N) bits. Not voltage controlled, but at
that price you can't complain.

It would also be easy to make arithmetic modules with 74HC chips
but all the operations I can think of -- absolute value, addition,
multiplication, division, minimum, maximum, comparisons -- are
easily done with analogue circuitry. Counters and flip-flops might
be useful though I'm not sure how.

> I was intending that the micro-controller be voltage controlled,
> so the interface would not restricted to buttons and LEDs,
> although there would only be a limited number of CV inputs.

For bit swapping, you could use CV inputs 1 and 2 for bit number
selection. Sounds a bit fiddly to me but so do analogue sequencers
and yet people swear by them.

> > It's C++.
> 
> Ah ok .. I was wanting to use some nice unfussy scripting language
> like tcl.  I guess it'd be pretty easy provided the files to be
> processed are raw PCM.

The assumption that it's quicker to do DSP in a general purpose
scripting language than in a general purpose compiled language
merits examination, Mr. Francis. Compare C and Perl, for example :

  #include <stdio.h>
  #include <stdlib.h>
  int main () {
    short v;
    while (fread (&v, sizeof v, 1, stdin) != 0) {
      v = abs (v);
      fwrite (&v, sizeof v, 1, stdout);
    }
  }

vs.

  #!/usr/bin/perl -w
  use strict;
  my $buf;
  while (read (STDIN, $buf, 2)) {
    my $v = unpack ('s', $buf);
    $v = abs ($v);
    $buf = pack ('s', $v);
    print $buf;
  }

Is one less "fussy" than the other ? And TCL is not likely to fare
particularly better than Perl, since it treats arithmetic
expressions like second-class citizens...

-- 
André Majorel <URL:http://www.teaser.fr/~amajorel/>
Do not use this account for regular correspondence.
See the URL above for contact information.



More information about the Synth-diy mailing list