Computer systems designed for music synthesis usually encapsulate signal-processing algorithms as macros or functions, and thus provide a modular interface which facilitates the development of complex structures. This is the thinking behind Mathews’ original concept of the ‘‘unit generator’’ (Mathews 1969) and most subsequent software synthesis languages use this approach. While it has proven to be an effective method it has not generally provided a means by which the users of these systems, often more musically prepared than wise in the ways of digital signal processing, can gain an intuitive understanding of the mechanisms used to modify and create digital signals. Indeed, there is little conceptual difference between patching a signal through a bank of two-pole resonating filters/unit generators and tweaking the sliders on a graphic equalizer. EIN is an attempt to provide an interface in which the user has direct control over every add, multiply and store applied to each sample, and can gain a more direct understanding of the machinery of digital signal processing. While its main use has been instructional, it also provides a way to experiment with digital filters and design more complex instruments and algorithms. It is, in effect, a kind of low-level circuit design kit for signal processing. EIN Syntax EIN provides the routine machinery for calling the user’s code, executing it, writing the resulting output sound samples to a file, playing the file, and displaying and analyzing it in the time and frequency domains. The user provides a script in a language that is a superset of C. The EIN system then compiles it and provides a wrapper that calls the script for each time sample from t = 0 up to the specifiednumber of samples, nsamps; computes the next output sample y (for the mono case), or the variables left and right (for the stereo case); and writes the output samples to an output sound file,formated for the sampling rate of sr samples/sec. The int variables t and nsamps, and the float variables y, left, right, and sr, are reserved by EIN, and should not be used for other purposes. The mono/stereo option, and the values of sr and nsamps are selected with radio buttons on the interface. The remaining reserved names are described in Appendix 3. As an example, here is a one-line EIN script that produces a sine wave at 440 Hz: