basicly remove all vu output and added ramp.c to make some esdmixing -- old README -- vu version 1.4 vu is a command line filter for audio sample data. It reads samples from standard input, copies the data to standard output, and spits out useful time and amplitude information to the standard error. example: record | vu > mysound.wav vu understands .WAV files, and will adjust itself to the header information, copying the header to its output. There are various flags for describing raw or other types of sound files to vu so that it can respond to them properly. They are: -b Specify the sample width in bits. Must be 8 or 16. Default 16 -c Specify the number of channels in the data. Must be 1 or 2. Default 1 -s The sample rate of the sound. Must be an integer. Default 44100. And the other recognized flags are: -d The rate at which vu will output its display information. The default is twice per second. -i [0l1r]* Inverts sample data. If no channels are specified, then channel 0 is inverted. Otherwise the specified channels are toggled for inversion each time the corresponding arguments are encountered. A '0' or 'l' specifies the first channel, while a '1' or 'r' specifies the second. So, for example: '-i lr0' will leave the first channel unchanged (inverted twice) while the second channel will be inverted. -g: This is the "spy" option. You figure out why. No samples pass until the percent field reaches at which time all samples will pass until seconds have passed. The timer is reset each time is hit in the amplitude, so that the entire sample would pass through so long as the is hit at least every seconds. Otherwise, there will be gaps in the output and display. Display time skips over blank spots and so reveals the original time in the input rather than actual time elapsed in the output. Does all of that make sense? just go: record | vu -g40:10 > what_my_wife_does_while_I_work.wav But that would be wrong. -m Change the scale of the output graph so that the sample seems times larger than it would otherwise. The numeric fields are not affected. must be a positive integer. If there is a header on the soundfile that is something other than WAV, then vu will copy it to standard out, preserving the file, but would probably misrepresent the initial amplitudes of the file, as it would attempt to interpret the header as sample data. Here is a sample of vu's standard error output: WAVE file: 16 bits per sample, Stereo OOOOOOOOOOO | | | | | | | < T:0.5 23% 1857 OOOOOOOOOOOOOOO | | | | | | < T:1 30% 2954 OOOOOOOO | | | | | | | | < T:1.5 17% 992 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO | | < T:2 72% 17047 OOOOOOOOOOOOOOOOOOOOOOOOO | | | | < T:2.5 50% 8472 OOOOOOO | | | | | | | | < T:3 15% 832 OOOOOOOOOOOOOOOOOOOOOOOOOOO | | | | < T:3.5 54% 9754 OOOOOOOOOOOOOOOOOOOOOOO | | | | | < T:4 46% 6936 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO | | < T:4.5 77% 19685 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO | | < T:5 72% 17383 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO T:5.5 ***** CLIP ***** OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO T:6 ***** CLIP ***** OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| < T:6.5 89% 26308 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | < T:7 79% 20661 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO| | | < T:7.5 68% 15212 OOOOOOOOOOOOOOOOOOOOOOOOOOOO | | | | < T:8 56% 10614 OOOOOOOOOOOOOOOOOOOOOOOO| | | | | < T:8.5 48% 7672 OOOOOOOOOOOOOOOOOOOOO | | | | | < T:9 42% 6018 OOOOOOOOOOOOOOOOOO | | | | | | < T:9.5 36% 4431 OOOOOOOOOOOOOOOO | | | | | | < T:10 33% 3672 OOOOOOOOOOOOOO| | | | | | | < T:10.5 28% 2714 There are four sections for each output line. All of the sections are displayed by default, but each one may be toggled on or off by issuing its corresponding flag on the command line: (-B) Bar graph of amplitude This graph really represents the relative values of the square root of the raw amplitude. This gives a display that seems to correspond more closely to how I perceive the loudness of the sounds. (-T) Time elapsed (-P) Percent of maximum amplitude. This is just a numeric version of the information found in the bar graph. (-R) Raw sample value. This is simply an indication of the actual sample data's maximum value. Max will be 32767 for 16 bit sounds, and 127 for 8 bit sounds. Each display line gives information about the absolute largest sample value during that time span, from any channel. vu can't split channels, nor does it do any fancy averaging or RMS calculations or anything like that. I just use it to find out whether my sound is clipping while I am recording. There are bugs, but you must show them to me. Toby Shepard toby@rcsreg.com