POWERpv - A Collection of Spectral Sound Processors

POWERpv - A Collection of Spectral Sound Processors

POWERpv is a set of command-line, non-realtime programs for altering sound in the spectral domain. If you are familiar with the Max/MSP externals collection FFTease , POWERpv is one of its precursors, PVNation being the other one.

Given that FFTease operates in real-time, why would you ever want to use a non-realtime member of POWERpv? From one point of view the non-realtime aspect is a plus, since in POWERpv you need not worry if your computer is fast enough to run the program. Every computer is fast enough. If you are handy with scripting, say in Perl, Python or TCL, you can easily automate sequences of processing that even the fastest consumer computers of today cannot handle in realtime. Beyond that, it is a matter of personal preference. Non-realtime processing is simply a different way of working which might lead to different results than realtime work in Max/MSP, Pd, or Reactor.

Using POWERpv

POWERpv programs are run from the Unix commandline in a Terminal window. As a general rule, the programs do not directly access soundfiles, but rather process a monophonic stream of floating point samples sent over Unix pipes. In order to get at these samples, we use some basic utilities to read from and write to soundfiles. These utilites are included in the POWERpv distribution. To simply copy a monophonic 16 bit/44.1KHz soundfile we would write:

$ fromsf mysound.aif | tosf -c1 -R44100 mycopiedsound.aif

Since the default sampling rate of tosf is 44100, we could write this even more simply as:

$ fromsf mysound.aif | tosf -c1 mycopiedsound.aif

As you can see, parameters are passed to these programs using flags, that is, a minus symbol followed by a letter, directly followed by a piece of data. This mechanism is also used to pass parameters to POWERpv programs. Below is an example of how to use pv, one of the most basic POWERpv programs.

$ fromsf mysound.aif | pv -a2 | tosf -c1 my_longer_sound.aif

The "a" flag is a time-alteration factor. Values greater than 1.0 stretch the sound, and values less than 1.0 shrink the sound. The result is that my_longer_sound.aif is about twice as long as mysound.aif, with the same pitch contents.

Installing POWERpv

POWERpv comes with pre-compiled binaries for Mac OS X, and Linux. These binaries are statically compiled and do not require any other libraries to run; simply move them to where you ordinarily keep your binaries, such as /usr/local/bin. If you are on another platform, you will need to compile the binaries from the included source. It's pretty easy to figure out how to do this, so I will defer documentation on the compilation process for now. (If you are able to build and test POWERpv on Windows, please get in touch, because I would like to post binaries for that system as well.)

Basic Parameters for POWERpv
Documentation for individual POWERpv programs

POWERpv1.57 may be downloaded here [1.7 MBytes].