Voltage controlled arpeggiator (was Re: [sdiy] Design Process)
cheater cheater
cheater00 at gmail.com
Wed Feb 17 23:01:05 CET 2010
According to the chord you are holding and the range, you would have a
certain number of pitches that should get played eventually. Number
those pitches 1 to n and divide the ADC input into this many equal
ranges. It's real simple to do in code, not sure what the best way to
do it is, but you could do something like this:
if your ADC input called adcIn is a variable ranging from 0 to M, and
you have n notes:
rangesize = M/n //this is shorthand for integer division with rounding down
rangenumber = 0
do {
rangenumber++
} while((rangenumber * rangesize < adcIn) and (rangenumber < n))
Now you have your note number.
The second loop is also integer division and cold be replaced by
something like rangenumber = 1+min(n, floor(adcIn/rangesize)), but I
just included it to make it explicit.
You might also want to use something that actually takes into
consideration the pitches of the notes you are holding. Then you just
have to adjust the intervals to reflect the distance between the
neighboring notes, instead of making them equal.
D.
On Wed, Feb 17, 2010 at 18:07, David G. Dixon <dixon at interchange.ubc.ca> wrote:
>> But you define the chords in an arpeggiator by holding down multiple
>> keys on the keyboard - I'm not sure what you mean - do you just want
>> to hold one key and select a chord with some sort of interface?
>
> No, what your said first is correct. You would play a chord on the
> keyboard, and the arpeggiator would give you the arpeggio of this chord.
> The range of this arpeggio (from less than an octave to eight octaves) would
> depend on a CV attenuator. The shape of this arpeggio (up and down, only
> up, only down, random notes, etc) would depend on the shape of the CV. It's
> probably pretty standard, but I still want to build one, and I don't really
> want to use uP's if I can get away without them.
>
>
More information about the Synth-diy
mailing list