Skip to main content
Aiff Dsp Framework 21 C

Aiff Dsp Framework 21 C

Development · info-mac
Filenameaiff-dsp-framework-21-c.hqx
Size35.9 KB (36723 bytes)
Downloads1
Download aiff-dsp-framework-21-c.hqx Up to 5 concurrent downloads per IP. No speed limit.
About
AIFF_DSP: An Audio IFF File DSP Programmer's Framework in Portable C available via ftp at "ftp.cs.jhu.edu" in pub/dsp Note for users of previous versions of AIFF_DSP: The only change in this version is that unlike v21, it includes the correct version of interface.c, which was correct in v20 but not in v21. This old version of interface.c did not compiler under newer versions of Think C. Introduction This archive contains code which provides a framework in which user-written C functions which process the data in Audio IFF (AIFF) files are called. The framework contains main() and deals with all aspects of AIFF file handling, allowing the user to concentrate solely on the development of his/her DSP algorithm. For those readers who are familiar with Tom Erbe's "SoundHack" program for the Macintosh, this framework is similar to that program except for the fact that source is available and portable and you can add your own processing functions in a very modular, simple way. Theory of Operation The framework calls three user-written functions in the course of its execution. First it calls a user-written initialization function, which would typically do things like set up lookup tables. Then it repeatedly calls a user-written processing function, each time placing a new block of data in the buffer. When the AIFF file has been exhausted of data, it calls a user-written termination function, which would typically do things like free memory which had been malloc()'ed for a lookup table. Though the framework was originally designed for the processing of AIFF files where an AIFF file is taken as input and an AIFF file is made as output, through the setting of user-defined variables, the framework can be made to take no input or make no output. The mode in which no input is taken is useful for tasks such as the generation of AIFF files by algorithmic means. The "no output" mode is mode is useful for tasks such as the analysis of AIFF files, where the analysis output goes to the screen or to a non-AIFF file. The three user functions and the the two user variables above are typically defined in their own .c file. This file contains a global structure which contains the two variables and pointers to the three functions. This quintuplet defines what I call a "plugin." The only contact with framework code that needs to occur is to "register" a plugin. This consists of adding the name of the plugin to lists of other plugins in "plugin_specific.c". All of these plugins are available at runtime and one is chosen by the end user.
Notes

This file was archived from info-mac / funet and is provided for historical preservation. Most files are in BinHex (.hqx) or StuffIt (.sit/.sea/.cpt) format; you will need The Unarchiver or a classic Mac emulator to open them.