This program, new for the Windows version of SNDAN, combines the function of two original SNDAN programs, fcheck and harmformat. In the original system, these programs are run via a unix shell script, which queries the user interactively for parameters, and then launches the programs in the background. The Windows Console cannot provide this level of interactivity, and the shell script has been used as the basis for a new program, offering a one-command method for converting .mq files. The original programs are available for expert users (they offer rarely needed but sometimes useful extra parameters), but are not newly documented for this version. The program fcheck creates a binary file with the extension .ff; this has become a temporary file used internally by mqtoan. There is no other use for the .ff file; it is not human-readable, and no other programs except harmformat use it.
The two programs reflect the twin tasks required to make the conversion. Recalling that the .mq file contains a possibly large and variable number of partial tracks, each with an arbitrary frequency profile, the fcheck stage analyses the whole file to create a set of running estimates for the possibly time-varying fundamental frequencies through the file. This will be used by the harmformat stage, together with an analysis fundamental frequency fa set by the user, to create the .an format frames of harmonics, based on fa. The process is not infallible (see Getting Started: Session 2), and it is as well to have good idea of the fundamental frequency bounds of the infile before running this program, as guesswork is unlikely to lead to optimal results. This can be done using the display program mqplot.
Where the source sound is irregular, it can be difficult to find parameter
values for a good conversion. Note that is is possible to combine several
programs in a batch file (see Using the Windows
Console); for example, by running mqtoan, addsyn
and a command line soundfile play program (such as "playsfx" in the CDP
Multi-Channel Toolkit) within a batch file, changes in parameters can be
evaluated very rapidly.
mqtoan mqfile anfile frmin frmax thresh hai fa nhar[Top]
the input analysis file in .mq format
the output filename; must have the .an extension
the expected mimimum fundamental frequency in infile (Hz)
the expected maximum fundamental frequency in infile (Hz)
If you do not already know the fundamental pitch range of the infile, you can use mqplot to display all partial tracks plotted against frequency. frmin should be easy enough, and if the original sound is strongly pitched, the upper frequency limit should be clearly visible too. For less coherent sounds, experimentation will be needed to find the best settings. The plain addsyn program can be used for rapid checks; use a low nhar vaue to make these repeated tests as fast as possible.
amplitude threshold for the retention of partial tracks (dB)
Used during the fundamental tracking stage of conversion.
The original documentation suggests a range between -20 and 10, which correspond to absolute amplitudes between 0.1 and 3.16 (relative to a 16bit maximum of 32767). This is very low indeed (remembering that SNDAN represents loudness in Decibels increasing from zero); a value of 20 ( corresponding to a 'normalized' level of -76dB) would still remove all but the quietest peaks and residual noise, which may be artefacts of the analysis rather than authentic spectral components.
The value for this parameter should generally reflect the corresponding parameter given to mqan when the analysis file was created.
'Harmonic acceptance interval': used during the harmonic generation stage. It sets the pitch interval range within which partial tracks are accepted as harmonic. Outside the given range they are excluded.
The allowed range is between 0.01 and 0.1. For typical single-tone sources known to be strongly pitched and harmonic, the value should be fairly low - a value of 0.03 is recommended.
The fundamental analysis frequency for the outfile. This value has much the same significance as the corresponding parameter in pvan. It is used to determine the maximum number of harmonics in the outfile, and determines several other important analysis parameters written into the header. It is in turn the basis of many of the displays and transformations in monan. It should generally be equal to or close to frmin.
The number of harmonics to retain. While fa determines the maximum number of harmonics (which will be a large number if fa is low), nhar determines the number of these to retain. Unless there is a great deal of high-frequency spectral energy in the sound, a value around 100 or even less will suit most needs. A low value can be used while other parameter values are being tested, to save processing time. Higher values will of course increase processing time significantly, especially for resynthesis.