CWeb TeX Makefile Lua SourcePawn Gnuplot
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
sp ugen wording May 29, 2017
.gitignore added epsf.tex to gitignore for android May 15, 2017
Makefile Merge pull request #7 from belm0/patch-1 Jan 9, 2018
by-sa.eps added licensing information Jun 2, 2017
debug.w Support ctanglex. Dec 29, 2017
glottis.w glottis: improve Pink Trombone parity Jan 5, 2018
header.w glottis: improve Pink Trombone parity Jan 5, 2018
ref.bib reference fixes Jun 6, 2017
ugen.w macros so voc can be used internally by Sporth Jun 6, 2017
voc.w Support ctanglex. Dec 29, 2017


A physical model of the vocal tract. 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