[4mPVC[24m is a collection of many excellent phase vocoder programs
(currently the most extensive  and  powerful  phase  vocoder
programs  available  on  the  ECMC  systems) written by Paul
Koonce. Currently we are running version 3.0 of PVC  on  the
ECMC  Linux  systems in  a Linux port by John Gibson.  Docu-
mentation in [4mhtml[24m format is available online through a  link
in  the  [4monlinedocs[24m page of the ECMC web site (read the ECMC
version at
     http://www.esm.rochester.edu/onlinedocs/pvc.ecmc.html
rather than Paul Koonce’s original version).  This document,
also included in the hardcopy [4mLINUXI[24m [4mDOCS[24m binder in the stu-
dios, has been edited by Allan  Schindler  to  reflect  ECMC
usage,  and should be your principal starting point and ref-
erence source for work with the [4mPVC[24m programs.

To simplify usage of some of the most  frequently  used  [4mPVC[0m
programs  on   ECMC  Linux  systems  I  have  created  local
scripts, with the routine name followed by the extension [4mtp[24m,
("template")  based upon models provided by Koonce, that can
be used to run  these  programs.  These  ECMC  scripts  also
enable us to use 96kHz 24 bit input soundfiles and to obtain
96/24 output soundfiles -- something not otherwise  possible
with the PVC programs -- in addition to 44.1k and 48k 16 bit
integer or 32 bit float resolutions.

To obtain a list of currently available ECMC  templates  for
PVC programs, type
                           [4mpvctp[0m
To  obtain  a  usage  summary on using one of these template
scripts, type the script name with no arguments.
Example: Typing
                         [4mplainpvtp[0m
will display a usage summary for plainpvtp.
To obtain a script to run pvanalysis use either the command
                        pvanalysistp
or else the alias
                         pvcanaltp
To obtain a script to run twarp, use  the  command  twarptp,
and so on.

In  addition,  for  each  PVC  program  for which an ECMC [4mtp[0m
script exists, I have created  one  or  more  usage  example
files,  which  create  an output soundfile or analysis file.
To obtain a listing of these example files, type
                           [4mpvcex[0m
To display one or more of these  example  PVC  script  files
through the paging program "less," type:
                    [4mpvcex[24m   [4mfilename(s)[0m
To capture one or more of these files, type:
            [4mgetpvcex[24m   [4mfilename(s)[24m  [4m>[24m  [4mfilename[0m
Hardcopy  of  all of these example files is available in the
[4mECMC[24m [4mPVC[24m [4mExamples[24m binder in the studios.

Soundfiles in the [4msflib/x[24m directory exist for all  of  these
examples except for a few that do not create soundfiles, but
instead create an analysis file or some other type of  file.

To  learn  how to use [4mplainpv[24m, the most basic program in the
PVC package, or any other [4mPVC[24m program for which an  ECMC  [4mtp[0m
script template exists, I recommend the following steps:

(1) Read a portion of the online or hardcopy HTML documenta-
tion on [4mPVC[24m and find a program you want to try.
(2) Make sure that an ECMC script exists for the program  by
typing
                           [4mpvctp[0m
If an ECMC script does exist:
(3)  Find  out  whether one or more ECMC example files exist
for the program by typing
                           [4mpvcex[0m
and note the names of example files for the program.  In the
case of [4mplainpv[24m, there are several examples, and we probably
would begin with example [4mplainpv1[0m
(4) Look at  one  of  the  example  files.  To  see  example
[4mplainpv1,[24m for example, type
                      [4mpvcex[24m  [4mplainpv1[0m
or  else  consult  the printout of this file in the [4mECMC[24m [4mPVC[0m
[4mExamples[24m binder.  While studying this example, listen to the
compiled soundfile in the [4msflib/x[24m directory that was created
by this example file:
                       [4mpsfl[24m  [4mplainpv1[0m
(5) Look at, and listen to, other examples  created  by  the
program, such as [4mplainpv2[24m and [4mplainpv3[0m
(6) When you are ready to use the program yourself, obtain a
template file for the program. For a usage summary of how to
use  an  ECMC  [4mtp[24m script, type the script name with no argu-
ments:
                         [4mplainpvtp[0m
Then type

            [4mplainpvtp[24m  [4minsound.wav[24m [4moutsound.wav[0m
(where "insound.wav" is the name of the input soundfile  and
"outsound.wav"  is  the  name you wish to give to the output
soundfile.  Then, if everything looks okay, type
                     [4m!![24m  [4m>[24m  [4mscriptfile[0m

or else simply
   [4mplainpvtp[24m  [4minsound.wav[24m [4moutsound.wav[24m [4m>[24m [4mscriptfile[0m
where "scriptfile" is whatever name you want to give to  the
script  file.   This  will  create  a file with analysis and
resynthesis parameters that you can edit and then use to run
[4mplainpv[24m.
(7)  Next open this script file with any text editor, chang-
ing some of the default parameter values within the top half
of  the  file  to meet your resynthesis goals. Do not change
anything within the bottom  half  of  the  file  (after  the
"[4mOFFICE[24m  [4mUSE[24m  [4mONLY[24m"  line.   The  pound sign # serves as the
comment symbol for all [4mPVC[24m scripts, and all characters on  a
line that follow this symbol are ignored by the [4mPVC[24m program.
(8) When your script file is ready, run the program with the
command
                        [4msh[24m  [4mfilename[0m
(Note  that  [4mPVC[24m scripts must be run by a Bourne shell, with
the [4msh[24m command. The Bourne shell, the original type of  Unix
shell,  differs  in  some  ways  from the [4mcshell[24m  [[4mcsh[24m] with
which you may be more familiar.)
(9) When the job is completed, play the resulting soundfile.
If  you  aren’t  completely  happy with the result, edit the
script file again and run it again.

Phase vocoder jobs sometimes can take a long  time  to  run.
You can suspend any [4mPVC[24m job in process at any time by typing
^z ([4mcontrol[24m [4mz[24m) and play  the  partially  compiled  soundfile
with  any play program or soundfile editor.  However, if the
output soundfile will have 24 bit  integer  resolution,  the
partially compiled soundfile at this stage will be in 32 bit
floats and will be named "pvcout". To  play  this  temporary
output  soundfile,  you will need to use a play command that
can play 32 bit floats (such as  the  standard  ECMC  "play"
command or the soundfile editor sweep):
     play  pvcout     or else:       sweep  pvcout
Resume  compilation by typing [4m%[24m or [4mfg[24m. To kill the job, type
[4m^c[24m after resumption.  Be sure either to  resume  compilation
of  the  PVC job or else to kill it; do not leave it hanging
in RAM.

Many of the parameter values in the [4mPVC[24m programs can be con-
trolled  by  means  of  time varying function tables created
with [4mCmusic[24m [4mgen[24m [4mroutines[24m that are bundled with the PVC  dis-
tribution.  These  [4mCmusic[24m  [4mgen[24m  [4mroutines[24m are similar in many
respects to [4mCsound[24m [4mgen[24m [4mroutines[24m, but there are  some  impor-
tant  differences  as  well, as discussed and illustrated at
length within the ECMC version of the  HTML  [4mPVC[24m  documenta-
tion.    Additional   information  on  these  [4mgen[24m  [4mroutines[24m,
excerpted from F. Richard Moore’s text [4mElements[24m [4mof[24m  [4mComputer[0m
[4mMusic[24m,  first edition, is included as an appendix within the
hardcopy [4mECMC[24m [4mPVC[24m [4mExamples[24m binder.  - - - - - - - - - - -

For advanced and adventurous ECMC users: If you want to  try
to  use  a program, such as [4mringfilter[24m, for which I have not
created an ECMC [4m.tp[24m  script,  you  can  find  Paul  Koonce’s
[4mS.program_name[24m scripts in the directory
              [4m/usr/local/turnkey/pvc/SCRIPTS[24m.
However,  these  scripts  will  not work out-of-the-box, and
will require some tinkering before they will do anything.

A.S.   Last revision Dec. 1, 2003
