Music Synthesis on TMS320C6416 DSK

A course project undertaken as a part of DSP System Design course, November 2008.

A suite of algorithms for music synthesis is implemented on a TMS320C6416 DSP Starter Kit (DSK). Additive Synthesis, Karplus-Strong string synthesis, wave table synthesis and the audio effects such as vibrato and tremolo are implemented. An equally tempered chromatic scale is used for synthesis. The synthesizer can produce notes ranging 6 octaves on the chromatic scale. The algorithms are implemented in fixed point assembly on the DSK, with a C based user interface.

Additive synthesis is based on a sinusoidal model with six components (partials) with a specific ADSR (Attack-Decay-Sustain-Release) envelope. The ADSR envelope and the amplitude of the partials are chosen heuristically. The pallavi of Lambodara (a carnatic classical song) as synthesized by additive synthesis algorithm is shown below. The notes produced are not quite natural sounding due to the simplistic model used and hence need improvement.

Additive Synthesis

Karplus-Strong [1], [2] algorithm for a plucked string is a popular algorithm to model a stretched string and can be used to produce a wide repertoire of sound from strings to drums. In the most simple case, it is a modifcation to the wave table synthesis. It consists of two wave table delay lines of length P where, P = Fs/Fi, with Fs = Sampling frequency and Fi = Fundamental frequency of the note being played.

The parameters available for control are pitch, periodicity and the decay time. The pitch is specified by an integer that is approximately the period of the sound, in samples (periodicity parameter P). Decay time is determined by the pitch and by a decay stretch factor S. A value of S close to zero produces a sound close to stretched string, while an increase in S decreases the amount of decay leading to a lossless wave table when S = 1. The blend factor B decides the characteristics of the sound produced. Blend factor of close to 1 produces periodic harmonic rich string sounds while a blend factor close to 0 produces non-harmonic drum like sounds. The pallavi of Lambodara, as synthesized using the basic Karplus-Strong synthesis (S=0, B=1) is shown below.

Karplus Strong Synthesis

The stretch and blend factors are incorporated with B = 1 and S = 0.5 to synthesize the pallavi as shown below.

Karplus-Strong Advanced Synthesis

Tremolo is implemented by the amplitude modulation of the synthesized note using a simulated LFO and vibrato by frequency modulation of the synthesized note.

[1] K. Karplus and A. Strong, "Digital synthesis of plucked-string and drum timbres," Computer Music Journal, 7(2):43-55, 1983.
[2] David A. Jaffe and Julius O. Smith, "Extensions on the Karplus-Strong plucked-string algorithm," Computer Music Journal, 7(2):56-69, 1983.