till.com Articles

Triadex Muse in Javascript

Donald Tillman, Sept 3, 2017

Update:

The JavaScript Muse is included in an exhibition at the Barbican Centre in London called AI: More than Human, running from May 16 to August 26. After that, the exhibit will be traveling to the Groninger Forum, the Netherlands.

The Standalone museum display version is here.

And an improved JavaScript Muse that can create synchronized slave Muses in new windows is here:

This is a software simulation of the Triadex Muse that runs in a browser.

The Muse was a digital algorithmic music composer invented in 1969 by Marvin Minsky and Edward Fredkin at the Massachusetts Institute of Technology. It was built with the digital logic circuitry of the day; gates, registers, and counters in simple integrated circuits.

While strongly associated with electronic music, The Muse was not a "synthesizer" as it only played a fixed level square wave. Instead it created original melodies from algorithmic processes, something that hadn't been seen before. There were no pre-programmed sequences or random sources involved.

muse photo

Minsky and Fredkin formed a company named Triadex to manufacture the units, which sold for $300.00. Accessories included an amplifier and a light show in matching enclosures. Multiple Muses could be linked together and synchronized.

The Muse is incredibly rare; one report claims that only 280 were built, and a small fraction of those are likely in working condition today. And that's a shame, because this was a remarkable device and we can learn much from it.

I have recreated the Muse in software here (from the available leftover DNA, Jurassic Park style), so it can be appreciated. And I find the Muse's processes absolutely fascinating.

muse trio

Directions:

Top left switches control the basic operation.

The left side controls are VOLUME, TEMPO, and PITCH.

The composition process is controlled by the matrix of eight 40-position vertical slide switches labeled INTERVAL and THEME I describe their operation in more details below.

The simulation is here. To start it, click on RUN and operate the INTERVAL and THEME switches.

Compositions

Here are some "compositions" transcribed from the User Manual. Click on one to load it into the Muse.

Name Intervals A,B,C,DThemes W,X,Y,ZRest

The INTERVAL and THEME Switches

The matrix area covers eight 40-position vertical slide switches, four labeled INTERVAL and four labeled THEME.

The 40 rows are labeled OFF through B31. Each row has a binary value indicated by the blue or green lamp on the right; 0 when the lamp is off, 1 when the lamp is on.

The rows are binary sources. From the top, the are:

OFF and ON
Steady 0 and 1 values.
C 1/2
The clock pulse, a sqaure wave that triggers the rest on the high-to-low transistion.
C1, C2, C4, C8
A 4-bit binary counter incremented by the clock pulse, counting 0000 to 1111.
C3, C6
A 2-bit binary counter incremented every 3 clock pulses, counting 00 to 11.
B1 through B31
A 31-bit shift register; each clock pulse shifts the contents down one bit, and a new top bit is supplied by the THEME switches.

The four INTERVAL switches select from the binary sources to set the pitch. INTERVAL A, B, and C, are binary weighted 1, 2, and 4, respectively, and map into a major scale; Do, Re, Mi, Fa, Sol, La, Ti, Do. INTERVAL D raises that pitch up an octave. Note that a major scale has 7 notes, while a 3-bit binary quantity has 8 values, so there is one note of overlap.

The four THEME switches select from the binary sources to feed the next value to the top of the shift register, B1, on the next clock pulse. The four selected binary sources are combined with an Exclusive NOR function, providing a 1 for an even number of ones, or 0 for an odd number of ones. The default THEME sources are all zeros, so the shift register fills with ones when started.

The counters provide repeating patterns. The 4-bit counter repeats every 16 counts. As the clock pulse is a square wave, including the clock pulse effectively doubles the count to 32 (which explains the funny name C 1/2). Or you can triple it to 48 by including the 2-bit counter and get some 3-against-4 patterns in there. Or both for a 96-note pattern.

The shift register can provide delayed versions of a combination of those signals. Or it can recycle a pattern by feeding back a single B output.

Linear Feedback Shift Register

But the really interesting things happen when two or more shift register signals are fed back to the top with the THEME switches. We call this a Linear Feedback Shift Register (LFSR) and it has many very interesting properties. LFSRs find uses in generating pseudo-random number sequences, generating noise, data encryption and decryption, error detection and correction on streamed data, and much more.

