[sdiy] Arpeggiator1 / Arduino UNO
Tom Wiltshire
tom at electricdruid.net
Fri Apr 10 18:25:09 CEST 2015
When I worked on the TransEuropa with Rick Holt of Frequency Central, we were able to produce wide ranging CVs using this method. The secret is that the CV was quantized to notes. We used a 4+4 PWM DAC.
The TransEuropa started life as a solution to the problem of oscillators without accurate octave knobs. Then we added some features. Then it got all out of hand.
We used one "Semitone" PWM channel which produced a four-bit output, of which only 12 levels were used. This was simple to calibrate to 83mV/step.
The other "Octave" channel was set up as a four-bit output, and calibrated to 1V/step. Again, we didn't use all of the steps. Adding the two together and then filtering to remove the PWM carrier frequency worked fine. Since neither PWM was doing many steps, and since crystal-counter-based PWM is inherently linear, it has a very linear output. Additionally, since both PWM channels are only four bit, the PWM frequency is extremely high (250KHz) which means it's simple to filter it and not get any audible ripple in the output.
More about it here:
http://www.frequencycentral.co.uk/?page_id=1311
Tom
On 10 Apr 2015, at 09:08, Roman Sowa <modular at go2.pl> wrote:
> How does your 8+8 bit PWM DAC perform in terms of DNL at the MSB boundary? I mean when for example it goes from 40FFh to 4100h, as well 4000h to 3FFF.
>
> Roman
>
> PS. I put so many tehnical sounding mumbo jumbo in first sentence that it sounds even funny :)
>
> W dniu 2015-04-10 o 01:03, Rick Jansen pisze:
>> Hi all,
>>
>> Well, at long last I'm a bit back to synth-diy-ing. Here is my first
>> Arduino UNO based project: an arpeggiator:
>> <http://dropmix.xs4all.nl/rick/Emusic/Arpeggiator1/>
>>
>> It serves two purposes: 1. getting to know the Arduino, and 2. finally
>> using that 1-octave piece of keyboard that was in a box for 20 years.
>>
>> It's still in the breadboard phase, as a tryout for the upcoming
>> sequencer, but it works, and I'm having a lot of fun with it.
>>
>> A longer writeup, images and sketch are in the web page
>>
>> <http://dropmix.xs4all.nl/rick/Emusic/Arpeggiator1/>
>>
>> Here are some keywords:
>>
>> - I2C 8574 ic's as in/out expander: 2 chips to read the 12-key 1-octave
>> keyboard, interrupt based; 4 bits spare;
>> - I2C 8574 ic's as LED outputs: 12 LEDs, one per key, displaying the
>> note playing as a sequencer; 4 bits spare;
>> - Can easily be expanded to 64 keys in + 64 LEDs out, or 128 things in
>> or out, or whatever. (I2C is great!)
>>
>> - ~16 bit "DAC" without a DAC: using two PWM pins combined, and
>> RC-filters, to produce the control voltage;
>> - gate signal; gate may be shorter than the note duration for
>> "staccato", etc;
>>
>> - TimerOne interrupt based timing, 120BPM, 24 ppqn, like midi does, if I
>> understand that correctly;
>>
>> - sequence mode: up / down / up-down / random ;
>>
>> - For each note there's a pitch, a duration and a gate duration,
>> internally, although for the arpeggiator note and gate duration are
>> currently fixed value (all quarter notes, @ 24 ppqn)
>>
>> - Operation:
>> 1. press START
>> 2. press one or more keys of the keyboard
>> 3. while you keep the keys pressed the machine loops through the
>> corresponding notes
>> 4. press STORE to store the melody; you can now release the keys
>> ...
>> 8289. press STOP
>>
>> rick
>>
>>
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at dropmix.xs4all.nl
>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
More information about the Synth-diy
mailing list