Topic: [Apple II] Electric Duet

So if you've ever looked into Apple II matters, you've probably heard of Electric Duet. If not, check this vid for a little introduction. As you can see, just two tone channels with variable duty. Nothing special at all. Except that the program is from 1981, predating multichannel Spectrum beeper music by several years. It might actually be the first use of the "pulse interleaving" technique.

As I recently did a track using Electric Duet, I got curious and wanted to learn more. A friendly soul then pointed me to this place:
https://arachnoid.com/electric_duet/index.html
which contains a great write-up by the program's author, Paul Lutus, as well as the engine source code. A read I can certainly recommend!

On a side note, Electric Duet's GUI is surprisingly tracker-like. Especially so considering the "sheet music" type editors where all the hype back then, and real trackers didn't appear until many years later. Very fascinating.

Re: [Apple II] Electric Duet

Very interesting find and read, thanks a lot! I always thought that ZX beeper music had some missing roots, maybe some computer science magazine or something, where authors of early engines got inspiration and techniques to develop further. Appie seemed a good candidate to be a platform where techniques could have been created, as it predates ZX well and has the same sound capabilities.

The MusiComp is very interesting too. 1980, and it has various duty cycle and something similar to duty modulation. Resembles early non-square wave single channel engines for ZX, such as the first Follin's one.


Maybe I should try to get some Electric Duet support in 1tracker? Just to have that sound color of the past in the sound palette. There is no Apple II sound rip format unfortunately, but there is NES and Atari 8-bit formats support, maybe it can fit there. I would have to make an AngelScript 6502 assembler for better convinience, though.

Another way is maybe try to recreate the engine as close as possible on Z80? Plenty of ZX Spectrum engines got ported to Atari 8-bit, and sounded much the same, so reverse process should be also possible.

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

Re: [Apple II] Electric Duet

Well, we did have ED in 1tracker at some point, made by krüe: http://krue.net/1tracker/
However he said the plugin doesn't work in recent 1tracker versions anymore.

Regarding sound emulation, one thing I've been considering is generic emulation by recreating the engine algorithms in C/C++. Abandoned the idea because it obviously inefficient and involves copious amounts of work, but taking into account also the recent discussion about handhelds/watches etc, it might actually be the most sensible route.

Regarding the "missing roots", there may or may not be a direct link. Only Mark Alexander would know, obviously. The history of 1-bit music as we know it now is full of interesting links (for example I'm pretty sure there's some continuity from Whirlwind I -> IBM AN/FSQ-7 -> TX-0), however there has been an equal amount of "re-inventing the wheel".

Re: [Apple II] Electric Duet

Yes, I remember that attempt with ED, but as far as I know it always had no sound in the editor and no playable output format, it basically used 1tracker as a text editor with a script to compile external data to be used with actual ED engine on Apple 2. I think it would be nice to have a proper support of (some subversion of) this engine.

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

Re: [Apple II] Electric Duet

Yes, there was no sound, because as you know, GME doesn't support Apple II. Hence my proposal about "generic" emulation/simulation by recreating engine algorithms in C/C++. I think even AngelscriptJIT would be fast enough.

krüe's plugin does export stand-alone executables (wrapped to a disk format), at least the later versions do. However, in case of Apple II, it's a matter of discussion what even constitutes a "playable" format. There's neither any standardized snapshot format, nor do most emulators support loading binary to mem. Instead you get a colourful variety of "disk" formats, usually with hardly any proper documentation and usually containing proprietary DOS blobs. There's a public domain alternative called NakedOS, but it's documentation isn't exactly great either.