[sdiy] Digital Synth Module ideas ...

Seb Francis seb at burnit.co.uk
Tue Sep 5 02:40:44 CEST 2006


>> 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.
>
>   

Yeah, very true ... filtering will definite make these chopped up 
waveforms more appealing.

>>> 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>
>   

No sarcasm intended :)

> 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.
>
>   

I don't think I'd use the CVs like this.  I prefer to have CVs causing a 
smoothly changing effect, otherwise it's just a bit of a waste of a CV 
input and you may as well have one or more buttons with LEDs (or gate 
inputs).

I'd probably take a nice sounding bit swap as a starting point (e.g. 
bits 13&14) and figure out a way to mathematically morph from 
undistorted to fully bit swapped.  Then control this with a CV.

>
> 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 :
>   

Well perhaps I'm just lazy and don't want to master yet another 
programming language and associated libraries ;)
.. and I do like to be able to just edit and run without compiling every 
time, then opening a debugger when the exe core dumps on me!

>   #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...
>
>   

It seems that all 3 languages are pretty similar for this little example ...
(although TCL will look the weirdest to people familiar with C syntax!)

#!/bin/tclsh
while {[string length [set word [read stdin 2]]] == 2} {
    binary scan $word s1 val
    set val [expr {abs($val)}]
    puts -nonewline [binary format s $val]
}

Both scripting languages are a bit ugly when it comes to getting packed 
16 bit integers from a file/stdin.  But once those 2 lines are written 
then the maths operations can be carried out just as easily in any 
language.  TCL handles maths operations just fine as long as you are 
aware how it handles auto-converting between variable types.

Seb





More information about the Synth-diy mailing list