Step-sequencer/synthesizer

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

efinque

Well-known member
Joined
Jan 3, 2018
Messages
393
Sup GDIY,

I was envisioning another project and came across 5-stage decade counters (IC's that count to 10)

Earlier I had prototyped a synth project which used an Arduino with PWM but it had very limited connectivity (and quite possibly poor serviceability)

Upon further investigating I read it's possible to cascade counter IC's and as I have been thinking for quite long time of building a clone TB-303 (from kit, now it's from scratch as I already own a reissue TB-03 and most of the x0xb0x kits are discontinued) I thought it would be a nice project.

Basically, the device would use a NE555 timer which feeds the clock inputs of cascaded decade/octal counters (CD4017BE or 4022 for example) at an adjustable tempo (I built a metronome back in school which I recall uses the 555) so that while one counts it disables the other(s) by pulling the enable pin(s) high.

Each of the outputs would have a fader for adjusting the control voltage (note pitch) to an oscillator (another NE555, CEM3340 etc) and a mute switch as well as a step indicator LED in parallel. I was thinking a capacitor in series with either the timer or the outputs for adjusting the note length.

Other stuff I was thinking was:

-external clock input (A/B switch between the timer and an input jack)
-CV output
-reset
-low-pass filter (and an opamp to buffer the output)
-selectable waveform
-a more sophisticated system would use a counter per 4 steps instead of 8 as they perform a high/low cycle in the Carry out pin during the count (this removes the need to connect each individual step to the Enable pin)

Stuff I'd imagine that can go wrong:

-it only "ticks", ie. the control signals are too short; the capacitors could save this but the discharge characteristics can make it wildly unstable (or funky, who knows..) I have no prior experience working with counters to be honest.
-too low/high voltage PSU; I've read some theory behind analog 1V/octave synthesizers and while the IC's typically function in the 5-18V range the oscillator circuits require much less, ie. it may lack resolution to produce musically accurate results. To control one or two octaves with a 40..80mm fader isn't quite accurate but stuffing a huge step switch and a bank of 12-24 trimmers per 16 steps in a case is a soldering nightmare.

I hope someone gets my point here.. I can scan a drawn schematic for clarification (I have no access to a CAD for the time being)

Any thoughts?

-ef

PS. Here's a link to the original Arduino forum dev thread. I also came across a very similar DIY kit in Sparkfun (the SparkPunk Sound kit and the SparkPunk Sequencer kit, there's also a seemingly popular Atari Punk Console project hovering around the internet)

PPS. Regarding the initial design it's very simple, kind of like two bums fighting to a classic timer IC. The clock running into a 1-to-4 demultiplexer (74HC139 or 4052B for example) triggered by the 4th step of a counter and held high by the Carry out would be more sound because connecting the steps to the Enable pins sums them which may introduce crosstalk, this could be however fixed with diodes or summing resistors.
 
Here's a quick sketch..

sGU4aJK.png


EDIT : another idea is to feed the clock into a 4-bit binary counter that cycles the outputs of a 1:16 demultiplexer which would simplify the sequencer greatly; however I read about propagation delay with such circuits (and cascading in general). Stuff it's missing is start/stop, CV out prior the oscillator and the enable/reset of the counters/demux.
 
Hello

Did you have a look at MidiBox seqV4+ ?
Not a synth but for the sequencer side it look great...especially with the CV/Gate extender

Best
Zam
 
zamproject said:
Did you have a look at MidiBox seqV4+ ?

No.. but it looks interesting as it has MIDI and LCDs meaning it uses a MCU. I've built an Arduino sequencer but it was capable of control voltages 5V max at 50mA which isn't enough to drive LEDs and an oscillator (without buffering, relays or optocouplers). I was also told that the AVR instruction set has something called timer interrupts which cause the MCU to stop executing code while it PWMs.

There are lots of 16/32-step sequencers commercially available but I'd like to build my own just for the sake of experimenting. Internally, this thing would use voltages around 9..15V to keep things stable (and because the ICs allow it, I guess it's easier to start with a moderately high signal and bring it down to the desired level than try to buffer a weak one)

I'd estimate the oscillator alone to have a 1/3rd voltage drop (according to the datasheets it's very close but temperature/duty cycle-dependant) hence the buffer.

