Singing Musical Instrument

This tutorial explains how to make a musical instrument to pronounce vowels. The audio control below is the result obtained with a cello audio track.

Open and audio file containing an instrument recording you want to use as voice source.

Download the acoustic graph file french_vowels.agr and load it using the Open Acoustic Graph button. This file contains simplified vocal tract geometries for some french vowels.

Open Acoustic Graph File

Open the preference dialog box and select the audio tab.

Check Record When Play and select the output audio file with the button beside.

Record When Play

Open the DSP filter dialog and activate real-time (RT) checkbox.

Real Time DSP Filter

Once previous steps hav been applied, your audio track will pass through a DSP filter containing poles as soon as you click on any of the edges corresponding a to a vowel represented by its aera function (vocat tract cross section in function of the distance from the vocal cords).

Since poles can lead to audio overfloat, it is highly recommended to reduce audio amplitude. This can be done using the slider or applying a linear transform DSP filter (e.g with a value of 0.1 ≍ -20dB) before clicking on the button.
The transfer function is updated when clicking on an edge only if audio is playing and real-time DSP is checked. Otherwise, you must click on the button for updating the transfer function.

You can also increase pole bandwidths by increasing the c1 parameter in the Acoustic Model preferences as shown in the figure below.

Now you can click on the button. Afterawards, each time you click on a graph (in this case a single edge graph), it will sound as if the playing instrument would have pronounced the vowel. The result is saved in the file you have chosen when you click on the button.
If audio overfloat is detected while saving and you have chosen a flac (free lossless audio codec) format, it is changed to wav fomat in order to avoid a crash in the flac output.

💡 You can edit each aera function by double clicking on an edge in the graph view. This opens the Aera Function Editor. If Compute is checked, the transfer function is updated once the aera function is modified, once you release the mouse button after moving a point in the graphic window or modify the point coordinates in the table beside.