advanced audio recording
Altera based music workstation
   Cyclone 2

 Cyclone 2

Altera Cyclone 2 System

Cyclone 2 MIDI System Gleichmann Research

Music Box / MIDI Engine

MIDI music engine in VHDL

The Music Engine produces MIDI-like tone information, based on pre defined rhythm and tone patterns which are kept in a memory. Generation is partly done with algorithmic pattern generation using the algo-rhythm module. The tone notes are copied/doubled according to the ARP pattern, compressed in loudness and modified by the ADSR-module end then sent to the synth module synchronously. 255 Tone Levels = quarter Notes covering 127 MIDI Notes are available. Frequency Shifting can be applied by dynamic  smoothed shifting.

Synth Engine

1024 voice polyphonic music synthesizer module

The synthesizer takes the MIDI notes and produces audio signals for each midi channel from generic functions, tone banks, or DDS-based. Wave table is planned. The Synthesizer operates totally pipelined and with 100MHz clock speed and processes 1024 MIDI channels, 1024 oscillators and has full 1024 voices polyphony.

attached audio processor engine

basic fpga sound processor in vhdl

The DSP Engine performs audio processing compression, limiting and distortion like guitar effects and tube microphone amplifier. Also audio spectrum analysis can be performed through FFT.

MIDI Routing Matrix

fpga based digital audio workstation

The different boards can are interlinked with LVDS parallel bus as well as S/PDIF like LVDS-connection using a virtual MIDI2S/PDIF-converter. With the complementary S/PDIF2MIDI, standard MIDI-interfaces can be linked. MIDI-send/MIDI-return is used to plug additional arpeggio boards, as well as real arpeggiators from hardware synthesizers. Also the audio dsp part can be controlled with the fire controller.

In this audio workstation, I again use my 5Byte MIDI, containing additional time code and channel information. Routing information may be attached too. Also 10 Bit controller data can be sent instead of coarse 7/8Bit. The difference between the first and the last midi channel is only 0,2ms, when all channels are active. Typically 200-300 channels send and receive midi packets of 9-12 bytes in size per tone, so the latency is below 0,1ms. See a detailed article here: Enhanced MIDI Transmission

Also MIDI echo can be produced rather than audio echo with midi delay effects on adjacent channels. Doing this at very high speed short reflections can be produced similar to room reverb. See my special protocol for details. Also arpeggio is possible with the channels. Unlike audio echo or normal arpeggio, the additional channels can use different parameters and voices and tunes. See MIDIARPDEMO.WMA

The Synth may be controlled channel wise by the serial MIDI controller:

MIDI controller with angle encoders
DIY MIDI Controller

Audio and MIDI IO S/PDIF

MIDI controller with yamaha CS1X

My modified Yamaha CS1X Synthesizer as MIDI-Controller

Data Input Module for Key Nnotes
Direct Input Key Module / one octave

 Extension boards with Cyclone II FPGA

Graphical Spectrum Analyzer

audio spectrum analyzer created with spartan fpga on a 1920x1020 TFT screen

Large Scale Graphical Spectrum Analyzer with direct VGA output of Gleichmann FPGA board

Click here for a VA-Implementation with NIOS

Click here for the former Version (Spartan 3E)

Full Stereo
Digital IO Bus

No typical MIDI Delay
because of high bandwidth

1024 oscillators

1024 voices

1024 midi channels

96 kHz
Audio DSP


arpeggio with midi delays

Because of many downloads, the number of demos have been reduced


© Jürgen Schuhmacher 2006