Another thing is the clock may run hot (or go into hysteresis/self-oscillation) at voltages above 9-12V although it's a bit more forgiving due to the low frequency pulse (~1-6Hz which equals 60-360bpm or 30-180bpm) but the oscillator would have to do C1..C2 which is as low as ~32Hz meaning the control voltage it gets is in the range of 1-2V making it prone to ripple voltages etc (which is why I'm trying to design the circuit to have minimal crosstalk) At low frequencies it may be inaccurate, whereas at higher frequencies it may become unstable.

The low-pass filter also attenuates the outcoming signal a bit (but it smooths out square waves for example, although I read the 555 set as an oscillator can produce saw waves via a discharge capacitor)

Other things it needs/may need is master volume, CV out and master tune (and/or internal trimmers per step for fine-tuning)

As for how the sequencer would work I have no idea, but 8-step is always doable in case the demultiplexed counters won't function properly.

EDIT : as in the schematic the counters use the carry out pulse to keep the demux in the correct state; the output switching relies on the 4th step of the counter triggering one of the select inputs but I'm afraid it will not hold until the next clock pulse without a latch or a timing capacitor, although I remember seeing demuxers with internal latches. The last step of the sequence could use a solid-state relay to disconnect the carry wire to the demuxer which "resets" it by setting the sel inputs' state to 000 (the first counter)

EDIT 2: originally I was designing a modular, pressure-sensitive LED dance floor which uses a decade counter as a chaser (I found several circuits for this) but later on came across CD4022B 4-stage octal counters which would suit the sequencer better
 
I also sketched a simple 8-bit memory module..

qNVm2FS.png


EDIT : basically it encodes the incoming voltage to binary at certain thresholds (10000000 would be 1V, 11000000 is ~1,12V and so on) via the resistor bank which acts sort of like a VU meter, writes the serial bits to the registers one by one and outputs them in parallel to the VCO. It's missing the register clock (shift from serial write?) as well as read enable and perhaps counter resets but I hope someone understands the idea (I noticed the 1:16 register demux bus is decimal but it should be binary, my mistake)

EDIT 2: to cover an octave it needs to be at least 12-bit which means scaling up the ADC (labeled as write bus) and the registers, otherwise it interpolates, ie. divides the 12-note octave by 8 which isn't musically very accurate but interesting from a technological viewpoint (my hypothesis is that at low bit depths the memory turns it into an "instant trepak"-generator). The problem is the tempo clock running at 8Hz requires the ADC timer to have a clock frequency of 96Hz to sample all the 12 bits, whereas addressing the ADC in parallel to the registers requires a very sophisticated/complex circuit (in theory a very large 12:192 address bus built from twelve 16ch demuxers that feed 12-bit parallel-in-parallel-out registers) but I belive many programmable sequencers on the market use a look-up table instead.

