Table of Contents

Introduction to PVC

Introduction to PVCX

General Usage

Gen Functions


Note: In order to reduce redundancy, instruments which are embedded in other instruments (i.e, Pvanalysis inside of Chordmapperplus, Filtresponsemaker inside of Filtdeviator w/ Breakpoint Synthesis and Filter w/ Chord Synthesis) are listed independently of instruments they are embedded inside of. There are links to them from the instruments they are embedded in.


























Introduction to PVC

Note: The following is Paul Koonce's introduction to the original PVC package, version 4.0. It was brought in from the PVC site at , unedited and unchanged except to remove UNIX-specific instructions that were included at the end.

PVC is a collection of phase vocoder signal processing routines and accompanying shell scripts for use in the transformation and manipulation of sounds. It is written in C and designed to be used in a UNIX environment. It has come about as a result of my path of education and research into phase vocoder technology. It follows in the spirit of the work by Eric Lyon (out of which PVC is built) and Chris Penrose whose particular dsp research springs from the coding and tutorial work of F.R. Moore and Mark Dolson. Moore's book, Elements of Computer Music, published by Prentice Hall, is consequently a great resource for making sense of the phase vocoder engine w hich I am unable to go into here. Curtis Road's book, The Computer Music Tutorial, published by MIT Press, has sections on the phase vocoder as well; these may better introduce the beginner to the practical concerns of this technology. Short of the explanations these sources provide, I have attempted to offer below some explanations, particularly as needed for control of the parameters in these routines. A manual and tutorial would be great to have; unfortunately time has not yet made it so.

These routines reflect my need for tools that can perform different spectral resynthesis tasks; both simple and experimental. Their refinement has advanced with my growing skills and curiosity, which I expect will continue as long as I have questions about sound. Most of these routines can be viewed in terms of traditional additive or subtractive synthesis tasks, coming about as they did from the desire for greater finesse and control of these two basic types of synthesis. While the speculative nature of some give them an idiosyncractic character, most should, with practice, reveal the transparency of their names if not the role they can play in the shaping of sound. All require a good ear tuned towards sound and idea as none of these routines are automatic, although many hold great potential for the diligent.

PVC 4.0 contains modifications and some new routinesóchordmapperplus now replaces chordmapper, spectralextractor and extractor (a work-in-progress made for use in additive resynthesis using SuperCollider) are added, but mostly 4.0 is a port to OSX.

Paul Koonce

Introduction to PVCX

PVCX is a wrapper for Paul Koonce's PVC package for UNIX. It is the result of a lot of work spent building GUIs, redesigning them, and trying to figure out the most friendly way to present PVC. Even now, it's not really done; I'm planning on adding more features like a GUI for the gen functions PVC uses, and also changing some parts of the GUI to utilize checkboxes and drop-down menus where choices indicated by values such as 0 or 1 are now. That being said, I think what there is now is a friendly, useable interface.

A word about the help: Almost every text field with the exception of very, very obvious ones (open path, save path) has contextual help for it, and every parameter is also explained in these HTML pages. There are some which are undefined, however; the contextual help will bring up an empty window, and the HTML help will have no definition.

I hope you enjoy PVCX. Keep in mind that as in any first release, I expect there to be some bugs in the program or broken links in the HTML help. Please email bugs, comments, suggestions, etc., to (with an @ in place of SPAM_FOOLER), and put 'PVCX' in the subject so that I can sort it from Hotmail's aggressive junk filter.

Development of PVCX was supported by a grant from the University of Richmond Undergraduate Research Committee and the Computer Music Studios at the University of Richmond.

- Kenneth Hoffmann

General Usage

The first time you launch PVCX, it will create folder called Temp. Here, it manages all the external files PVC uses such as data files for Chordmapperplus and Filtresponsemaker. Every time it launches, PVCX will look for this Temp folder and create it if it doesn't find it. It also cleans it before it quits, so make sure not to save anything inside of this folder.

The main window of PVCX looks like this. Once the main window launches, choose your instrument from the Instruments menu and it will drop down in a drawer from the window.

Once the drawer drops down, you will see that all instruments have default values preset. You can tab through the text fields and replace any value you wish. Click on the Restore Defaults button in order to recall the values that the drawer had when it first appeared. Keep in mind that if you change instruments, the values you set will be lost. The save path and open path are indicated above; you can either use the corresponding buttons to find the file you want to use, or type in the path in the textfield. The fields are read when you hit Execute Process.

PVCX has a great many sub-windows in its instruments. All of these windows have buttons to restore their default values, cancel, or save. You must hit save in order for the changes made in the window to take effect. If, for example, you choose an instrument, open one of its sub-windows and change its values, and run the instrument without first clicking on 'Save' in the window, the instrument will run the default values of that window.

While the number of text fields can be intimidating, PVCX has built in contextual help which can be accessed several ways. For users with a full-length keyboard, use the Help key. For laptop users, you can use either the Help menu, or hit Command-`. Press and hold Command, then hit the ` key while still holding Command. Finally, click on the text field you have a question about. Note that if you want to check several text fields quickly, you can keep Command depressed while pressing ` several times. You do, however, have to click the mouse once the contextual help window appears in order to dismiss it.

File Formats and Preferences

With the help of the open-source utility SoX, PVCX can handle AIFFs, WAVs, or AUs for input. In the Preferences menu, PVCX can be set to automatically convert output files to AIFF or WAV. Otherwise, they are output as SNDs.

The other option in the Preferences menu will bring up a dialog box when you hit Execute Process if the resulting file would overwrite an existing file. Otherwise, the only time you will be warned about overwrites is when you use the 'Save Output As' button.

Executing a Process

Once your parameters are all set, just hit Execute Process. A window will pop up with a text box in it. The text box streams data back from PVC, looking exactly as though you were running PVC from the command line. The rest of the application's buttons and menus will grey out during a process' execution, preventing you from interrupting it or trying to run another task simultaneously.

During a process, you can suspend or cease an operating using the progress window's buttons. Hitting the suspend button changes it to resume, allowing you to pick the process back up similar to the UNIX version.

Finally, once a process is ceased, suspended, or finished, two new buttons will appear, allowing you to preview your sound or delete it, letting you immediately test out and, if desired, dispose of the process' result.