www.96kHz.org
advanced audio recording
Artix 7 based drum computer
  256 oscillators

32 voices

128 midi channels

768 kHz
Audio Generation

192 kHz
Audio DSP

A complete drum computer in VHDL

This page shows the current version of my drum computer. For technical details regarding VHDL and the former base board see the article Spartan 6 drum computer. For this new version, a current Artix 7 FPGA is used.

Here is a comparison between Spartan6 and Artix7 resources and the resulting sound / video options:
The largest Spartan 6 FPGA is the type LX150 which has about 1,4 and 3,0 time more resources (see green value) than the LX75 I I used in the Tenz-FPGA System. But the largest Artix7 FPGA available has about 2,0 to 5,6 times more resources and also accepts higher speeds. Furthermore it is freely programmable with either ISE or Vivado, while with ISE the LX75 was the biggest freely programmable FPGA. So the Artix is the choice of the day.


Resources   XC6SLX75   XC6SLX150     XC7A200T  
Cells 74637 1,0 147400 2,0 215360 2,9
Slices 11662 1,0 23038 2,0 33650 2,9
DSP 132 1,0 180 1,4 740 5,6
BRAM18   172 1,0 268 1,6   730 4,2
Video Section                
H-Size 800 1024 1280  
V-Size 600 768 1024  
Colors RGB RGB RGB  
Color-bits 2 2 3  
Colors 64 64 512  
Video-RAM 2.880.000 1,0 4.718.592 1,6 11.796.480 4,1
BRAM-Bits 3.170.304 4.939.776 13.455.360  
usage   91%   96%     88%  
Song Section                
Music Tracks 128 1,0 128 1,0 256 2,0
VCO-Parameters 128 1,0 128 1,0 512 4,0
LFO-Parameters 32 1,0 96 3,0 128 4,0
Para-RAMs 160 224 640  
RAMs 172 268 730  
usage 93% 84% 88%  
free 12 44 90  
Song-RAM 8 1,0 32 4,0 64 8,0
Events 8.192 1,0 32.768 4,0 65.536 8,0
Events / Voice   64 1,0 256 4,0   256 4,0
VA-Synth Section                
VCOs / Voice   2   2     3  
OSCs / VCO 1 2 2  
LFOs / OSC 1 1 2  
Oscillators   2 8 4 16   12 48
EQ-Filters   2 4 2 4   4 8
Volume 2 4 2 4 3 6
ADSR 2 4 4 8 6 12
Compress 1 4 2 8 2 8
Gain 1 1 1 1 1 1
Send 2 4 2 4 3 6
Mix 2 4 4 8 4 8
channels 2 2 4 4 8 8
Modifiers   14   21     31  
Echo   2 6 4 12   4 12
Reverb 1 4 2 8 2 8
Shuffle   1 1 1 1   1 1
Multipliers     46   78     126
post Synth stages     2,9   2,3     5,9
used     2,0   2,0     4,0
System-Freq.   216   216     297  
Audio-Video 108 108 148,5  
Voice-Pipe 128 128 256  
Sample-Freq. 843,75 843,75 580,08  
Sample-F. used 768 768 576  
Resampler 4 4 3  
Output   192   192     384  


Artix 7 Test-System
.
Digilent Nexys Artix7 Synthesizer
Digilent Nexys FPGA Test PCB


Artix 7 FPGA System
.
Trenz Artix7 100 System

An Artix 7 board from Trenz Electronic in Germany is used for sound synthesis and video generation. 2 PS/2 ports (mouse + keyboard) are available for graphics and synthesis control. Also a MIDI-controller shall be attached: The DIY-MIDI-Controller works with 4x230kBaud, which is about 25 times faster than normal MIDI. See the MIDI 2000 page for details about the MIDI I am using.


 Drum Computer Front

To control the FPGA directly most of the functions can be accessed by internal rotary encoders. Here no LED feedback is used anymore but the values are represented on a SXVGA real time output. There is a drum computer GUI as well as a GUI directly showing the knob's positions. A modified screen of the front plate is used for this.  In the PC GUI, oscilloscopes, 3D placer and voice mix ratios are displayed using GUI-Parts of the Pyratone Synthesis Controller.

drum computer front skin - PC GUI
Drum Computer PC GUI - Synthesis Section


drum computer front skin - Version 2 - front skin for the drum synthesizer
Drum Computer knob representation page, now with smaller keyboard but more knobs than in version 1. It has a 16 step sequencer for each channel and individual tone control for tuning the sounds in real time. As an example bass drums and toms can be configured with the right frequency to met the melody's tuning perfectly. Song and pattern programming is performed via GUI or PC upload.


drum computer programming console - artix 7
Drum Computer Programming Console / PC-GUI


 
Construction Details

drum computer data flow
Data Flow and interconnections of the drum computer.


drum computer usb control
A modified USB-keyboard is used to control the channel mixer with SOLO (yellow), MUTE (light blue), LOUDNESS (green+red up/down). Keymapping is performed in the FPGA interface.


drum computer front skin - front skin for the drum synthesizer
 Current realization of the drum computer using Mentor knobs for the encoders:


Listen to a demo song of the DRUMMIX 2:

Demo Dance and House Mix

Demo Beat Resampler Mix


The Drum Computer shows also internal settings and values like wave synthesis and levels via a virtual MIDI knob matrix:

drum computer direct vga output
Screen Shot of the configuration menu


drum computer direct sxvga output
Screen Shot of FPGA output for MIDI Controller 15

Platform Design

The drum computer will become a part of the forthcoming Pyratone Platform to operate self standing and in cooperation with an additional sound synthesis module as well as adjacent DSP module for sound processing, see www.pyratone.de.

Pyratone Synthesizer Platform
Up to three Artix Modules can be plugged into the new PCB

Also USB is implemented to attache common controllers:
Drum Computer with USB MIDI input

See the first version of the drum computer in VHDL here:
Spartan 6 Drum Computer with virtual console



 

 

© Dipl.-Ing. Jürgen Schuhmacher 2016