Overview

nGen is a free multi-platform generation tool for creating Csound event-lists (score files) and standard MIDI files.  It is written in C and runs on a variety of platforms (versions are currently available for DOS [Win32], Macintosh OS 8.5-9.1, Macintosh OS X, IRIX [pre and post 6.2], and Linux Intel).  All versions, except the Mac OS 8.5-9.1 version, run in the UNIX command-line style (at a command-line shell prompt).  (The Macintosh OS 8.5-9.1 version uses a GUI interface written by composer Michael Thompson.)  nGen was designed and written by composer Mikel Kuehn. It was inspired in part by the basic syntax of Aleck Brinkman's Score11 note list preprocessor (Score11 is available for Linux Intel from the Eastman Computer Music Center).

Why Use nGen?
nGen will allow you to do several things with ease that are either difficult or not possible using Csound and/or MIDI sequencing programs; nGen is a powerful front-end for creating Csound score-files and basic standard MIDI files. Some of the basic strengths of nGen are:

Additionally, nGen supplies a host of conversion routines that allow p-field data to be converted to different formats in the resulting Csound score file (e.g., octave.pitch-class can be formatted to Hz values, etc.). A variety of formatting routines are also supplied (such as the ability to output floating-point numbers with a certain precision width).

Abstract

Csound and the Music N Languages are widely used; however, while their text-based score input syntax is a powerful tool, especially for home-grown note-list generation programs, these score-files can also be quite cumbersome, especially for techniques such as event-based granular synthesis and traditional note-name and rhythm input.  Similar to Aleck Brinkman's SCORE11 and Andre Bartetzki's CMASK, nGen is a portable text-based application.  It runs on most platforms (Windows, Mac, Linux, Irix, UNIX, etc.) and allows for macro- and micro-level generation of event-list data by providing many dynamic functions for dealing with statistical generation (such as interpolation between values over the course of many events, varieties of pseudo-random data generation, p-field extraction and filtering, 1/f data, the use of "sets" of values, etc.) as well as special modes of input (such as note-name/octave-number, reciprocal duration code, etc.).  Its memory allocation is dynamic, making it useful for macro-level control over huge score-files.  In addition, nGen contains a flexible text-based macro pre-processor identical to that found in recent versions of Csound and also allows for many varieties of data conversion and special output formatting. nGen is command-line based (a GUI by Michael Thompson, exists for Mac versions of OS 8.5 to 9.1) and accepts an ASCII formatted text-file which is expanded into a Csound score-file or a standard MIDI file.  It is easy to use and is extremely flexible making it suitable for use by those not experienced with high-level computer programming languages.

References

Acknowledgments