Custom waveform synth/LFO idea

Started by nexekho, August 11, 2011, 02:00:41 PM

Previous topic - Next topic

nexekho

I imagine I'm infamous for having bright ideas that don't work by now but  ;D

I stumbled upon the 4017 decade counter and realised that if I could use variable resistors to vary each pin's output, I could probably build a very flexible low-fi synthesizer.  Ram 10x the frequency you want into the CLOCK pin and it should output the wave requested.  I put a rough layout together, just the rough outline with many of the components simplified or missing; can anyone say if it would/would not work or if something similar's been built in the past?



I can't imagine it'd be great for LFO work though as the low resolution of the waveform would be very obvious.
I made the transistor angry.

frequencycentral

I've seen similar in a copy of E&MM from the 80's.
http://www.frequencycentral.co.uk/

Questo è il fiore del partigiano morto per la libertà!

slacker

Yeah that basic idea will work, it's essentially a sequencer running at audio speeds. There's a lot of CD4017 based sequencer projects out there so you could have a look at some of those for ideas.

One of the synth gurus over at electro-music has a project based on the same idea, so you're in good company :) http://www.electro-music.com/forum/viewtopic.php?t=28571

nexekho

Ah, thanks!  I've just built it in Falstrad and it seems to work, though I might look into some form of waveform smoothing because it's currently VERY rough, though I picture the real components are probably a bit less precise and have some "give".
I made the transistor angry.

nexekho

Here's my "completed" Falstrad sim of the circuit.  It took some tweaking to get it to work nicely without any "magic grounds".  An LFO switch allows you to choose a capacitor, for a range of 6-102Hz in LFO mode (.6-10.2Hz at output) and a range of 673Hz-10.2kHz (67.3-1020Hz at output) in synth mode.  Volume and pitch control included.  Would probably include a fine pitch pot in series with the current pitch pot on the actual build.  I can't find an easy way to make it AC, so I've just used a resistor to drop the voltage to a line out safe 1.44v.

$ 1 5.0E-6 5.023272298708815 64 7.0 50
w 384 976 352 976 0
r 64 1040 352 1040 0 470.0
w 352 1040 384 1040 0
w 352 1040 352 1072 0
w 352 1072 384 1072 0
c 352 1072 352 1136 0 1.0E-7 3.4039419993779023
r 352 976 352 912 0 470.0
w 352 912 448 912 0
165 384 944 400 944 2 0.0
w 448 912 512 912 0
w 512 912 512 976 0
v 272 1136 272 912 0 0 40.0 9.0 0.0 0.0 0.5
w 272 912 352 912 0
163 544 976 896 800 0 10 0.0 0.0 0.0 0.0 5.0 0.0 0.0 0.0 0.0 0.0
w 512 1008 544 1008 0
w 512 976 512 1040 0
w 512 1040 864 1040 0
w 224 1136 272 1136 0
174 576 896 560 864 0 1000.0 0.0050 Resistance
174 608 848 592 816 0 1000.0 0.0545 Resistance
174 640 800 624 768 0 1000.0 0.30200000000000005 Resistance
174 672 752 656 720 0 1000.0 0.6782 Resistance
174 704 704 688 672 0 1000.0 0.8861000000000001 Resistance
174 736 656 720 624 0 1000.0 0.9950000000000001 Resistance
174 768 608 752 576 0 1000.0 0.9059 Resistance
174 800 560 784 528 0 1000.0 0.6485000000000001 Resistance
174 832 512 816 480 0 1000.0 0.30200000000000005 Resistance
174 864 464 848 432 0 1000.0 0.0347 Resistance
w 224 1136 224 864 0
w 224 432 224 480 0
w 224 480 224 528 0
w 224 528 224 576 0
w 224 576 224 624 0
w 224 624 224 672 0
w 224 672 224 720 0
w 224 720 224 768 0
w 224 768 224 816 0
w 224 816 224 864 0
d 848 448 464 448 1 0.805904783
d 816 496 464 496 1 0.805904783
w 464 496 464 448 0
d 864 432 224 432 1 0.805904783
d 832 480 224 480 1 0.805904783
d 800 528 224 528 1 0.805904783
d 768 576 224 576 1 0.805904783
d 736 624 224 624 1 0.805904783
d 704 672 224 672 1 0.805904783
d 672 720 224 720 1 0.805904783
d 640 768 224 768 1 0.805904783
d 608 816 224 816 1 0.805904783
d 576 864 224 864 1 0.805904783
d 784 544 464 544 1 0.805904783
d 720 640 464 640 1 0.805904783
d 688 688 464 688 1 0.805904783
d 656 736 464 736 1 0.805904783
d 624 784 464 784 1 0.805904783
d 592 832 464 832 1 0.805904783
d 560 880 464 880 1 0.805904783
w 464 880 464 832 0
w 464 832 464 784 0
w 464 784 464 736 0
w 464 736 464 688 0
w 464 688 464 640 0
w 464 640 464 592 0
w 464 592 464 544 0
w 464 544 464 496 0
d 752 592 464 592 1 0.805904783
w 576 896 576 944 0
w 864 944 864 464 0
w 832 512 832 944 0
w 800 944 800 560 0
w 768 608 768 944 0
w 736 944 736 656 0
w 704 704 704 944 0
w 672 944 672 752 0
w 640 800 640 944 0
w 608 944 608 848 0
w 192 976 352 976 0
174 64 1040 128 912 0 10000.0 0.46040000000000003 Pitch
O 464 240 464 176 1
174 464 384 368 320 0 1000.0 0.0050 Volume
w 416 320 464 320 0
w 224 384 224 432 0
w 368 384 224 384 0
w 464 320 464 240 0
r 464 448 464 384 0 2000.0
w 192 976 128 976 0
c 320 1072 320 1136 0 1.0E-5 3.9886015303436144
w 352 1072 320 1072 0
S 336 1248 336 1136 0 1 false 0
w 272 1136 336 1248 0
x 366 1211 561 1217 0 24 LFO/Synth Switch
x 636 197 812 203 0 24 4017 Synth/LFO
x 636 229 807 235 0 24 Ne'X Ekho 2011
o 79 32 0 34 1.5660115838168849 0.0 0 -1


