Skip to content
This repository has been archived by the owner on Jul 2, 2019. It is now read-only.
/ voc Public archive

A physical model of the human vocal tract using literate programming, based on Pink Trombone.

Notifications You must be signed in to change notification settings


Repository files navigation


A physical model of the vocal tract, based on pink trombone

More information can be found on the main Voc webpage.

Things you'll need:

  • CWEB (this often comes with TeX)
  • Soundpipe (dev branch)
  • Sporth (somewhat optional)
  • sporth_tex (can be installed with Sporth by running "make sporth_tex" in the sporth codebase)
  • GNUplot (needed to generate visuals)

Running "make" with no arguments will run ctangle. The core files generated are voc.c and voc.h. These can more or less be dropped into a working project and it will behave like any other soundpipe module. The exception to this is that you will need to use setter and getter functions to set and retrieve parameters in Voc. Some of these examples can be found inside the generated Voc document.

Sound examples

The videos below showcase Voc being used in a musical context. The sounds were synthesized using Sporth and the Sporth plugin implementation of Voc.

  • Babble: The first real patch created in Sporth using Voc was Babble. Babble makes good use of interpolated random number generators and jitter to produce sounds that mimic a babbling person.

  • Chant: The patch Chant was an attempt to build a constrasting patch to Babble, this time focusing on slow moving periodic modulations instead of fast and random ones. Voc is able to turn into something resembling a chanting monk by picking a low fundamental frequency, a high velum, low frequency sinusoidal modulation of the position, as well as a high diameter parameter. A lowend boost and reverb is added to taste.

  • Unya: This was an attempt to find interesting values from the tongue control parameters, as well as build something tonal. Both diameter and position are mapped to clocked envelope generators, which have the effect of going between two vowel states. In this case, they make a sound which approximates the nonsensical word "unya".

Realtime Demo

For those wishing to try out Voc with minimum hassle, there is a realtime voc demo which is able to compile for both Mac OSX and Linux systems running JACK. This demo uses the version of Voc contained inside of Soundpipe.


Voc has a multi-licensing scheme for the different components:

  • The core CWEB code uses the MIT license.
  • The code generated by ctangle (voc.c, voc.h, etc...) is released under the public domain.
  • The TeX code generated by cweave, and any resulting documents generated using that code such as the PDF, are released on the Creative Commons Attribution ShareAlike license.
  • The included Sporth code examples are all public domain