ACHUS software based multi-voice synthesizer

ACHUS was a multi-voice software synthesizer I tried to develop for Nibble magazine in the 1980s.

I recorded this video and uploaded it here, and to YouTube for posterity.


The project was never finished due to endless "feature creep" because every successful feature spawned ideas for more features, and finally it was just neglected when I went away to college.

Upon re-discovering the source code, I constructed a simple music tester, which imports music files from The Electric Duet by Paul Lutus and plays them with a selection ACHUS's so-called "instruments."  Its pulse-group modulation scheme is quieter than Electric Duet, but louder than Music Construction Set's 4-voice synth.

The disk image ACHUS1989.DO contains EDASM source code and a program called "MUSIC TESTER" that reads music files for Paul Lutus's Electric Duet and plays them through ACHUS's ampersand library in BASIC, permitting the user to choose from ten ACHUS instruments:


At the point when I abandoned it, ACHUS had the following feature set:

  • Duet command (&D) can play 1 or 2 simultaneous pitches, and specify an independent envelope (amplitude shape) for each channel.
  • Quartet command (&Q) can play 4 simultaneous pitches, and specify one envelope to be used by all four channels.
  • Each envelope contains 255 discrete amplitude levels to create any arbitrary attack-decay-sustain amplitude shape.


It produced a grossly-assymetric waveform by periodically creating groups of pulses, exploiting the single-cycle architecture of the 6502 to access the speaker port ($C030) four times on four consecutive clock cycles with an INC $C030,X instruction.  See Appendix A Summary of Single Cycle Execution for a detailed definitions of 6502 bus accesses-per-instruction-cycle.  (Thanks to xotmatrix for archiving those 6502 docs.)


Each group contains 8 instructions to pulse the speaker.  To vary the amplitude, those instructions would be modified on-the-fly to mute some of them by re-routing them to the tape port.


In hindsight, it was terribly inefficient...but it did work.  But it wasn't very loud because those INC instructions only generate a duty-cycle around 30%, considerably lower than the 50% duty cycle Paul Lutus achieved with The Electric Duet.