[sdiy] Voice assignment algorithms
Scott Gravenhorst
music.maker at gte.net
Thu Mar 25 19:46:58 CET 2010
Tom Wiltshire <tom at electricdruid.net> wrote:
>Thanks Scott. Do you suppose that a sensible algorithm that works for
>both is possible, or am I asking for too much (again)?
>
>I have an old Roland SoundCanvas multitimbral module kicking about.
>It allows you to configure up to 16 parts, each with its own MIDI
>channel. You can then assign some number of voices from the 24
>available to each part. I should check how it handles monophonic
>parts. Probably they just have different code if the number of voices
>is set to one, and I guess I could do the same.
>
>Still, if there's a better way...
>
>T.
Hmm. Your code space is much larger than mine, PicoBlaze allows a maximum of 1024
instructions. Both of the MIDI controllers use a tad more than 1/2 that. And in
the PicoBlaze there wouldn't really be enough RAM (64 byte locations).
>From the standpoint of the logic, it is my opinion that trying to meld the two
systems into one universal system would be restrictive at best.
Given your more lavish code space resource (and I'm assuming that this will run in
it's own PIC), it may be better in the long run to support two code segments, one
for poly and the other for mono. They could easily share many of the same
subroutines, and possibly parts of the same MIDI state machine. I would probably be
apt to attempt something where the code is controlled by a configuration bit that
selects mono/poly and thus two different algorithms rather than trying to force a
single algorithm to accomodate both without knowing which environment to which it's
talking.
Prolly not what you really wanted to hear...
>On 25 Mar 2010, at 18:06, Scott Gravenhorst wrote:
>
>> I don't believe that my polysynth uC code will work in a musically
>> correct way for a mononsynth.
>
-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- When the going gets tough, the tough use the command line.
More information about the Synth-diy
mailing list