advanced audio recording
audio & music workstation with C3/C2 and 1024 polyphonic voices
  Cyclone III + C2  boards Base Hardware UNIT
Altera Cyclone III

Altera Cyclone III board used for sound synthesis

The new Altera Nios Embedded Development Kit III from Terasic is used to implement and test the parts of the AUDIO DSP. It performs IO communications and is the master of the sub modules. Currently there is one music module driving one synthesizer module and one audio dsp module directly. This gives the option to generate and process all music and audio data with low latency. The board is attached to both a stereo audio codec chip and high speed ADCs + DACs which are used for signal observation during development process. Also it contains a Video interface to VGA to directly monitor spectral audio responses as used in a graphical equalizer and multiband compressor.

Daughter boards can be linked by audio wire or virtual midi, also offering virtual MIDI over S/PDIF. This both ensures high MIDI bandwidth much beyond the current MIDI standard.

For example with common studio music setups, the transmission of SYSEX-data and tone data for e.g. 32 MIDI channels will typically require a period of nearly 70ms which makes it impossible to generate musically synchronous data in real time. Remember that already 2ms delay between two channels might be discovered as echo. With the FPGA based digital audio workstation, 1024 MIDI channels could be transmitted in less than one sample of 96kHz! This makes it first possible to define echos and reverbs in the MIDI filed and install arpeggiator modules which generate reflections and who's repeated notes perfectly fit to the music data stream.

Music Box / MIDI Engine
8 x 16 primary MIDI channels, 1024 secondary channels

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. 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.

The arpeggio module uses adjacent MIDI channels to produce MIDI echo rather than audio echo. This is possible with a very high time resolution using internal high speed MIDI creating short reflections similar to room reverb. For the slower (normal) arpeggio the channels can use different parameters for the voices.
Listen to the demo ARPEGGIO.WMA

Midi Routing to internal and external devices
with virtual MIDI over S/PDIF

FPGA based music synthesizer 2008

The different boards are interlinked with LVDS parallel bus as well as S/PDIF like LVDS-connection using a virtual MIDI2S/PDIF-converter.

With S/PDIF2MIDI, standard MIDI-interface can be linked. MIDI-send/MIDI-return is used to plug additional arpeggio boards, as well as real arpeggiators from hardware synthesizers.

In this audio workstation, I use a 5 Byte MIDI, containing additional time code and channel information. Routing information may be attached too. Also 10 Bit controller data can be sent instead of 7/8Bit. The difference between the first and the last MIDI channel is only 0,2ms in maximum, even when all 1024 channels are active and sending. Typically 200-300 channels send and receive MIDI packets of 9-12 bytes in size per tone, so the latency is below 0,1ms leading to inaudible jitter of simultaneously occurring tones.

Music Synthesizer Engine
with 1024 voices polyphony

The synthesizer takes the MIDI notes and produces audio signals for each midi channel from generic functions, tone banks, DDS-based or user RAM. Wave table with more RAMs is planned.
Using 100MHz and 96kHz sample rate, the synthesis module produces 1024 oscillators simultaneously. With full 192 MHz operation speed (possible for Spartan 6 and Cyclone IV) and reduced sample frequency of "only" 48kHz (common for most synthesizers in the market) 4096 polyphonic voices can be produced. Estimating a synthesizer with 4 oscillators, this compares to 1024 voices polyphony.

Music DSP Engine
configurable DSP functions

The DSP engine performs audio processing like compression, limiting and adds signals from adjacen boards performing several distortion techniques like guitar effects and tube microphone amplifier and tape emulation.

The platform can be configured with any number of DSP and Synthesizer Modules such as the VA-Synthesiser and the Wavetable Module. Here the output of the guitar distortion is shown. Synchronisation is performed with a universal synch unit.

Also audio spectrum analysis can be performed through FFT:

Graphical Spectrum Analyzer

Large scale graphical Spectrum Analyzer with 192 Tap Görzel FFT compressed to 48taps with direct DVI output to 1920x1080 TFT monitor (Samsung TFT TV) by Altera C4 FPGA. Resolution 0,1 dB and better. Sound patch (still image) created with E-mu Orbit 2 + Access Virus B. Live recorded with 1024 oversampling (96MHz Sigma-Delta ADC at 16 Bits) with 21 Bits effectively.
The built in display is used for monitoring signal, offering a GUI or also audio visualization.

Extension Boards Cyclone II

 with up to 8 external boards can be configured and controlled from within the main module.

MIDI Controller
MIDI Controller to run digital filters

Mix Demo Trance
Sound Demo VA-Synthesis
 Sound Demo Organ Emulation

Base Project of Organ Emulation (S3, 48kHz only)

Former Version of the Workstation (C2, 96kHz only)

Full Stereo
Digital IO Bus

No typical MIDI Delay
because of high bandwidth

8192 oscillators

1024 voices

1024 midi channels


demo 1
demo 2

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

96 kHz

192 kHz

384 kHz

Audio DSP


© Jürgen Schuhmacher 2008