Command line utilities for generating test signals, processing, and an 2013-03-25 18:14:51 The attached package is a collection of simple command line utilities. These can be freely used for any purpose, and the source code is also included (although it is not very well commented). However, they are not really user friendly, and for some of the analysis utilities, it is important to understand how they work to be able to use them with reliable results. The programs included are:Signal generator:testgen - generates various test tones (sine sweeps, colored noise, maximum length sequences, jitter test, and some simple waveforms) using a text file as input, which describes the set of signals to be generated and their parameters. It can only write stereo WAV format files with 8, 16, 24, or 32 bit PCM samples.Processing:convolve - convolves an audio file with another one. Both the input and the impulse response files can have multiple channels, which may also be different in the two files (the allowed combinations are 1*N, N*1, N*N, and N*N^2 channels - in the last case, the impulse response contains a full channel matrix). There are a number of built-in filters, including lowpass, highpass, bandpass, band-reject, and "comb" versions of the latter two, as well as maximum length sequences. Furthermore, the impulse response can be processed by making it inverse, minimum phase, or linear phase.resample - yet another sample rate converter. It can resample by any fractional ratio, and has options for setting the delay (which can be a fractional number of samples) and gain, as well as several parameters for controlling the quality and filtering. It is capable of fairly good accuracy, and - with "simple" resample ratios - is reasonably fast as well.Analysis:sinetest - measures the frequency, amplitude, and phase of a sine wave using a large FFT with a Gaussian window. It can be used with the resample utility to correct the pitch, level, and delay of a loopback recording, which includes test tone(s) for this purposefft - creates an FFT (magnitude vs. frequency) plot from one or more audio input files, and writes it as a BMP format image file. It has several options, and supports large FFT sizes. It can also be used to visualize the output of some other utilities.csd - creates a 3D spectrogram (in BMP format) from a single audio input file. It is mostly useful for visualizing the impulse response of a headphone or speakernoise - measures and prints signal and noise levels in a test tone using a large windowed FFT. It supports multiple signal frequencies (e.g. for IMD+noise tests), A and R 468 weighting, and - with the signal level at 0 dBFS specified - absolute levels in Vrms and dBu.groupdel - analyzes the phase response, phase delay, or group delay of an impulse response input. The output can be visualized with 'fft'.thd_test - using a long sine sweep (exponentially increasing frequency or amplitude), it analyzes frequency response, THD vs.frequency, linearity (level error vs. input level), and THD vs. level. The output can be visualized with 'fft'.