RIP Keith Barr

I just read on Matrixsynth that Keith Barr passed away. He was 61 years old.

Keith Barr

Keith Barr was one of the co-founders of MXR, back in 1973. After MXR, he founded Alesis. Most recently, he designed the FV-1 chip for Spin Semiconductor, as well as many of the excellent quality reverb algorithms featured on that chip’s ROM and the Spin Semiconductor website. Barr was both a hardware and software developer and transitioned from designing such classic analog pedals as the MXR Distortion+ and Phase 90 to the digital hardware used in such low cost yet high-quality boxes as the Microverbs, Midiverbs, and Quadraverbs.

How Keith Barr Created the Midiverb

I was lucky enough to enter into an email exchange with Mr. Barr back in late 2008. In one of the emails, he gave a detailed description of the development process of the Midiverb:

You seem to be collecting stories about reverb development, so I have one for you. If it’s boring just skip over it. There are about 6 things I’ve done in my life that I thought were really clever, but as it is with technology, either folks don’t understand, or if they do, they don’t care, and as technology marches on, something better is sure to emerge. This is one of them that I always look back upon fondly:


After playing with a monster machine I built with a bank of commercial SRAM and a 16 X 16 multiplier chip ($100 !), I found that there didn’t seem to be a secret to reverb, just the need for a few simple operations. I put the monster aside, along with my dreams of standing at the side of Lexicon, and returned home to the down and dirty music store… I decided instead of making the world’s coolest reverb; I’d make the world’s cheapest one. I never felt comfortable with the swells in the first place. The $100 multiplier offended me! Although I never really liked beer, I didn’t like Champaign either… As a poor kid, I had learned to make much from sticks and string.

At the time (the early 80s), we had 32K EEPROMS and 64K DRAMs that were organized as 16K x 4. Also, HC logic was exploding, and I could get octal registers and both inverting and non-inverting octal tri-state buffers. I immediately put tape to Mylar on my rigged up light table, a discarded old window propped up by a single tube fluorescent light at the back, C-clamped to my white drafting table. God, I loved that way of doing things. It was with your hands, earthy, soulful; it was art.

The DRAM required 2 addressing cycles, ROW and COLUMN, each 7 bits wide. I developed a system that fetched 2 bytes from the EEPROM and used the lower 7 bits of each as row and column addresses after passing them through an 8-bit adder which summed the last values of ROW and COL with the new ones. –This eliminated an address counter, as the code simply expressed the next address relative to the previous address. Of course, I had to allow for this in the code assembler (written on an 8 bit CPM machine) because the total of all address offsets needed to be just one more than the total address space so that every time ‘around’ it would appear as though an address counter was actually present! As I recall, it was 2×4 Bit adders, 2 octal registers (w/ tri-state outputs), and ½ a dual flip flop to store the carry in the math operations.

Then I had two leftover bits actually to control the thing, and I decided to make one to control write operations and the other to control reads, so I had a DRAM write signal immediately! The final control bit was the magic: The write ops were to 1) write the accumulator (16b) to DRAM and add this value times 0.5 to the accumulator, or 2) write the accumulator to DRAM and add this value times -0.5 plus the result of the last read op to the accumulator. The read ops were to 1) read DRAM times 0.5 and load to the accumulator or read DRAM times 0.5 and add to the accumulator. That was it, just 4 instructions. As I recall, the hardware was 2x octal inverting buffers, 2x octal non-inverting buffers, 4x octal registers, 4x 4-bit adders, 4x 4-bit muxes, and 4x 4 bit XOR gates to handle any overflow (saturation limiting).

It was a 128 op machine, which required 256 EEPROM accesses per sample cycle, right on the edge of what the EEPROM and adders could handle.

A 2 tick AP was possible, but I don’t have one here and I can’t remember all of the details, especially about the exact wiring of the second write op. Most coefficients would be 0.5, of course, and we had a few comments about how the reverbs had a ‘building’ effect due to APs with K=0.5. Oh well… They bought about 5,000 every month for about a year though, which gave a good start to my new company! –You could build a box for $100 and sell it to a dealer for $240 back then, and I don’t know from where, but $400 would leap out of pockets at guitar stores!

I wrote the assembler in assembly on the Z80 microcomputer (2 8” floppies, no HD) with a Soroc terminal, a wonderful old combination that had earlier produced commercial drum machine code and stored and edited the drum sounds from analog tapes with a home built ADC/DAC plug-in board. Actually, that system produced a lot of stuff that never was built…

A later version of the engine was produced in a gate array, as I recall it was 2K gates! Still, later versions of the product allowed the 8051 controller to generate LFOs that would update the code (SRAM replaces EEPROM) on a sample-by-sample basis to sweep delays, generate chorus, and so forth. –Even did 4 point interpolation in the process!


Thought you might want to add that to your collection,



Keith Barr’s Basic Reverb Topology

In another email, Keith gave a brief description of the basic reverb topology he preferred to use in his later reverb designs:

I really like 2AP, delay, 2AP, delay, in a loop. I try to set the delay to somewhere a bit less than the sum of the 2 preceding AP delays, which are, of course, much longer than the initial APs (before the loop).

Yeah, the big loop is great; you inject input everywhere but take it out in only two places… It just keeps comin’ new and fresh as the thing decays away. –If you’ve got the memory and processing!