EDIT 3: another solution would be to use a 12-segment LED driver/VU-meter (two cascaded LM3914 IC's?) in dot mode or a keyboard/input interface to fetch a byte value from DIP switches or a programmable ROM lookup table (0001 being C, 0010 being C#, 0011 D and so on) via a 4:64 demux to address the 4-bit byte to one of the 16 registers based on the threshold voltage; this eliminates the need to use caveman binary to store values but requires a DAC (a 4-to-16 line decoder/dx through a resistor bank?) to decode the values back into the corresponding 12 voltage levels (making it 4-bit)
 
Here's a revised version..

5F9PtWp.png


It's missing the register clear, LEDs, start/stop and an ADC for external CV among other stuff.

EDIT : or, replace the sequencer/register with the Arduino and use the input system to address notes to memory locations; code-wise by declaring an array and looping it in sequence. It'd use:
-5 digital input pins to cover 2 octaves
-another 4 to address the memory (I tried this with analog in but it didn't store the byte)
-4 to demultiplex 16 LEDs
-one to PWM the output (14 in total)
-a few analog pins for note length/tempo, start/stop etc

However, mine's already inside an optocompressor and I don't have a PC or a workshop to prototype it.

EDIT 2: yet another idea is to implement a simple 8-step drum machine; either a separate octal counter(?) triggered by every 2 cycles or use the odd steps of the existing sequencer (which may draw too much current from the register voltages causing them not to output) into 3x8 bank of slide switches which feed a sine wave oscillator for kick and 2 high-passed white noise generators for snare&hi-hats (with envelope controls), also I was thinking a phrase sampler (ISD1820?) with step-activated recording
 
Here's an updated version..

szLVfcm.png


EDIT : to further improve it there could be a separate counter for the drum machine with a ripple clock to divide the master clock by two (one pulse per 2 cycles) The catch with the demux/RS latch/octal counter sequencer is the carry outs which can be used to perform various tasks (sampler etc)

EDIT 2 : forgot mute switches for the synth/drum tracks and minor stuff like start/stop, note length etc.. I think the drum machine also needs either diodes or a separate sequencer in order not to short into the synth steps.
 
thanks for this food for thought.
I don't think I need another project  but have had something like this in mind to build with the kids
 
shabtek said:
thanks for this food for thought.
I don't think I need another project  but have had something like this in mind to build with the kids

This isn't a tested circuit so there's no guarantee it works but feel free to breadboard it.. I'm not able to for the time being.

Here's a quick BOM:

-NE555 timer
-1..10k lin pot for tempo adjust
-1/4" jack for ext clock
-SPDT switch for clk source
-4051B 8ch demultiplexer
-4x 4022B octal counters (or two if there's no need for the carries)
-4043B quad RS latch for latching the counter demux
-16x LEDs for step indication
-16x slide switches for step mute

-12x 4-pin DIP switches & push buttons (for notes)
-16x 4-pin DIP switches & buttons (to address registers)
-4-pin DIP switch & button for clear (or use programmable ROM chips)
-4x 4067B 1:16 demultiplexers
-16x 4035B PIPO 4-bit shift registers
-4514B 4-to-16 line decoder
-12x resistors/trimmers for the VCO input voltages from the decoder (I was thinking those blue 10-turn Cermet trimmers)
-1k lin pot for master tune
-a VCO chip (NE555, 4046B, CEM/AS3340 etc)
-10k lin/log pot (for the LPF)
-a ~10..100uF/25V capacitor
-10k log pot for output vol
-1/4" audio jack for output

-74HC163(?) ripple counter (clocked from the timer)
-SPDT switch to toggle the output
-4022B octal counter
-24x slide switches for the drum machine (or 32 if there's a sampler)
-8x LEDs
-2x white noise generators for snare&hh (TL071?)
-2x ~10..100nF series capacitors (for HPF)
-2x shunt resistors
-a sine wave generator for the kick (NE555?)
-series resistor (for LPF)
-shunt capacitor (~100uF/25V or so)
-3-4x slide switches for drum track mute
-DPDT switch for toggling the audio output
-ISD1820 or a similar edge-triggered record/playback module (opt)
-1/4" audio jack

-start/stop/reset button
-IC sockets (5x DIL8, 1x DIL14, 23x DIL16, 5x DIL24 or so)
-jumper wire, connectors
-perfboard etc for assembly
-a case
-pot caps (for tempo, master tune, synth filter, output etc)

-9-12VDC PSU (SMPS etc)
-IEC power socket
-power button

That's about it.. I'm sure there's a lot of stuff missing though. It does look good on paper however and I estimate the parts cost around 150-200 in EUR; while it may sound tempting it could well mean weeks (or months) of labour and troubleshooting (note that I have very little experience working with logic level/CMOS IC's)

EDIT : it's a bit Roland MC-202/303-esque with the drum machine/sampler added.. to give it a more groovebox feel one could add an effect unit or an overdrive in the output but I think the core functionality is there (it could use a 12-LED display for note values from the decoder I think)
 
I think many drum machines benefit from a compressor so I sketched a simple VCA compressor... any thoughts?

8LbLLZZ.png


EDIT : in short the audio signal enters via a smoothing capacitor and is split into two; the control signal which is buffered, low-passed and fed into a peak/level detector IC in dot mode which gives us voltages in increments determined by the resistor bank that charge a capacitor, which discharges once it reaches the zener voltage of the diode while the decoupling capacitors act as an energy reservoir for the VCA. The other signal is passed on to the VCA itself which then enters a Thiele network that blocks DC and forces it to the parallel resistor. I actually copied several ideas for this circuit, the decoupling/Thiele network came from a LM3886 power amplifier instructable, the capacitor/zener diode I figured out from the way a camera flash would work and the rest of the VCA circuitry is based on ESP designs (project 67 which I built a while ago) As for the exact component values I have no idea, but I'd pay attention to C1 so it doesn't high pass the signal too much, and the zener diode which should be fairly safe in the 3..5V range I guess. Other considerations are the feedback circuitry (so the IC doesn't go into self-oscillation) and the decoupling capacitor (and C2) values which determine the compression characteristics, as well as the Thiele network inductor value so it doesn't get too boomy or pick up RF.

EDIT 2 : poor man's version would replace the driver IC with a peak detector/Schmitt trigger circuit (or just a pot, another zener etc) and use a sidechain from the bass drum, replace the opamps with transistors and so on but it's there (for future purposes, who knows) although space could be an issue
 
not sure about that compressor --the theile network will not block dc, a cap in series like c1  will act as a ac couple/dc block

does dot/bar chip expect dc input signal?  are they still available?
I am not sure I understand the cv design with series cap to zenner or quite how the bargraph driver is supposed to work

http://www.thatcorp.com/datashts/dn112.pdf shows an idea of an array of comparators with suitably scaled resistor string to output 'dots' with a log-ish response
 
shabtek said:
not sure about that compressor --the theile network will not block dc, a cap in series like c1  will act as a ac couple/dc block

Wouldn't a series cap create a HPF? Anyway, these are just "ideal" circuits/applications that could be of use in a device like this (filtering, impedance matching etc)

does dot/bar chip expect dc input signal?  are they still available?

It's a "logic" IC so I assume it uses DC for power, what the Vin+/- inputs see the IC splits in preset increments and in dot mode passes a logic high (depending on the IC supply voltage which is usually in the range of 7..12V minus voltage drop so ~5..9V) to one of the outputs. I'm too lazy to dig up datasheets but they usually have an input pin for sensitivity control, as for how "accurate" it is in practice is another thing (think 150mV resolution at best)

At high volumes the total R values are high so the voltage from the driver IC would be lower which "ducks" the VCA by giving it less power (or no power at all) and with low volumes the R values are low so the VCA runs at "full tilt" which may introduce distortion (one thing I didn't think of is what happens when the peak detector is idle as it doesn't provide any current to the VCA?)

It's a very "standard" IC used by hobbyists etc so availability shouldn't be a problem (I even recall that my Omnitronic VU meter which I once out of curiosity opened has same-y ICs that drive LEDs), I'm quite sure there are specialized ICs but I designed the circuit for use in a number of other applications too (standalone, speaker processing etc where it could be used to drive LEDs for metering as well)

I am not sure I understand the cv design with series cap to zenner or quite how the bargraph driver is supposed to work

The cap/zener is there to "enhance" the overall performance. I was going after a sort of pumping effect as the VCA requires a certain amount of power; otherwise it won't work (the idea was to load the cap with voltage peaks so the zener gives short bursts of current to the VCA when the bass drum hits).. but it could possibly (with the right combination of components) do the exact opposite (this however depends on the program material presented to the circuitry)

I'd imagine it does require some careful matching of components to keep it in the "sweet spot" so it isn't exactly a fire&forget-type of compressor (edit : which it in this case should be) but the feedback control lets the user to adjust the CV (the decoupling capacitors provide some additional power for the VCA when the diode isn't conducting, ie. the "zener" cap isn't charged at high volumes or when the driver IC is idle)
 
Bump!

This project has been haunting me so I just ordered the parts.. wish me luck!
 
For those who are interested, I planned the build so that the PSU supplies power to the adjustable clock/pulse generator (NE555 timer) which triggers the counter (CD4017B) circuit running into DIP switches (8/2/3 pin respectively to cover an octave, ie. the keys you see in a piano) that have trimmers wired into the outputs (104 in total, 8x13).. the steps also include a LED and a mute switch (the "problem" is you can't play more than one note per step, otherwise it'd feed the VCO the sum of the control voltages, in lay terms the VCO expects a very precise voltage and giving it two or more from the switches results in a musically incorrect tone so the user has to disable the one that has been set in order to dial in a new one)

Then there's a keyboard covering an octave (12 pushbuttons wired to trimmers) which allows the user to play free notes along with the sequence (both the sequencer/keyboard use a single CD4046B phase locked loop/NE555 VCO) so unfortunately it's monophonic (to make it polyphonic it would require separate VCOs)

The design utilises LPF to achieve the desired sound (square waves in general sound very harsh so to get an "ear-pleasing" sine/saw wave the output of the VCO needs to be low-passed)

It has start/stop and reset as well as ext. clock and CV input.. very straightforward but it could use some extra connectivity (sequencer step outputs etc).. it doesn't have envelope control or note length (decay) either because I honestly don't know how to implement it (there are ADSR chips or it could be as simple as a triggered 4-step counter with timer relays via capacitors that clocks itself but who knows, I can't do much about it on paper, the only solution is to try)
 
efinque said:
capable of control voltages 5V max at 50mA which isn't enough to drive LEDs and an oscillator
LED's need about 10mA and "driving" an oscillator should not need more than 1 TTL load (1mA).

Another thing is the clock may run hot (or go into hysteresis/self-oscillation) at voltages above 9-12V
Obviously the clock should be powered via a voltage regulator if you want any kind of stability. I don't see why the clock circuit would need more than 5V to operate.

although it's a bit more forgiving due to the low frequency pulse (~1-6Hz which equals 60-360bpm or 30-180bpm)
The master clock should be much higher than that. Typically the master clock is 384 times the tempo basis so it can be subdivided in most of the useful rhythm patterns.
 
abbey road d enfer said:
LED's need about 10mA and "driving" an oscillator should not need more than 1 TTL load (1mA).

There are low-current LEDs but the ones I tried with the Arduino didn't light up (the VCO tracking worked ok though but it's a matter of resolution, 5V sampled with 10-bits is 1024 values, so ~5mV accuracy)

Obviously the clock should be powered via a voltage regulator if you want any kind of stability. I don't see why the clock circuit would need more than 5V to operate.

I was thinking a linear power supply for this but for starters I was planning on breadboarding the design using a battery.

The master clock should be much higher than that. Typically the master clock is 384 times the tempo basis so it can be subdivided in most of the useful rhythm patterns.

Arduino and logic MCUs are typically clocked at "computer" frequencies (Uno has a clock speed of 20MHz iirc) but it has little to do with the tempo clock (in programming languages delay command uses milliseconds), although I think you're after a swing feature commonly found in drum machines (you'd basically run the clock 4-16 times faster and use one of the quarter/eight/sixteenth notes, in digital logic it's called a prescaler I think)
 
efinque said:
There are low-current LEDs but the ones I tried with the Arduino didn't light up (the VCO tracking worked ok though but it's a matter of resolution, 5V sampled with 10-bits is 1024 values, so ~5mV accuracy)
I don't understand that. LED's are current-driven, not voltage-driven. In order to light an LED, you need to apply a voltage higher than the LED's turn-on voltage via a resistor or current limiter that ensures teh maximum allowable current is not exceeded.
To be frank (and blunt), I think you are trying to bite more than you can chew. You have such a lacunar knowledge of basics that you may end up very disappointed.
You need to practice your basics

I was thinking a linear power supply for this but for starters I was planning on breadboarding the design using a battery.
Which does not preclude the use of a regulator... Battery voltage is not stable.

Arduino and logic MCUs are typically clocked at "computer" frequencies (Uno has a clock speed of 20MHz iirc) but it has little to do with the tempo clock (in programming languages delay command uses milliseconds),
Using MHz clock allows generating whatever master clock with enough resolution to make it look continuous.

although I think you're after a swing feature commonly found in drum machines
Swing is a completely different notion. It's the possibility of inroducing subtle variations in the temporal position of notes.

(you'd basically run the clock 4-16 times faster and use one of the quarter/eight/sixteenth notes, in digital logic it's called a prescaler I think)
As I wrote earlier, the master clock run usually runs at 384 times the base tempo, so you can have access to 32th dotted or triplets.
 
Meh.. I just realized it could be greatly simplified by wiring the counter outputs to a DIP switch (to denote a step) which triggers a VCO (the CV frequency is selected from another bank of DIP switches), the thing is it would be more of an arpeggiator (only capable of repeating the same note)

However I'd need to contact the parts supplier to change the order (unless they didn't already collect&dispatch it), it'd save me a 20 or so too (only about 24 trimmers and 3x8pin switches plus another 2x2/3pin would be needed to cover two octaves or 12pin ones for the frequency CV instead of the current 8x8/2/3pin and 104 trimmer configuration, I could use them in some other project I guess)

EDIT : I could also make the arp an octave and scale the keyboard to 2 octaves but that in return requires more pushbuttons.. I'll need to give them a call tomorrow anyway to check on things (something could've gone wrong with the payment as I transferred the funds instead of using a direct payment)

EDIT 2 : unfortunately the project is halted for now.. I'll update later the revised schematics/parts list.
 
Here's the schematic of the simplified version.. it only repeats the same note (as in an arpeggiator) but allows you to mute individual steps.

arpsynth1.png


EDIT : fixed a few minor things like start/stop, reset and ext trig enable (which likely needs a voltage regulator).. also master tune. I'm afraid the patching requires some sort of buffering so it doesn't go out of tune, unless the IC in/outs are internally regulated.
 
Back
Top