Anyone see any problems?  Will it work in the real world?  I had to add two diodes on each wave fragment to stop them biasing each other, is there a better way or other stuff I can get rid of?
I made the transistor angry.

nexekho

Sorry to bump a third time, but I've designed another synth based on a very similar principle.  I looked up how much sliders were.  Youch.  Even if I substitute for pots, it's nearly what I spend on an entire project in waveform generator alone.  So I considered what might make a lower cost, yet still fairly flexible replacement.  Two 4017s are used.  One feeds the 555 to oscillate the frequency to make saw waves (adjustable using a single pot so you can saw either way or leave it in the middle for no sawtoothing) and the other goes through a nice pile of resistors to produce a sine and triangle approximation, blending between the two using a pot.  Then, to solve the nasty rough wave problem, there is an adjustable bandpass filter.  I need to clean up the layout, remove superflous parts and so on, but any comments?

$ 1 5.0E-6 0.41233529972698213 64 7.0 50
w -16 -64 -64 -64 0
w -48 0 -16 0 0
w -48 0 -48 32 0
w -48 32 -16 32 0
c -48 32 -48 112 0 1.0000000000000001E-7 2.6071013204376614
w -48 -128 48 -128 0
165 -16 -96 0 -96 2 -0.0
w 48 -128 112 -128 0
w 112 -128 112 -64 0
163 192 -64 560 -64 0 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0
w 112 -32 192 -32 0
v -144 96 -144 -128 0 0 40.0 5.0 0.0 0.0 0.5
w -144 -128 -48 -128 0
w -64 192 -144 96 0
w 224 -96 224 -176 0
w 256 -96 256 -208 0
w 288 -96 288 -240 0
w 320 -96 320 -272 0
w 352 -96 352 -304 0
w 384 -96 384 -336 0
w 416 -96 416 -368 0
w 448 -96 448 -400 0
w 480 -96 480 -432 0
w 512 -96 512 -464 0
w 224 -176 192 -176 0
w 256 -208 192 -208 0
w 288 -240 192 -240 0
w 320 -272 192 -272 0
w 352 -304 192 -304 0
w 384 -336 192 -336 0
w 416 -368 192 -368 0
w 448 -400 192 -400 0
w 480 -432 192 -432 0
w 512 -464 192 -464 0
d 192 -464 160 -464 1 0.805904783
d 192 -432 160 -432 1 0.805904783
d 192 -400 160 -400 1 0.805904783
d 192 -368 160 -368 1 0.805904783
d 192 -336 160 -336 1 0.805904783
d 192 -304 160 -304 1 0.805904783
d 192 -272 160 -272 1 0.805904783
d 192 -240 160 -240 1 0.805904783
d 192 -208 160 -208 1 0.805904783
d 192 -176 160 -176 1 0.805904783
r 160 -176 112 -176 0 4700.0
r 160 -208 112 -208 0 2400.0
r 160 -240 112 -240 0 1200.0
r 160 -272 112 -272 0 620.0
r 160 -304 112 -304 0 330.0
r 160 -336 112 -336 0 160.0
r 160 -368 112 -368 0 82.0
r 160 -400 112 -400 0 47.0
r 160 -432 112 -432 0 22.0
r 160 -464 112 -464 0 10.0
w 112 -464 112 -432 0
w 112 -432 112 -400 0
w 112 -400 112 -368 0
w 112 -368 112 -336 0
w 112 -336 112 -304 0
w 112 -304 112 -272 0
w 112 -272 112 -240 0
w 112 -240 112 -208 0
w 112 -208 112 -176 0
w 112 -464 80 -464 0
w 224 -176 224 -512 0
w 224 -512 192 -512 0
d 192 -512 160 -512 1 0.805904783
r 160 -512 112 -512 0 10.0
w 256 -208 256 -544 0
w 256 -544 192 -544 0
d 192 -544 160 -544 1 0.805904783
r 160 -544 112 -544 0 22.0
w 288 -240 288 -576 0
w 288 -576 192 -576 0
d 192 -576 160 -576 1 0.805904783
r 160 -576 112 -576 0 47.0
w 320 -272 320 -608 0
w 320 -608 192 -608 0
d 192 -608 160 -608 1 0.805904783
r 160 -608 112 -608 0 82.0
w 112 -512 112 -544 0
w 112 -544 112 -576 0
w 112 -576 112 -608 0
w 112 -512 80 -512 0
w 352 -304 352 -640 0
w 352 -640 192 -640 0
d 192 -640 160 -640 1 0.805904783
r 160 -640 112 -640 0 160.0
w 112 -640 112 -608 0
w 384 -336 384 -672 0
w 384 -672 192 -672 0
d 192 -672 160 -672 1 0.805904783
r 160 -672 112 -672 0 330.0
w 112 -672 112 -640 0
w 416 -368 416 -704 0
w 416 -704 192 -704 0
d 192 -704 160 -704 1 0.805904783
r 160 -704 112 -704 0 620.0
w 112 -704 112 -672 0
w 448 -400 448 -736 0
w 448 -736 192 -736 0
d 192 -736 160 -736 1 0.805904783
r 160 -736 112 -736 0 1200.0
w 112 -736 112 -704 0
w 480 -432 480 -768 0
w 480 -768 192 -768 0
d 192 -768 160 -768 1 0.805904783
r 160 -768 112 -768 0 2400.0
w 112 -768 112 -736 0
w 512 -464 512 -800 0
w 512 -800 192 -800 0
d 192 -800 160 -800 1 0.805904783
r 160 -800 112 -800 0 4700.0
w 112 -800 112 -768 0
174 32 -512 -32 -448 0 10000.0 0.9950000000000001 Wave Crash
w 32 -512 80 -512 0
w 32 -448 80 -448 0
w 80 -448 80 -464 0
w -32 -480 -64 -480 0
w -64 -160 -64 -64 0
w 0 -224 -64 -480 0
w 0 -224 -64 -160 0
174 -304 -64 -256 0 0 4700.0 0.0050 Speed
w -256 -32 -48 0 0
r -64 -64 -304 -64 0 10.0
174 -224 -256 -256 -320 0 1000.0 0.9950000000000001 Crash Bypass
w -256 -288 -64 -480 0
r -144 -128 -224 -256 0 1000.0
S -64 192 -64 112 0 1 false 0
c -80 32 -80 112 0 9.999999999999999E-6 0.0010000000000087717
w -80 32 -48 32 0
S 64 112 64 192 0 0 false 0
w 112 -32 128 -16 0
w 128 -16 128 112 0
w 128 112 64 112 0
r 48 272 48 192 0 430.0
162 48 272 -48 272 1 2.1024259 1.0 0.0 0.0
163 192 48 256 80 2048 10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 5.0 0.0
w 128 -16 192 80 0
w 192 80 192 48 0
w 512 16 512 0 0
w 512 16 160 0 0
w 160 0 160 -64 0
w 160 -64 112 -64 0
O 688 48 688 -64 1
w 480 112 480 144 0
w 688 144 688 112 0
r 512 112 688 112 0 10.0
w 688 144 688 176 0
w 448 176 448 112 0
w 416 112 416 208 0
w 688 208 688 176 0
w 688 208 688 240 0
w 384 240 384 112 0
w 352 112 352 272 0
w 688 272 688 240 0
w 688 272 688 304 0
w 320 304 320 112 0
w 288 112 288 336 0
w 688 336 688 304 0
w 256 112 256 368 0
w 688 368 688 336 0
w 688 368 688 400 0
w 224 400 224 112 0
w 480 144 512 144 0
w 448 176 512 176 0
w 416 208 512 208 0
w 384 240 512 240 0
w 352 272 512 272 0
w 320 304 512 304 0
w 288 336 512 336 0
w 256 368 512 368 0
w 224 400 512 400 0
r 512 400 688 400 0 11.0
r 688 368 512 368 0 18.0
r 512 336 688 336 0 39.0
r 688 304 512 304 0 75.0
r 512 272 688 272 0 100.0
r 688 240 512 240 0 75.0
r 512 208 688 208 0 39.0
r 512 176 688 176 0 18.0
r 512 144 688 144 0 11.0
w 784 432 -48 432 0
w -48 432 -48 320 0
c 736 144 784 112 0 9.999999999999999E-6 0.4501143331248689
r 784 112 784 192 0 100.0
r 784 112 864 112 0 100.0
c 864 112 864 192 0 9.999999999999999E-6 -0.020597404919805162
w 864 192 784 192 0
174 608 16 656 80 0 1000000.0 0.9950000000000001 Bandpass
w 656 48 688 48 0
w 864 112 608 16 0
w 736 96 608 80 0
w -48 272 -64 192 0
w -48 320 -48 272 0
w 784 432 784 192 0
w 736 96 736 144 0
w 512 112 512 464 0
r 512 464 688 464 0 10.0
r 512 496 688 496 0 15.0
r 512 528 688 528 0 18.0
r 512 560 688 560 0 22.0
w 688 464 688 496 0
w 688 496 688 528 0
w 688 528 688 560 0
w 480 144 480 496 0
w 480 496 512 496 0
w 512 528 448 528 0
w 448 528 448 176 0
w 416 208 416 560 0
w 416 560 512 560 0
w 384 240 384 592 0
w 384 592 512 592 0
r 512 592 688 592 0 33.0
w 688 592 688 560 0
174 816 496 880 560 0 470.0 0.9950000000000001 Tri-Sine
w 816 496 688 400 0
w 816 560 688 464 0
w 352 272 352 624 0
w 352 624 512 624 0
r 512 624 688 624 0 100.0
w 688 624 688 592 0
w 320 304 320 656 0
w 320 656 512 656 0
r 512 656 688 656 0 33.0
w 688 656 688 624 0
w 288 336 288 688 0
w 288 688 512 688 0
r 512 688 688 688 0 22.0
w 688 688 688 656 0
w 256 368 256 720 0
w 256 720 512 720 0
r 512 720 688 720 0 18.0
w 688 720 688 688 0
w 224 400 224 752 0
w 224 752 512 752 0
r 512 752 688 752 0 15.0
w 688 752 688 720 0
r 816 496 880 528 0 470.0
r 816 560 880 528 0 470.0
w 880 528 736 144 0
o 144 1 0 42 1.881403750864865 0.0 0 -1
I made the transistor angry.

PRR

> it's currently VERY rough, though I picture the real components are probably a bit less precise and have some "give".

No.

You are sure to have a huge 10th harmonic. The "cheap cheat" would be a tracking high-cut slaved to the clock speed.

I suspect it will be difficult to get a strong 3rd harmonic (10/3= not a round number). Since the 3rd is musically useful/essential, this may not have all the tones you could want.

You can chain several 4017s to get 20-step, 30-step; or short-cycle for odd counts.

The ARP modular had this exact scheme. It was intended for a melody or arpeggio sequence, but we could rev it up to musical rates. I don't recall any great joy. But that was a long time ago......
  • SUPPORTER

frequencycentral

#7
Quote from: PRR on August 12, 2011, 11:26:42 PM
The ARP modular had this exact scheme. It was intended for a melody or arpeggio sequence, but we could rev it up to musical rates. I don't recall any great joy. But that was a long time ago......

You've used/touched an ARP 2500........ :o ........in my dreams........
http://www.frequencycentral.co.uk/

Questo è il fiore del partigiano morto per la libertà!

merlinb