alesis midiverb ii
















There's not much 'analog' in this box, I must admit, but I was just wondering why it sounds so much better than the later MidiVerb III. MidiVerb II is an amazing machine - in the era of cheap silicon and huge memory chips it's still being used widely after 20 years or so in existence. Though pretty basic, like the Electro-Harmonix Small Stone, MXR Phase 90 or Boss CE-1 Chorus Ensemble it's a classic with it's own distinct sound and loyal fan base.

I tried to google for schematics, service manual and a datasheet for the DSP chip. And came back with nothing so I had to open the box and take a closer look. Here are my findings based on observations, measurements and some speculation about what's going on in MidiVerb II.

PCM54 DAC for dual channel output   4x4416 DRAM for 16K of 16bit sample RAM   Alesis custom DSP chip (68 pin PLCC)   32K EPROM with firmware

Trimpot for MSB error adjustment procedure   2K Static RAM for DSP instruction memory   CPU, Signetics SC80C31A   32 byte serial EEPROM for user configuration

MidiVerb II is controlled by a Signetics SC80C31A (CCN40) CPU clocked at 12 MHz. This is a ROMless, 128-byte-RAM version of the chip that seems to be the 'pet' CPU in every early Alesis design. CPU is responsible for front panel (buttons and LEDs), MIDI handling and transferring program data to DSP program store. Next to it is a tiny serial EEPROM (Xicor X2444P) that stores 32 bytes of user configurable information. 32 bytes is just enough to store 32 MIDI patch to MidiVerb program mappings - when one sends a MIDI program change message (0xCn) in MODE 1 (MIDI control channel set to 01..16) the data byte in MIDI command gets translated from value 0..31 into a MidiVerb program number (00..99) via this table. In MODE 2 (MIDI control channel set to 00) data byte selects the program directly. Along with patch-to-program mappings EEPROM also stores MIDI control channel number in high bits of first five bytes. When MidiVerb II is switched on the first program in the mapping table is read and activated.

Firmware is stored in 27C256 EPROM and consists mostly of DSP instruction sequences for all 100 presets. Firmware is pretty basic, consisting mostly of front panel routines (buttons, LEDs), EEPROM I/O and DSP initialization. Programs are independently executed by DSP except Flanger and Chorus routines which need additional processing from CPU to simulate variable rate LFO. When a program change is requested (either from front panel or via MIDI) the DSP is reset and appropriate DSP program is transferred from EPROM to DSP Program store (2K Static RAM, Write Only for the CPU and Read Only for DSP). Actually only 256 bytes required to store a DSP program are addressable.

The heart of the MidiVerb box is the proprietary DSP chip (more details). DSP handles one sample at a time. The instruction sequence (DSP program) consisting of 256 bytes is continuously fetched in loop at 8 MHz clock speed from Program store (SRAM) so that the whole program gets executed during one sample cycle (31.25KHz) and produces a sample for both (left and right) channels. This results in 15KHz bandwidth for the processed audio signal after Digital-to-Analog conversion. Processed signal is mixed with the 'dry' one in analog after the conversion (MIX button). DSP uses its dedicated Data buffer (4 4416 DRAMs organized as 16 Kwords 16 bits wide) for storing samples in a circular buffer. This memory consisting of 16384 memory locations is only visible to the DSP.

Digital-to-Analog conversion is handled by PCM54 DAC. This is a classic R-2R ladder DAC generally considered superior in quality to Delta-Sigma oversampling DACs that are dominating today. Analog signal from the DAC is demultiplexed into left and right channel by 'deglitcher' circuit consisting of a CD4053 analog MUX/DEMUX (U6) and a TL084 opamp (U3) next to the DAC. The board also has circuitry for MSB Differential Linearity at Bipolar Zero Adjustment which is lifted directly from PCM54 datasheet. Although the pot for adjustment is easily accessible I have no idea how to do this procedure as it would require sending values 7FFF and 8000 down to the DAC but only the DSP can do this so you'd have to grab direct control over the DSP...

There is no dedicated ADC device involved. Analog-to-Digital conversion is managed by method of 'successive approximation'. Circuit for that consists of PCM54 DAC for reference voltage generation, DSP itself hosting the successive approximation register (SAR) to supply digital codes for DAC, and a LM311 voltage comparator opamp signalling the DSP about the end of conversion.

Datasheets for more 'interesting' chips, as well as the user manual and program chart can be downloaded below. All comments, clarifications, corrections, rectifications, amendments and revisions are warmly welcome here.

 80C31/80C51/87C51 CMOS single-chip 8-bit microcontrollers
 PCM54/PCM55 16-Bit Monolithic Digital-To-Analog Converters
 X24C44 256-Bit Serial Nonvolatile CMOS Static RAM
 IDT6116SA CMOS Static RAM 16K (2K x 8-Bit)
 MIDIVERB II Instruction Manual
 MIDIVERB II Program Chart
 MIDIVERB II Quick Setup

Harmony Central: 8.1/10 8.0/10 4.0/5

definitive website:

None that I know of

worth checking:



lists and forums: