Drum8 – Apple II 8 Bit Drum Machine

Drum8 is an 8 bit drum machine with graphical real-time editing, a pattern sequencer, mouse support and a choice of 16 customiseable sounds with up to 8 playable at a given time. It runs on 1MHz 64k Apple II computers with a DAC add-on card such as a S.A.M. Drum8 uses just 48k of RAM for its code and samples.

Version 2 adds support for 8 simultaneous sounds and single or quad DAC (multichannel) configurations. You can download it at the bottom of this page.

If you’re familiar with 6502 assembly you may find this page on How Drum8 Works interesting.

DEMOS

Drum8 playing ROCKOUT on my Apple //e

Using my home built single DAC card, playing ROCKOUT.8 :

Drum8 ROCKOUT in stereo on a MEGAAudio card.

On A2Heaven’s MEGAAudio card:

Drum8 ROCKOUT in stereo using AppleWin

Running on a version of AppleWIn I’ve forked to emulate A2Heaven’s MEGAAudio card in stereo:

Drum8 DEMO1.8 with a real MEGAAudio 4-DAC card

Thanks Plamen, can’t wait to buy one:

The original Drum8 introduction and live demo

History

I wrote Drum8 in 1986-88, as a break from uni study. I never finished it as Planimate® and InterDynamics became the focus of my attention after I graduated.

30 years later, after having resurrected my Apple //e, replaced a dead transceiver on the mouse card and built a new 8 bit sound/DAC card. I finally got around to finishing it and released it in 2015.

Version 2

Late 2017 I started chatting to the developer of a S.A.M. clone who’s working on a multi-purpose Apple II sound card, the MEGAAudio, that can emulate a S.A.M. with 4 DACs amongst other Apple II sound cards. It was easy to get Drum8 sending the 4 sounds out of each DAC.

That wasn’t enough for me. If I could mix two samples per DAC, we’d have 8 sounds playing simultaneously! And so started a big rewrite of Drum8’s mixing engine. I go into the details here.

For single DAC compatibility I added support for 8 voices through one DAC. This makes each sample effectively 5 bits so it sounds crustier than ever.

Finally, I didn’t want multiple versions of Drum8 so I separated the sequence trigger, sample mixer and sample pointer management into separate plug-in MIXER modules.

DAC  / Voice Options

Drum8 can be configured for different DACs / simultaneous voices (sound channels). It shows the current configuration as it loads the samples into memory.

Here’s a summary of the different modes. Future versions might add new mixing options.

One DAC, 4 Voices

As used in Drum8 Version 1, each sample is effectively 6 bits.

4 DACs, 4 voices

8 bits per sample, cleanest possible sound, for a system with a 4-DAC configuration.

4 DACs, 8 Voices

Samples are effectively 7 bits. For 4 DAC configurations the DAC outputs are mixed in hardware to left/right/left/right so we have stereo.

One DAC, 8 voices

Enables you to enjoy 8 voices on a regular single DAC S.A.M. Expect cruncher sounding samples.

Use option 17 in the Configuration Editor to change the DAC / voice channel configuration. The Quad DAC option currently expects 0 or 1.

Drum8 comes configured for 8 voices on a single DAC.

In addition to the default configuration, CONFIG, I’ve included CONFIG4 which has the original 16 samples mapped to 4 voices and CONFIG8 which doubles up the kick and snare so they can appear on both channels (centred) in a multi DAC configuration. This is needed because the DACs are panned hard left/right, and allows for stereo effects.

Included Demo Tracks

The disk includes DEMO1.8 and ROCKOUT.8 which are intended for the default 8 voice configuration. DEMO1.4 is the original demo, set up for the 4 voice sample configuration.

Speed/Tune Note

Drum8’s speed depends on the mixer configuration, a t[U]ne value of 10 is now nominal. For the 8 voice 4 DAC configuration, lower values do nothing as theres no cycles to spare. Higher values let you lower the pitch, you’ll have to adjust the tempo to compensate.

Drum Sample Customisation

Drum8 comes packed with 16 cheezy 8 bit drum samples, sampled at what else but 8kHz. Some of you might recognise their origin. I’ll leave the details for another session, in some studio somewhere.

The lack of dither noise and output filters on the DAC keeps the sound nice and crunchy.

You can configure the sounds, even install your own… 8 bit unsigned PCM at 8kHz. Think pages (256 bytes) when specifying the length. The loader will try fix any length mistakes, but don’t expect too much forgiveness. The number of free pages is shown in hex at the top right of the Configuration Editor.

Usage Tips

Drum8 has a crude copy/paste between projects. Pattern #63 is not loaded over. So any thing you [C]opy there in the [L]ive editor survives when you load another file. There are 63 pattern pages left free because in good coding form, patterns number from 0.

You should leave pattern 0 as the “silent” pattern as you can’t sequence it, and you’ll appreciate it when you realise there is no “stop” mode whilst in the Main Page, [L]ive Edit or [S]equence edit pages. Pressing Esc from the Main Page will select Patterm 0.

DOWNLOADS

Drum8_V2.00-ProDOS2.4 Preconfigured for 8 channels on one DAC in slot 5, you can change this in the Config Editor. This version uses the excellent ProDOS 2.4 by John Brooks and Peter Ferrie, which should work on all Apple IIs.

Older Versions

Drum8_1.0-ProDOS8 The 2015 version of Drum8 for Enhanced Apple //e’s.

Drum8_Prodos1_1 2015 version with ProDOS 1.1 for Apple ][+ and standard //e’s.

AppleWin Emulator

If you don’t have an Apple II and DAC card you can use AppleWin to run Drum8. You’ll need to enable SAM support in the sound settings (uses slot 5).

AppleWin 1.26.3.6 or later on the AppleWin download page supports S.A.M. (single DAC) emulation.

Or you can build my fork of AppleWin from source which emulates 4 DACs in a stereo configuration.

 

 

3 comments on “Drum8 – Apple II 8 Bit Drum Machine
  1. That’s awesome work, man!
    Your drum software works better than many modern ones that are using very expensive sound cards!
    BTW, I am wondering if some music/audio software can be patched to use SAM instead of speaker, mockingboard or phasor. Also some games could use it.

  2. Hi, thanks. Two problem with existing programs
    1) The SAM needs samples to play. Other programs use timing loops and put speaker clicks into code that draws pixels to get sound. Mockingboard has hardware tone generators.
    2) With SAM you have to clock out each sample, leaving no time for graphics.
    The neat thing I did with Drum8 was break up the sounds every 32nd note (block on the screen) during which it could poll the keyboard and update the cursor etc. Otherwise the CPU is flat out doing the sample and timing them properly.

Leave a Reply

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