Here is a demo where you can try out an LFSR by itself. This is simplfied to 10 bits and a 2-input exclusive NOR, but you can see how patterns cycle and evolve.

(Click on the buttons to Reset, Single Step, or Run. Click on the connections to choose the shift register tap points.)

In the Muse, with 31 bits, the LFSR sequence can be up to 231-1, or 2,147,483,647 steps before repeating. But that's with just the LFSR by itself; in practice the LFSR is also fed with the binary counter sources, creating many more variations. It's possible to create all sorts of interesting patterns, and patterns of patterns, that grow and evolve.

Some Things to Try

There really is a lot here. It's deeper than one would think at first glance.

Musicality

There is a subtle genius in the design of the Muse: Musical compositions often include scales, riffs, patterns, "call and response", and thematic development. And sure enough, all of those elements are available here. (!!!)

The Muse does this with two different counters and an LFSR. A single counter with a binary weighting plays a scale. A single counter with any other weighting provides a riff, a repeating figure. Use both counters for a sequence with repeating intervals from different starting points; that's a pattern.

Use the shift register without feedback to delay a counter output for call and response, or another style of pattern.

Use the shift register with two or more feedback inputs and you'll see patterns in the Theme section that grow, shrink, and change in very interesting ways.

Use multiple taps off the LFSR for other interesting patterns. Combine the counters with the LFSR, and you've got thematic variation. You can tweak the balance between the predictable and unpredictable, with patterns within patterns.

It's not easy or obvious, but the mechanims are present.

The Hardware

The Muse was designed with 1969 technology, and it's easy to forget how severely limited the available selection of digital integrated circuits was back then. At the same time, new functions were being introduced at a rapid rate.

