www.96kHz.org
advanced audio recording
A virtual wave table synthesis module in an FPGA
  Virtual
Wave
Table
Generator


Synthesis Unit

This module enhances classic wave table synthesis known from PPG instruments. Unlike in the original instrument, there are not only statically stored waveforms, but they can also be generated dynamically with a LaPlace waveform generator whose weightings are set appropriately. This is possible because of the nowadays FPGA-power.

The desired wave can thus be generated and modified in real time, or constant waves can be passed through, as in the pure wave table synthesis, depending on the individual ADSR curve information which controls the particular wave forming a so called wave modification function set (WMFS). In the current synth I am using enhanced tri channel, multiphase ADSR with up to 8 stages to control the weigths for the sine waves and a conventional ADSR for wave transition. These are based on a set of independent waves in a parallel table, which can have any harmonic content. Up to 64 wave table waves might be used.

By generating waves virtually, it is possible to generate any number of waves and morph to any point. The intermediate waves are limited only according to the boundary conditions of the modification functions, which mainly have restrictions when using analytical functions. Since they can be freely defined, also non-analytical waves can be used as pre-defined wave for instance. Unlike the old module (see Wave Table Module) which used DDS and the first modules which used sine tables if RAM was available, this module generates the signals virutally in real time. A modified Test Signal Generator is used. See the page here: Test Signal Generator.

Hardware

Synchronization Unit for 44,1 kHz to 48kHz

 The module works up to 120 MHz and runs on a current Cyclone III FPGA. Here the Altera NEEK Kit used.


Single Wave Synthesis

WAVE Synthesis Example Laplace
Complex Wave from super imposed sine waves

WAVE Synthesis Example Laplace
Complex Wave from super imposed sine waves, actually a band limited saw tooth


Wave Table Synthesis

In this version, 7 waves are used to create harmonics in order to build the desired music wave. Using several of these waves, a virtual wave table processing is possible by walking through these waves dynamically.

WAVE Table Synthesis with dynamic wave generation
Complex Waves from sine waves changing their shape by 2D sound processing in real time

 
embedded TFT-Display output

Wave Synthesis with Cylcone III
TFT mini output on Cyclone embedded KIT's display


Wave Synthesis with Cylcone III
alternative wave synth setup

In the current synth I am using both multiphase ADSR as well as static driven wave selection to control the wave. According to the virtual generation of the wave, there are no artifacts as known from classical wave table style generation, because wave transformation is operated continously.

Listen to a Demo Sound produced with the triple ADSR function and 7 waves each.

 See also the page here: Test Signal Generator.

Read about the detailled function in this article Wave Synthesis

See my former Wave Table Module

 

 
Full Synchronized
Operation


44,1 kHz

48 kHz

88,2 kHz

96 kHz


Demo Sound
96 kHz
Audio DSP

 

© Sound of L.A. Music Productions 2008