Keith also went into a great deal of detail about his reverb designs on the Spin Semiconductor forum. I’d highly recommend reading all of his posts on that forum. In addition, Keith wrote a series of “Informal Notes” about the FV-1, that are invaluable for anyone interested in audio DSP design. One of my favorite parts of those notes is a drawing of the basic reverb topology that Keith arrived at after years of research:

In the drawing, you can see the 2 allpass, 1 delay “unit” that Keith used as his basic building block. The resulting sound would be quite “open,” with somewhat less initial echo density than the various Lexicon algorithms, but with a wonderful build over time. Combine such a structure with the modulated allpass delays that Keith often used, and you have a reverb that is ideal for ambient music. Artists such as Autechre, Aphex Twin, Labradford, and Roy Montgomery made heavy use of Alesis reverbs in constructing their ambient soundscapes.

Thank you Keith.

Keith Barr’s pioneering work in reverb software and hardware design is one small aspect of the hugely productive life he led. He was a pioneer of audio effects, digital recording, affordable drum machines…the list can go on and on. An overview of Keith Barr’s life and accomplishments can be found at Mix Online. He will be missed. Rest in peace.

Comments (17)

  • du

    thanks for putting this up.

    RIP Keith Barr!!!

  • T.J. Goodwin

    I had the privilege of working as Lead Technician at Alesis for 11 1/2 years. While I can’t say we were “friends”, I will certainly miss the mutual respect and professional camaraderie we had.
    He was the kind of man who could see possibilities where others saw walls, always challenging well established limits.
    Godspeed Keith. The world is diminished with your absence.

  • synthetic

    I worked for him too. Crazy genius in the truest sense, totally unique.

    • What work did you do with him?

      I never met the man in person. We traded a few emails, and he answered some of my more pointed questions on the Spin Semi forum. He was really helpful.

  • paul

    Keith was my uncle. “crazy genius” is a good title. He was my childhood hero. He strongly influenced me in becoming an engineer. I will miss him a lot.

    • Russell Palmer

      Hi Paul… Sorry that I never met any of Keith’s family. I was his partner and President of Alesis for the first 10 years. You can imagine that I understand the “crazy uncle” reference. In what part of the world do you reside? I’m in So AZ.

      Russell Palmer

    • Paul Bock

      Hi Russell, Still in NY, a couple hours from where we both grew up in Rochester NY. I still think about Keith and my grandfather quite a bit. Both were polymaths that had incredible passions for science. My grandfather worked in industry, and loved to teach in retirement. Keith was gifted at taking the same electronic cleverness and delivering it in a profitable product. My grandfather was more about free sharing of ideas and knowledge. He wasn’t happy with how much money Keith made from selling products. While the money obviously frees one from the obligations of life, Keith wasn’t limited in his exploration of science to only making products. I think both would enjoy the maker movement. I am a mechanical engineer, with a wide range of software development experience, who dabbles with electronics; microcontrollers are my candy. I am more like my grandfather than I am Keith. But I spend a lot of time thinking about the product development cycle, especially when looking at companies like SparkFun and Adafruit.

  • JB

    HI Sean,

    I recently acquired an MXR M-191 01 digital reverb, I was wondering if it was a Keith Barr design and where it fit in the evolution to the XT and midiverb. I got the sense from the email excerpts that his digital reverberation work came after MXR so I was surprised and curious when I saw the 01.

    • From a Keith Barr forum post at Spin Semiconductor (

      “The first reference to all passes I recall was an AES issue that detailed Schroeder’s work, a terrible sounding algorythm as described. The tinny sound of the MXR reverb (my work) suffered from this problem. Other early reverbs also suffered from this limited structure (Nichols). Including all pass filters within the comb loops came next (in my work), which definately improved density build, but I was having coding difficulties in the early years with multiple APs in a loop.

      It only makes sense though, that the inclusion of multiple APs in a delay loop will improve density, which in my case, was finally worked out with my Midiverb, and other later Alesis products. Finally, the summation of multiple regenerated delays, with APs included, leads to excessive peaking at certain frequencies… Making the reverb a single loop solves the problem.

      I’ve found that once you’re in the single loop, multiple AP arena, you can make just about anything that has a good tail, reletively flat response, and as much final density as you like. Everything I write today is single loop, with modifications as to input signal injection and output tap selection. “

  • Sean,thanks for this website and for alerting me to Keith’s death. I knew him only slightly, but always admired his creativity and engineer abilities.

    A great oak falls in the forest…

  • GrayGhost

    Alesis Quadraverb = legendary.

  • T.J. Goodwin

    I don’t mean to burst any bubbles, Keith had a lot of input into the QV, but the MV2 and QV were both mostly designed by Alan Zak (Note that the main ASIC in QV2 is designated “ZAK24”.) By then Kieth was mainly focused on ADAT development.

    I absolutely agree. The bloom programs were amazing. They’re the only reason I still keep an MV2 in my collection.

  • Interesting article ! Thank you – as I want to try this at home I stumbled about your favorite block schematic:

    basic reverb topology :
    I see 4 inputs but no outputs (left / right) – where to connect ?
    What is the KRT box ?

    Could you be so nice and enlight me here ?


Leave a Reply

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