From the photos on the MuffWiggler thread (refs) there are 29 chips, probably TTL logic. There are 7 chips in a line, probably 7406s, that drive the lamps (not LEDs). The counters might be be 7474 D-flops. The shift register appears to be implemented with 3 24-pin packages providing 10 bits each. (This is a chip I'm not familiar with.)

The pitch is generated with a "divide down" approach where a high frequency clock oscillator drives a counter that divides it by a specific value to generate the intended frequency. (This technique was later used in many electric organs in the 70's as it was an efficient way to generate many pitches all in tune from one oscillator.)

Here the task is simpler as we're only addressing the diatonic (major scale) pitches. The INTERVAL A,B,C signals are decoded to provide one of 8 values, each inversely proportional to the note frequency, these values set an 8-bit counter that divides a high frequency clock to produce the pitch.

After the oscillator, a flip-flop generates a note an octave below, and the INTERVAL D value switches between the two.

It's a pretty complex machine for a 1970 consumer product.

Patent

Muse Patent

Fredkin and Minsky filed a patent, "Digital Music Synthesizer", in 1970, granted in 1971. The patent is quite different than the final product, but that happens a lot. The patent does not include the counters, and mostly centers around the LFSR and pitch generation.

The pitch generation presented in the patent is interesting, is pretty much the opposite of what was actually used, and takes up the lower half of the figure. The 3-bit note code (INTERVAL A,B,C) is used to look up a binary value proportional to frequency, that value is added to a 16-bit accumulator, and a carry bit triggers a flip flop. This is similar to the way modern software oscillators work.

But a traditional accumulator would have been expensive to implement in the chips available at the time. So the mechanism described here in the patent is a "serial accumulator", with a 1-bit adder on a recirculating 16-bit bit shift register (!!!) where the adder applies to one bit at a time, and includes the carry from the previous bit. The binary value to add in, proportional to frequency, also needs to be serialized, and scanned in sync. (!!!) The divide down approach used for the final product is much more practical.

The patent also suggests some advanced features such as occasionally adding a grace note or switching between quarter and half notes.

This Implementation

This is implemented in HTML5 and Javascript, about 8 pages worth of code. And much easier than finding a source of 40-position slide switches.

I've tried to make this as true to the original as possible, based on the Triadex manuals, the patent, and scrutinizing some terrible videos in slow motion. It would be great to see a demo video by someone who actually knows something about the machine (and owns a tripod).

Futures

If someone wants to build a hardware Muse, the big issue is going to be finding a source of 40-position slide switches. The circuitry itself is straightforward, although you'd probably want to implement it in a small processor.

This implementation was intended to be true to the original, but it can certainly be extended to include a better voice, multiple INTERVAL sections for multiple voices, multiple Muses synced together, rhythmic variations such as eighth notes, quarter notes, and half notes, different scales, add accidentals for passing tones or modulations, a chromatic scale for a variation on 12-tone serial music, and much more.

The Muse's set of compositional processes is worthy of a ton of study and development. I can imagine a cross between a Linear Feedback Shift Register and Nicolas Slonimsky's Thesaurus of Scales and Melodic Patterns.

A Personal Story

Popular Electronics cover, Feb 1971

I first heard about the Muse in the February 1971 issue of Popular Electronics Magazine. The cover story was a Don Lancaster project called the "Psych Tone", a digital music composer similar to the Muse, but much simpler. It used a small 6-bit LFSR and with interesting variations. And the article included a short description and photograph of the Muse.

(Perhaps I need to do a JavaScript version of the Psych Tone.)

(Later: JavaScript Psych Tone )

I was about 14 years old at the time, and became fascinated with Linear Feedback Shift Registers. I scribbled lots of sequences on graph paper, and then designed and built my own version of the Psych Tone with lots of hooks for experimentation.

My high school physics department had a Hewlett Packard HP 2114 16-bit minicomputer. (The word "minicomputer" sounds ironic today, but that's what they called them.) And my first programming project on that was, of course, a 16-bit LFSR, written in HP assembly language. The program displayed the sequences on the lights on the machine's front panel.

Time Labs Sequencer

Around 1974 I designed the Sequencer manufactured by IW Turner. This was not an LFSR, but rather a study of 32-note sequences based on a 5-bit binary counter. Like the Muse's binary counter, this was a 4-bit counter with a square wave clock for the 5th bit. The knobs weighted a mix of the bits with both polarities to drive a simple VCO.

The simple setup provided an impressive variety of sequences. You could weight them positive binary for an ascending sequence, weight them negative binary for a descending sequence, and then explore interesting combinations and patterns from there.

This unit had a linear VCO, and one of the notes in the sequences was always lower than the others, and it would often come out as a fart at the end; "deedle-deedle doodle-deedle doodle-doodle phhhttt". And that was a charming part of its character. My dad called it the Goofy Beeper.

(Perhaps I need to do a JavaScript version of the Goofy Beeper.)

References

Triadex Muse User Manual, Triadex Inc., 1970

Triadex Muse Programming Manual, Triadex Inc., 1970

US Patent 3610801, Digital music synthesizer, Filed Feb 16, 1970, Granted Oct 5 1971.

Hal Chamberlin, Musical Applications of Microprocessors. 1980. Long out of print, but you can find a pdf version if you look. The description here is very helpful on the whole, but many details are inconsistent with more definitive sources.

The Tech, Boston Museum adds Muse to exhibits, Apr 27, 1971

Wikipedia: Triadex Muse

Tridex Muse in the London Science Museum collection.

MuffWiggler thread, Triadex "The Muse" pics and sound clips, 2010. Interesting photographs of the internal construction.

Don Lancaster, Build the Psych Tone, Popular Electronics magazine, February 1971.

The entire February 1971 issue of Popular Electronics magazine is a good read.

Popular Electronics magazine is beutifully archived at American Radio History.

Nicolas Slonimsky, Thesaurus of Scales and Melodic Patterns, 1947.

Photos grabbed from 120 Years of Electronic Music and Matrixsynth.

Updated Oct 28, 2018: Fixed some inaccuracies, added the LFSR Demo, added more descriptions, the patent, the personal story, etc.

Updated Apr 20, 2019: Things to Try, references to the standalone museum display version, and the Psych Tone in JavaScript.

Copyright 2017 J. Donald Tillman
email: don@till.com
web page: till.com