Last updated Tue Aug 12 11:25:26 2008.
All content © 2006-2008 Christopher Ariza. All Rights Reserved.
Last updated Tue Aug 12 11:25:26 2008.
All content © 2006-2008 Christopher Ariza. All Rights Reserved.


This site provides a collection of free, online, web-based tools for music composition and sound design. Each tool is presented in a single window. The user must configure the tool's settings to specify that at least one musical event is created. Tool interface components use standard HTML interface components. Instructions for each tool are provided with the respective page.
After configuring the interface, the user must generate musical output. By pushing the Submit button, the tool processes the user settings and returns to the user (via immediate download) the resulting musical output. This output is a standard MIDI file that may be played or viewed with a wide range of MIDI-playback plugins or applications. These MIDI files may also be imported into sequencing or notation software for integration into larger musical structures.
For complete documentation of envl.net, see Composing Musical Structures within a Web-Browser: A Guide to envl.net (web) (pdf).

As numerous interface components are often presented on a single page, web browsers that expand the contents of drop-down menus are helpful. The Mozilla Firefox browser, or similar, is recommended, though all web-browsers will provide basic functionality.
Generated musical files can be auditioned with a wide range of applications. MIDI files may be played back in a variety of media players, such as Quicktime or Windows Media Player. High-quality MIDI devices (synthesizers or samplers) will offer superior sonic realizations. athenaCL XML files are provided such that complete generative specifications may be imported into athenaCL for further editing or modification.

This tool allows the creation of non-linear events based on a event density, with pitches derived from a user-defined harmonic sequence. This tool is divided into Part A and Sections B through I. A sequence of rhythms, a rhythm selector, a BPM tempo, and a GM MIDI instrument are determined in Part A. Beta distribution event density, also determined in Part A, is configured by setting the number of events and alpha and beta parameter values. Sections B through I configure a sequence of harmonies that are mapped over the output duration. Each Section can specify a unique chord, transposition, and proportional duration weighting.

This tool facilitates the creation of harmonic sequences using collections of chords with independent rhythms and bass voices. The tool interface permits the configuration of Sections A through E. Each Section, if active, is performed in order, and can consist of a defined chord, chord rotation, bass voice pitch, transposition, octave shift, and eight algorithmically selected pulse-triples. The BPM tempo, chord GM MIDI instrument, and bass GM MIDI instrument are shared for all sections.

This tool facilitates the algorithmic generation of harmonic sequences using a collection of rhythms and chords. The interface permits the creation of Part A, a harmonic sequence that is based on chords defined in Sections B through I. Part A may consist of up to sixteen rhythms generated with algorithmic selectors. Sections B through I, if active, define a chord, chord rotation, octave spacing, and multiplier. The Section multiplier increases the number of instances available for selection of the defined chord. Part A selects chords defined in Sections B through I using the chord algorithmic selector.

This tool allows the flexible creation of polyrhythms using independent and diverse rhythmic cycles. The tool interface permits the creation Parts A through H. Each Part can consist of up to sixteen equal-valued articulations of diverse dynamics. The configured sequence of each Part, with an independent length, BPM tempo, and instrument, is looped over the total duration.

This tool allows the flexible creation of polyrhythms using independent and diverse rhythmic generators. The tool interface permits the creation Parts A through H. Each Part can consist of up to thirty-two equal-valued articulations of diverse dynamics. The configured sequence of each Part, with an independent length, BPM tempo, and GM MIDI instrument, is generated with algorithmic selectors over the total duration.

This tool allows the creation of polyrhythms using a variety of rhythmic durations and algorithmic generators. The tool interface permits the creation Parts A through E. Each Part can consist of up to sixteen freely-defined pulse-triples. The configured sequence of each Part, with an independent length, BPM tempo, and instrument, is generated with algorithmic selectors over the total duration.

This tool allows the creation of polyrhythms using weighted randomness. The tool interface permits the creation of Parts A through E. Each Part may consist of up to eight rhythms. Rhythms are selected at random based on their weight, where larger weights are more likely to be selected. Each Part has an independent BPM tempo, GM MIDI instrument, and (if applicable) pitch.

This tool facilitates the creation of independent rhythm sequences generated with Xenakis sieves. The tool interface permits the creation Parts A through E. Each Part can consist of a sieve sequence defined by a length, articulation type, and a single pulse-triple. The sieve can consist of four residual classes. The sieve sequence of each Part, with an independent algorithmic selector, BPM tempo, and GM MIDI instrument, is generated with algorithmic selectors over the total duration.

This tool facilitates the creation of generative musical canons. The interface permits the creation of Part A, a musical line that as used as the source material for canonic treatment. Part A may consist of up to sixteen pitches and rhythms. Rhythms and pitches are independently generated based on algorithmic selectors. The pitch sequence can be octave shifted and generated either once or many times. Parts B through I can be used to create canonic transformations, where each part is a new transformation. Parts B through I can have an independent transposition, octave shift, rhythm shift, and rhythm scale. All parts share the same BPM tempo and GM MIDI instrument.

