having worked a little with the SPI DAC on the arduino, it dawned on me today that a very nice "programmable" LFO could be built from it, you could have selectable waveforms, tempo control, trigger input (for sync)
and the thing that really interested me was the possibility of "drawing" a waveform, this could be acheived by breaking a wave into a selectable number of chunks, and then letting the user choose the output level of each of these, so that potentially any waveform is possible.
the only bummer might be displaying it, this could possibly be overcome by using the 128 pixel displays but i havent worked with those yet so unsure of how easy that would be.

dont know if anyone can be bothered to implement this or not, but its out there as an idea now, might have a go myself, when i clear this backlog....*checks backlog*...that may be some time. __________________Richard_

I have a shield that is two MCP4922's, a TL074 and a TL072. The original intent was a foundational piece of MIDI2CV with the Arduino--the 4 outputs from the MCP4922's go to the TL074 for buffering, and two other digital pins go to the TL072 to generate gate/trigger out.

Then I sat and brainstormed what other things I could do with 4 CV outs and two digital outs.

LFO was one of the things. However, i hadn't really thought about it any further. The input for sync is a good idea...I don't have any room on my shield to add input buffering to protect the Arduino, but then again, I was going to make multiple shields for the MIDI purpose anyway...

edit: One thing this DOESN'T do is shifting or scaling of the waveform. So it's a 0 - 5V wave. Probably should rework the op amp outputs to not be simple buffers, but actually do some of that scaling.

having worked a little with the SPI DAC on the arduino, it dawned on me today that a very nice "programmable" LFO could be built from it, you could have selectable waveforms, tempo control, trigger input (for sync)
and the thing that really interested me was the possibility of "drawing" a waveform, this could be acheived by breaking a wave into a selectable number of chunks, and then letting the user choose the output level of each of these, so that potentially any waveform is possible.
the only bummer might be displaying it, this could possibly be overcome by using the 128 pixel displays but i havent worked with those yet so unsure of how easy that would be.

dont know if anyone can be bothered to implement this or not, but its out there as an idea now, might have a go myself, when i clear this backlog....*checks backlog*...that may be some time.

Use sliders and interpolate between the values. Sliders will be compact and can display your waveform. Or google for touch displays made out of those square led matrixs you can get from sparkfun http://www.youtube.com/watch?v=BcqXhpOE71M

welp, I've done some reading, a lot of asking (thanks scott) and have a very simple prototype growing on the breadboard.

so far ive got 5 adjustable "points", I have a "curved" waveform available, "linear" and "square" will also be options on the board, it will have adjustable tempo and sync in, im guessing that with a sync in option the unit will take a few clock pulses, average them out and then draw the waveform based on the time between the pulses. theres a possibility that I could implement a 1/1 1/2 1/4 etc switch to have the waveform sync at a specified time not sure how useful that would be.

so far ive got 5 adjustable "points", I have a "curved" waveform available, "linear" and "square" will also be options on the board, it will have adjustable tempo and sync in, im guessing that with a sync in option the unit will take a few clock pulses, average them out and then draw the waveform based on the time between the pulses.

very cool keep the info coming
I am just starting out getting into arduino for another project, so i know almost nothing as yet
but it occurs to me that this direction you are going does not just pertain to
an LFO it could also be treated as an EG and a drawable EG on a touch screen would be very interesting indeed._________________In an infinite universe one might very well
ask where the hell am I
oh yeah thats right the land of OZ
as good an answer as any

im trying to keep this simple, so I've decided against a lcd menu driven interface, and im sticking with led's for indication and a 3x7segment display for the BPM counter. it will have a clock out, also clock in (which should count and display BPM) using this as an EG is a nice idea, so ill look into adding a "one shot" mode with a trigger in, im also considering adding a "free" mode, that isn't constrained to a particular BPM and just "goes with the flow"

BPM counter is working.
have the waveform looking neat now, with some efficiency improvements by storing the values in an array instead of working them out every cycle
(thanks Scott and blue)

there is a pushbutton now to "capture" the new waveform from the potentiometers, this allows for greater speed as the calculation for the interpolated values is done only once.

there are 4(I think) possible types of wave
a "square" wave, so just the peaks.
a "linear" wave, that interpolates in a direct line between points
a "round" wave that uses catmull spline interpolation.
and im sure theres another im at work so I cant look it up.
these will be selectable via a pushbutton.

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum

Please support our site. If you click through and buy from our affiliate partners, we earn a small commission.