[sdiy] Wavetable Design Update
Paul Maddox
paul.Maddox.mail-list at Synth.net
Wed Feb 2 23:13:21 CET 2011
Matt,
I don't understand the problem... you could use a 32 bit word, the
upper 8 bits for the waveform lookup and a timer of say 1Mhz (though
it may have to be slower depending on the speed of your main CPU clock
and time to complete your "main" loop).
In your timer loop you simply add a value (up to 24bits) to your 32
bit word, then in your "main" loop, pull off the top 8 bits and look
up from a wavetable stored in FLASH and put that on an IO port.
This saves problems with external EEPROM and lack of accuracy in the timers.
So for Zira (www.vacoloco.net/synths/zira) I have two AVRs.
One does the UI, EGs, MIDI and so on... the MEGA8 gives me two
oscillators with sub oscillator and 32 waveforms all on a single chip
(only a single output though).
I see no real reason why you can't do the same if you're using separate chips.
You could even use one chip per oscillator and one control chip.
or did I miss something?
I don't mean this to sound rude, but it does sound like you're over
complicating what you're trying to achieve.
Paul
On 2 February 2011 21:43, Matthew Smith <matt at smiffytech.com> wrote:
> Quoth Paul Maddox at 03/02/11 05:47...
> ...
>>
>> Will you get the resolution you need from that timer?
>> I have a feeling you may not.
>
> I don't know. As soon as prescale is applied, that's when I think I could
> really get into trouble, hence the original issue. As I'm not game for
> over-clocking, one option is to use the faster Dallas 8051-based devices I
> have on hand, but this would involve going into an unfamiliar environment.
>
> My preferred option, should this be a real issue, is one of
> re-configuration. As I've been thinking 'organ' from the word go, I might
> indeed split the device into ranges with one of the 6 sections becoming a
> stop covering the 'squeaky' notes at a reduced sample rate.
>
> From the input of Dave/Tom/Scott, I like the idea of breaking things down
> into octave+note (where note can be a fractional value rather than just
> plain 12 increments.) Furthermore, I'm thinking of taking away the job of
> working out the timer register values from devices doing the clock
> generation so that the master/assigner device takes on this task - the clock
> generators would then be fed the actual values to be plugged into the timer
> registers.
>
> This complicates the controller software (per my response to Veronica) but,
> having thought about it, not that much. The assigner would also send note
> messages only to stops within whose range the note falls.
>
> With the assigner only receiving MIDI and doing a calculation only at
> note-on, I don't think the maths will result in any audible delays. Heck, a
> 20-cycle calculation at 20MHz is only going to take 1us.
>
> Cheers
>
> M
>
>
> --
> Matthew Smith
>
> Blog: www.smiffysplace.com Business: www.smiffytech.com
> www.linkedin.com/in/smiffy www.flickr.com/photos/msmiffy
> twitter.com/smiffy
>
More information about the Synth-diy
mailing list