www.96kHz.org
advanced audio recording
Spartan 6 drum computer
  128 oscillators

16 voices

128 midi channels

96 kHz
Audio DSP


Sound
Demo 1


Sound
Demo 2

A complete drum computer in VHDL

Cyclone 4 Development System
.
FPGA Drum Synthesizer with Cyclone 4

A Cyclone 4 board of Terrasic is used for sound synthesis and video generation. 2 ports (mouse + keyboard) are available for graphic and synthesis control. Also a MIDI-controller can be attached: The DIY-MIDI-Controller works with standard 230kBaud, which is about 7 times faster than normal MIDI (31250bps).

The design was derived from my universal VA-synthesizer module formerly realized in this Cyclone 4 platform and contains parts of my Multi Audio-Video-FPGA platform. The sample frequency can be selected between 96kHz 192Hz and 384kHz. All processing units adapt automatically in this design. To obtain to best sound quality possible especially for the brilliance of the HF and adapt to current audio hardware, 192kHz have been chosen as the sample frequency. Read here about the advantage of 192kHz in audio processing.

The design is pretty similar to the former Spartan6 design and uses also the my redesigned non linear amplification circuit.

VA - Synthesizer 192kHz in VHDL

"True Analog" filtering is applied with a 225 TAP FIR filter running 5 times the speed of the sampling frequency instead of only running exactly at the sampling frequency as with common audio processing software.

optimized AA - Filter for 5x192kHz x 225 TAP 216 MHz

The filter consists of a symmetric set of optimized binary coefficients using a modified Blackman-Harris window and performs nearly artifact free real time resampling with just only two 25x18 multiplier at full system speed leading to a 24Bit precise calculation with 36Bit precise coefficients.



Music Box / MIDI Engine

MIDI music engine in VHDL

The Music Engine produces MIDI-like 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 creating short reflections similar to room reverb. For the slower (normal) arpeggio the channels can use different parameters for the voices.

Listen to the Drum Demo Sound.mp3






1024 voice polyphonic music synthesizer module

The synthesizer uses the MIDI notes and produces audio signals for each midi channel from generic functions, tone banks, or DDS-based sine waves. Wave table utilization is planned. Also true random generators are possible acting as my vhdl noise generators. The synthesizer operates totally pipelined and with 50MHz clock speed and processes 128 from 256 possible MIDI channels, has 3 oscillators / wave generators and 256 voices polyphony.




Graphical Sound Analyzer

audio analyzer on spartan 6 fpga used as ascilloscope for sound analysis

A simple oscilloscope function in the FPGA is used to control and analyze the wave form during sound generation and modification. The video runs at 108 MHz with 1280x1024 pixels.


Graphical Spectrum Analyzer

spectrum analyzer on spartan 6 fpga



Drum Computer GUI

 GUI for a FPGA based drum computer

A simple 800x600 pixel GUI in VHDL is used to control the parameters of the drum machine. All values can be displayed virtually on a VGA monitor including the oscilloscope like frequency and wave form monitors.



Drum Computer Front

 Front Plate for the FPGA based drum computer

The front of the intended midi controller for the drum computer using classical Mentor knobs for the encoders.



drum computer front skin

The complete front skin of the drum computer with 16 step sequencer and individual tone control for each step for tuning the sounds. Thus bass drums and toms can be setup with the right frequency to met the melodies tune.
 


 

 

© Dipl.-Ing. Jürgen Schuhmacher 2012