[sdiy] Digital VCO update

Eric Brombaugh ebrombaugh at earthlink.net
Sun Apr 30 20:55:47 CEST 2006


ASSI wrote:
> In the absence of PWM you could probably use a narrow pulse to good 
> effect... Or just implement another shorter cycle PRNG to have something 
> that sounds more "cyclical".
>   

I've already got a short pulse available. A 256 sample wavetable of 
random values could make for an interesting sound though. If the PDF is 
uniform you get an interesting metallic buzz. I'll give it a try and see 
what happens.

> Sync! If this could be a CV input: PWM.

Sync is already on the to-do list. Sorry, no CV inputs - I already tried 
that for the waveform select and the two ADCs conflict with each other.

> Another idea would be a sync OUTPUT. If the waveform selector is only 
> read synchroneous to a full waveform cycle, you can externally set up 
> a new waveform selector when you see the sync signal and do some 
> waveform "sequencing".

Interesting idea. The waveform select is read at the end of every CV 
computation which runs at a fixed 244Hz rate, so I can't do 
cycle-by-cycle selects.

> I'd do a test first how bad this really is in practise. I wouldn't 
> expect the junction temperature to vary all that much given tha you 
> max out the chip all the time, so it could very well be OK for most 
> things. The clock input would of course be most welcome if you start 
> doing PSOC oscillator farms...

I've been doing that this morning. I've got the breadboard patched into 
the rest of my modular and it seems very stable as-is. Unfortunately, 
the expo curve is a lot more accurate than my PAiA 9720 VCO, so they 
don't track well over more than a few octaves. The digital VCO does 
track my Casio keyboard nicely though, so I know it's not the problem.

Nevertheless, it's a real hoot to have another oscillator in the system. 
It also seems like the reconstruction filter may not be particularly 
useful - the 62.5kHz sample rate is high enough that I'm not getting any 
significant aliasing from that process.

> I'd almost opt for setting up a two-wire interface at these two pins 
> rather than a static select in this case (probably difficult with the 
> code space and cycles). One pin is the shift clock output and the 
> other the shift data input. Reset is the sync out, and after this you 
> just clock in whatever number of bits from an external shift register.

I've thought of that. The PSoC has a built-in I2C interface, but 
unfortunately in the 8-pin package it uses the same GPIO pins as the 
crystal oscillator, so you can't use them both at the same time. Going 
to the 20-pin package allows more freedom in that regard, but then there 
are more pins overall so it's not so advantageous to use a serial protocol.

You're right though - I am running out of resources. The flash memory is 
94% full at this point, so there's not a lot of room left for more features.

Eric



More information about the Synth-diy mailing list