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 (version 2.0 is currently available for Macintosh OS 10.5 and above, and Linux Intel).  All versions, run in the UNIX command-line style (at a command-line shell prompt).  nGen was designed and written by composer Mikel Kuehn and 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) and Leland Smith's Score program.

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.  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), numeric macros and expressions, and also allows for many varieties of data conversion and special output formatting. nGen is command-line based 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