Glitchovision 3000

This is an audiovisual instrument that I created for the 555 timer contest.

The Glitchovision 3000 is a 4 step sequencer controlling an ‘Atari Punk‘ synth with a greyscale NTSC video visualization of the output audio, built using two 558 quad-timers and two 556 dual-timers.

Here is a video of it in action:

Theory of operation

  • Video timing (two parallel channels of 1/2 556 feeding into 2/4 558, and finally combined via some 74ls08 AND gates).
  • Audio generation (4 step sequencer built from a 558 feeding into a 556 setup as a stepped tone generator).

Video timing (556 feeding into a 558)

First, a 556 (configured as two astable timers) generates two independent blanking signals, one horizontal and one vertical.

These signals are low for the time specified in the RS170 standard (3 lines for vsync, 10.9 us for hsync), although the final result isn’t exactly up to RS170 spec. It generates a ‘combined’ or industrial sync (which works on every TV I’ve ever tested), but RS170 requires serrating and equalizing pulses to be generated during vsync to prevent 1950s hsync oscillators from losing tracking.

Each blanking signal is fed into a 558 monostable timer, which generates the blanking signal (lasting longer than the sync signal and delaying until the image is about past the overscan).

The output of the h or v blank is fed into a second pair of 558 timers to generate an ‘active’ region of the screen, where we can display arbitrary data.

The two sync signals are combined with one AND gate into a CSYNC signal and the two active signals are combined (with wired AND from the 558 open-collector outputs, but buffered into another AND gate) to generate a CACTIVE signal.

These signals are used to generate the final composite video output, when combined with the audio signal.

Audio (558 feeding into a 556)

One 558 quad timer serves as a 4 step sequencer, similar to a traditional use of a 4017 decade counter. All four steps use the same timing components, but the overall step rate is controlled by varying the control voltage for the 558 timer. You can chain several 558’s together to get longer sequence lengths, but I only ended up wiring switches and pots for 4 steps.

The output of the sequencer is combined with the ‘left’ potentiometer of an atari punk synth implemented in the other 556 (conflating the two for the timing of the astable portion of the synth). The monostable portion of the Atari punk is bog standard, triggered by the astable portion.

The audio output is line conditioned and output, as well as being ANDed with the CACTIVE signal and merged with CACTIVE via some mixing pots to generate a final video signal. Listen and see that atonal goodness.


  • Note 1: Adding a reset switch instead of relying on power-sequencing during startup seems like a solid addition. I didn’t have it in the prototype shown in the video, so it’s listed in the schematic in a dashed box. It would also provide a nice ‘tap to the rythm’ reset, although it wouldn’t stop the later stages from playing like a reset on a 4017 would.
  • Note 2,3: Adding a pair of diodes here to keep the range of CV to ~0.7 to 4.3 V, or even some fixed value resistors should help prevent nastyness when the control voltage is taken too far out of whack.
  • Note 4: The other 558 in the lid board isn’t used. It’s partially wired up, but it’s not tied into the countdown of the main 558 sequencer, as I didn’t have time to wire up the other 4 switches and pots.
  • Note 5: Using the opposite end of the sequencer potentiometers as part of the timing circuit for another 558 counting verticallly downwards after triggering on vblank (and wired-ANDing the outputs from them with the output of the sequencer 558) should provide a visual indication of what the notes are (will need to move the switches to after the potentiometers).

The timings were worked out in an Excel spreadsheet (note: you might need to rename it back to xlsx to open it if it downloads as a ZIP).

The original writeup for the compo is still available at

Leave a Reply

Your email address will not be published. Required fields are marked *