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:
- Event-based granular textures can be generated quickly.
- Huge streams of values can be generated with specific random-number
distributions (e.g., Gaussian, flat, beta, exponential, etc.).
- Note-names and rhythms can be entered in intuitive formats (e.g.,
pitches: C4, Df3; rhythms: 4, 8, 16, 32).
- "Chords" can be specified as a single unit (e.g., C4:Df:E:Fs).
- Textual and numeric macros are available.
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
-
Boulanger, Richard Charles, ed.. The Csound Book: Perspectives in
Software Synthesis, Sound Design, Signal Processing, and
Programming. Cambridge, MA: MIT Press, 2000. ISBN: 0262522616
(includes 2 CD-ROMS)
-
Brinkman, Alexander R. "Data structures for a Note-List Preprocessor."
Computers in Music Research 1, no. 1, 1989: 75-101.
-
Brinkman, Alexander R. PASCAL Programming for Music Research.
Chicago UP, 1990. ISBN: 0-226-07508-7
-
Dodge, Charles and Thomas A. Jerse. Computer Music: Synthesis,
Composition, and Performance. Wadsworth Pub. Co, 1997. ISBN:
0028646827
-
Roads, Curtis. The Computer Music Tutorial. Cambridge, MA:
MIT Press, 1996. ISBN: 0262680823
-
Smith, Leland. "SCORE - A Musician's Approach to Computer Music."
Journal of the Audio Engineering Society 20, 1972:
7-14.
-
Xenakis, Iannis. Formalized Music, Revised Ed. Stuyvesant,
NY: Pendragon Press, 1992. ISBN: 0-19-321337-0
Acknowledgments
-
I would like to thank the following individuals for their support and
suggestions: Dr. Richard Boulanger, Michael Thompson (who designed,
and implemented the MacIntosh GUI available in version 1.0), and Maarja
Vigorito. Ben Hackbarth had many great user-end suggestions for
version 2.0.
-
The development of this application was sponsored in part by funds
from the MidAmerican Center for Contemporary Music at the Bowling
Green State University, College of Musical Arts.