CDP MCTOOLS: These are commanline ('console') programs, which can be run on Windows9x, NT4 and Windows2000 systems. They can be copied to any convenient directory. If this is not your working directory, add the directory, if necessary, where you have put the programs, to your system PATH as given in AUTOEXEC.BAT. To get reasonable use out these play programs a multi-channel soundcard is required - i.e one that provides a 'device' which can accept a single file up to the number of channels the card supports. To enable some experimentation even without such a card, PLAYSFX and PLAY24X can mix a quad file down to stereo. Run each program without arguments to get a usage message. The programs are not complicated, and only have a few options. These programs enable some experimentation with the new Microsoft WAVEFORMATEXTENSIBLE (WAVE-EX) format. Specifically, the program COPYSFX will convert between a 'standard' multi-channel file and a WAVE-EX file, and PLAYSFX, PLAY24X and PAPLAY will play them. PLAYSFX and PLAY24X will also decode an Ambisonic B-Format file in WAVE-EX format. All programs read and write the new PEAK chunk, and in many cases this information is displayed on the console. All programs except PAPLAY can recognize a Windows 'shortcut' to a soundfile, so long as it is in the form "soundfile.wav.lnk" - i.e the WAV or AIF extension is there. All programs support the following sample formats: 16bit int 32bit int 32bit Float (WAVE - 'type-3', AIF: AIFF-C format) 20bit in 24bit 24bit ('packed') 24bit in 32 (except AIFF) The following file extensions are recognised: .wav, .aif, .afc, .aifc (the last is recognised by Windows2000). The output format is determined by the extension. Note that there are some restrictions, as there is no 'multi-cahnnel' form of AIFF yet. However, it looks as though the new speaker position API defined in Mac OS X CoreAUdio can be used to form an AIFF m/c file - watch this space! Format conversion is now confined to COPYSFX THE PROGRAMS: PLAYSFX: plays m/c WAVE,WAVE-EX and AIF files. Decodes WAVE-EX B-Format files (Horizontal only), into four channels. The usage message lists all available playback devices. * uses the Windows MME API, writing 16bit stream using WAVEFORMATEX. This program is retained for legacy applications (e.g. Windows 95/98). A few soundcards supported proper mult-channel interleaved streams using MME. WARNING: some soundcard drivers lie! NEW Revisions May 2004: corrected bugs rendering final block, and red=ndering very short soundfiles. PLAY24X: New version of playsfx for Windows2000/XP. Uses Windows MME API, writing 24bit stream via WAVEFORMATEXTENSIBLE. New flags: -c allow any key to stop playback. This is added in case it is useful for driving plays24x from a scripting language. NOTE: -z flag defined differently from playsfx: defines buffer szie per channel in SAMPLES rather than in raw bytes. PAPLAY: A basic play program using DirectSound, based on the Portaudio Library (v18) modified to write WAVEFORMATEXTENSIBLE. Some soundcard drivers (e.g. SB Audigy) do not render m/c files correctly under MME, but will do so using DirectSound. Paplay supports looping and an arbitrary start time. For information on Portaudio, see http://www.portaudio.com I plan to make the sources for this available, once cross-platform and other issues are finalized. THE TOOLKIT PROGRAMS (rebuilt using Visual C++ v6.0) INTERLX: interleave mono or stereo files into a 'standard' m/c file. The 'workhorse' program for making multi-channel files. Updated to ignore speaker positions in inout files; added -x flag to write generic WAVE_EX format. CHANNELX: extract all or selected channels of a m/c file to separate mono files. Revised August 1999: base filename requires file extension. NMIX: Mix two m/c files together, with optional offset for the second file. ABFPAN: pans a sound Ambisonically in a circle round the listener, between given start and end positions. Multiple rotations are possible. Output is either a standard (decoded) quad soundfile, or Horizontal B-Format (standard WAVE file). The latter can be converted to the new WAVE-EX format by COPYSFX. NEW revisions May 2004: -x flag: write output in WAVEFORMATEXTENSIBLE format (Rectangular Quad layout) -b flab: wrtie output as encoded b-format (do not decode). Note that use of both -x and -b will write a file in the custom B-format WAVE_EX file format. PLAYSFX and PLAY24X will read and decode this format. COPYSFX copy to/from different formats: eg Standard to WAVE-EX. A number of typical WAVE-EX configurations is supported - see the usage message. The new WAVE-EX B-Format is supported. Conversion to/from several sample formats is also supported. The PEAK chunk is supported for all formats, with an option to force rescanning. SFPROPS display soundfile properties to console. This displays the PEAK chunk, if present, and the speaker positions in a WAVE_EX file, in addition to the usual information (duration, number of sample frames, sample rate, etc). ABFDCODE simple horizonal decoding (as used in PLAYSFX) of a WAVE-EX B-Format or plain 4-channel soundfile (presumed to contain B-format signals!) to a new soundfile. NEW revisions May 2004: -x flag: write output in WAVEFORMATEXTENSIBLE format (Rectangular Quad layout) Richard Dobson CDP 1999,2000,2001,2004. Last Updated: 5th May 2004