This tool allows the algorithmic generation of polyphonic and polyrhythmic musical lines. The tool interface permits the creation of Parts A through E. Each Part may consist of up to sixteen pitches and rhythms. Rhythms and pitches are independently generated based on the algorithmic selectors. Pitch sequences can be octave shifted and generated either once or many times. Each Part has an independent BPM tempo and GM MIDI instrument.

This tool allows the creation of melodic lines with independent pitches and rhythms selected with weighted randomness. The tool interface permits the creation of Parts A through E. Each Part may consist of up to eight pitches and rhythms. Rhythms and pitches are independently selected at random based on their weight, where larger weights are more likely to be selected. Each Part has an independent BPM tempo and GM MIDI instrument.

This interface component allows the user to select an accent value in a sequence of pulses or within a pulse triple. Accent values are notated as dynamic markings (loudness measures): the range (pp, p, mp, mf, f, ff), from soft to loud, is provided. An off symbol (o) designates a rest (measured silence). An on symbol (+) designates a maximum value.

This interface component allows the user to provide a beat-per-minute (BPM) value for a tempo. BPM values from 0.01 to 999 are permitted.

This interface component allows the user to select and configure a chord. The chord root pitch, the chord form (pitch class set), and chord rotation (inversion) can be selected. Chord root is selected within the pitch range from C0 to G8. Chord form is given with pitch class set vales (where integers refer to half-step positions from the selected root) and common chord names; all common chords consisting of one, two, three, and four pitches are available. Chord rotation changes the order of pitches in the chord; positive or negative values determine which pitch becomes the new lowest pitch.

This interface component allows the user to select the density of the musical passage in terms of the total number of events that are generated. Additionally, the user can configure the alpha and beta parameters of the beta distribution. Small alpha values increase the probability of events occurring at beginning boundaries; small beta values increase the probability of events occurring at the ending boundaries.

This interface component allows the user to select an octave shift (transposition) value. Octave shift values are provided in octaves (12 half steps), ranging from negative four octaves (48 half steps) to positive four octaves (48 half steps).

This interface component allows the user to select an octave spacing value. Octave spacing values transpose each pitch of a chord by a multiple of the octave spacing value. Octave spacing values are provided in octaves (12 half steps).

This interface component allows the user to turn the selected musical part or component on or off. An off symbol (o) or an on symbol (+) can be selected.

This interface component allows the user to select the duration, in seconds, of the final musical output. Duration values are provided in ten-second intervals, form 20 seconds to 100 seconds.

This interface component allows the user to select the type of output created by envl.net. Music output is provided after correctly configuring the tool interface and pressing the Select button. The MIDI option returns a standard MIDI file, suitable for immediate playback within a media player or importing into an alternative software system. The XML option produces an XML file suitable for loading the configured musical system into athenaCL.

This interface component allows the user to select a single pitch. Middle C is represented as C4. Pitch values range from C0 to G8.

This interface component allows the user to select the three values necessary to configure a pulse triple. A pulse triple consists of a divisor (division of the BPM-specified tempo), a multiplier (scalar of the divided pulse), and an accent. Accent values are notated as dynamic markings (loudness measures): the range (pp, p, mp, mf, f, ff), from soft to loud, is provided. An off symbol (o) designates a rest (measured silence). An on symbol (+) designates a maximum value. For example, a pulse triple configured as (4,1,mf) specifies a medium dynamic pulse that lasts one quarter of the BPM-specified pulse (a sixteenth note). A pulse triple configured as (2,3,pp) specifies a quiet dynamic pulse that lasts one and a half of the BPM-specified pulse (a dotted quarter note). A pulse triple configured as (3,1,o) specifies a silent (rest) dynamic pulse that lasts one third the BPM-specified pulse (a triplet).

This interface component allows the user to select an algorithmic selector. Sequences can employ different algorithmic selectors. Algorithmic selectors may choose values from the specified sequence length based on the specified procedure. Procedures include orderedCyclic (in-sequence loops), orderedOscillate (in sequence back and forth loops), randomChoice (equal-distribution random selection), randomPermutate (random re-orderings of the entire sequence), and randomWalk (random movements in single steps up or down the sequence lengths).

This interface component allows the user to configure a Xenakis sieve that consists of no more than four residual classes. Xenakis sieves are designed with residual classes (a modulus at a shift value, M@S) combined with logical operators (and "&" or or "|"). For complete information on Xenakis sieves see Ariza (2005).

This interface component allows the user to select a transposition value. Transposition values are provided in half-steps, ranging from negative eleven to positive eleven half-steps.

This interface component allows the user to select a weight to be applied in the selection of rhythms or pitches. Weights determine a proportional amount of selection preference; proportions are calculated based on the sum of all weights. Weighted random selection is based on a zeroth-order Markov chain process; see Ariza (2006).
