|
256 oscillators
64 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 FPGA Test PCB
Artix 7 FPGA
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 PC GUI - Synthesis Section

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. The front skin of the drum computer controls
an 8x16 step
sequencer and has individual tone control for each step. Thus bass drums and toms can be setup with the
propper
frequency to met the melody's tun. 64 tracks are available
altogether. Direct access is given to boost, loudness and
parameters like D+ADSR+L.
 Drum Computer
Sound Programming
Console / PC-GUI
Construction Details

Data Flow and interconnections of the drum computer.

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.
 Current
realization of the physical front face of the adrum 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:

Screen Shot of the sound configuration menu with digital
numbers on VGA

Screen Shot of the FPGA-VGA-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.

Up to three Artix Modules can be plugged into the new
PCB
Also USB is implemented to attach common
controllers: Drum
Computer with USB MIDI input
See the former version of the drum computer
here: Cyclone 4 - drum
computer with virtual console
See the first version of the drum computer in VHDL
here: Spartan 6 Drum
Computer with virtual console
|
|