Generation of Vibrato in Expressive Performances in MIDI

by Aaron Yang
ISE 599

The goal of this experimental project is to be able to generate believable vibrato in expressive MIDI music.

What is Vibrato?
Seashore(1938) answers this by saying: “Good vibrato is a pulsation of pitch, usually accompanied with synchronous pulsations of loudness and timbre, of such extent and rate as to give a pleasing flexibility, tenderness, and richness to the tone.”

So vibrato involves not only pitch, but also loudness and timbre.  It is used to add warmth and expressiveness to notes. 

It was once considered ornamentation used in performance. It is more consistently used in modern day performances. Vocals, stringed and wind instruments are all capable of creating consistent vibrato.

From (

Other related music elements:
Tremolo - This is just a modulation of volume.
Trill - A rapid alternation of a note and another note a semi-tone or whole tone above it.
Portamento - A smooth transition between two notes in while notes in between are also heard. 

A Relation of Vibrato to Engineering

Vibrato is none other than a modulation of pitches or frequencies.  Frequency Modulation (FM) is used for the transmission of radio broadcasts.
John Chowning, by experimenting with different types of vibrato at Stanford, discovered FM synthesis of sound.  FM synthesis was used in earlier computer sound cards and synthesizers. 

Some Observations About Vibrato (from Timmers & Desain (2000))
Here are some general observations done by researchers on vibrato.
  • Shape: Generally found to be sinusoidal, but mostly trapezoidal according to Horii, 1989b.
  • Direction: Short notes only contain an upper arch (Castellengo, Richards & d’Alessandro, 1989). Notes generally start with a rising pitch (Horii, 1989b) and end in the direction of the transition (Sundberg, 1979).
  • Mean rate: rate between 5.5-8 Hz, extent between 0.6-2 semitones for singers and between 0.2-0.35 semitones for string players, see Seashore, 1938; Sundberg, 1987; Meyer, 1992
Aspects of Vibrato
  • Rate of Modulation - how fast the vibrato is being played. 
  • Width of Modulation - how sharp & flat or how far from the note being played.

Ways of Generating Vibrato in Music
Symbolic -> Midi has a modulation event which will create vibrato with a fixed parameter.  Unfortunately, the general MIDI implementation of modulation has one parameter which corresponds somewhat to width of the vibrato.  It is up to the synthesizer playing the file to create the vibrato.  Unfortunately, the modulation MIDI event is limited in type of vibrato it can create.  It has a limited range of control. 

Audio/ Analog -> Using sinusoids, a synthesizer can create vibrato.  A low frequency oscillator can be used to create waveforms that correspond to effects such as vibrato and tremolo.  Usually, more expensive synthesizers are required to create better quality vibrato sounds. 

The approach of this project models the vibrato with equations used in audio synthesis of music.  The result is then mapped to a MIDI pitch bend event which will cause an "bend" in the pitch.  Many of these events are inserted into the MIDI file through time to generate vibrato.

In order to generate vibrato the following equation is used:

f1 is the frequency of the note being played, also known as the fundamental frequency
These parameters are used:
vibrato rate - This will use a typical value of 8 Hz
vibrato width - 1% of the fundamental frequency, f1, is used.

Program Description [ executable ]

The program is implemented in C++ using Craig Sapp's Improv libraries.  It is a console only application.  Currently, it will only generate vibrato for one track of notes at a time.  Certain instrument sounds are more suitable for the addition of vibrato(strings & woodwinds) than a normal piano sound.  This program currently generates a uniform vibrato rate & width for the piece.

Comparison of Sound Samples
The MIDI sample is Saint-Saens' The Swan from the Carnival of Animals suite
Using Modulation Event with parameter of 127
Using Modulation Event with parameter of 64
Output of the program

This project has generated vibrato using normal MIDI events.  It is more economical to use normal MIDI events than an actual hardware synthesizer.  Furthermore, the amount of control surpasses that of a MIDI modulation control event.  There is more work that could be done to improve this program. 

Future Work
There is a large correlation between vibrato rate and metrical structure as shown in Timmers & Desain (2000).  The project could be extended to incorporate this. 

Using a rule-based system for varying vibrato through a piece. 


Desain, P., Aarts, R., Honing, H., & Timmers, R., (1999). Rhythmic
Aspects of Vibrato. In Desain, P. and Windsor, W. L. (eds.) Rhythm
Perception and Production (pp. 203-216). Lisse: Swets & Zeitlinger

Desain, P.W.M., & Honing, H.J. (1996). Modeling Continuous Aspects of Music Performance: Vibrato and Portamento. Keynote abstract. In B. Pennycook, & E. Costa-Giomi (Eds.), Proceedings of the International Music Perception and Cognition Conference (pp. CD-rom). Montreal.

Schoonderwaldt, E. & Friberg, A.  (2001), Toward a rule-based model for violin vibrato, In proceedings of the Workshop on Current Research Directions in Computer Music Barcelona, Spain: Pompeu Fabra University, Audiovisual Institute, pp. 61-64.

Seashore, C., ed. 1938. Studies in the psychology of music Vol. 1: The vibrato. Iowa City:
University of Iowa City.

Timmers, R., and Desain, P. (2000). Vibrato: questions and answers from musicians
and science. Proceedings of the sixth ICMPC. Keele.

MIDI Note Number to Frequency Conversion Chart

Vibrato: some historical notes for string players

Tremolo or "Real" Vibrato

Recommended Resources:
An Introduction To Frequency Modulation

Comp685B Computer Music @  Hong Kong University of Science and Technology

The MMM group @  University of Nijmegen (KUN) and the University of Amsterdam (UvA)

Music Technology Handouts: Controllers

MIDI References