|
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 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.
Drum Computer 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 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:
Screen Shot of the configuration menu
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.
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
|
|