Huge Collections of Software Manuals and Knowledgebase

GreatManuals.com
Huge Collections of Software Manuals and Knowledgebase

 
Home Contact Us Request to publish your help manuals Request to remove your help manuals
Introduction
» ArtSong
» System Requirement
» What's New
» Upgrading Projects
ArtSong Basics
» Overview
» ArtSong Workspace
» Project Editors
» Control Mechanisms
» How To...
Tutorials
» First ArtSong MIDI
» Orchestration and Performance
» Beginning ArtSong Projects
» Using Component Events
Advanced Topics
» Rhythm and Meter
» Harmony
» Melody and Counterpoint
» Harmonizing Melody
» Accompaniment Patterns
» Arranging
Scripting
» ArtSong Scripting
» Basic Syntax
» Pascal Syntax
» Complex Numbers
» Music Objects Model
» Script Functions
» Script Objects
Scripting Tutorials
» Getting Started with Scripts
» Scripts as Algorithm
» Using Scripts with Composition Engine
» Graphic User Interfaces
ArtSong References
» Glossary
» Algorithms
» Components
» Devices
» Editors
Support Information
» Refer
» Contact Us
 

Overview

ArtSong is a tool for algorithmically generating and organizing musical materials. Designed as a general-purpose algorithmic composition framework, ArtSong is ‘intended’ to be inherently devoid of any particular musical style; an electronic-procedural manuscript paper that you can apply to any specific composition problem. Your creativity, selection-of, and skill-using the various components, algorithms, composition-variables, control-events, etc., determine ArtSong’s musical output.

Although ‘anything’ can be composed in ArtSong, composing specific musical styles requires knowledge of the distinguishing characteristics of that particular musical style and the ability to implement those characteristics in ArtSong. Some pre-existing knowledge and understanding of musical terminology, materials, and common operations is highly recommended. The objective of this manual and reference materials is to help you realize that knowledge in ArtSong.

download free undelete data undelete data recovery for windows
data recovery free data recovery utilities freeware data recovery service
camera photo recovery data recovery ipod cell phone data recovery

Project Structure

ArtSong implements a procedural ‘building-block’ approach to algorithmic music composition. The myriad musical elements, materials, and operations of composition are organized into musical ‘Component' building blocks which you combine in different ways to assemble ArtSong composition Projects. Each project can represent a complete musical composition or a section of a larger composition.

Sometimes we distinguish between components that contain actual musical ‘score’ data from those components that are primarily procedural (composition-process oriented). We continue to refer to the former as components while the latter are algorithms. Components contain the physical data of the composition (notes, MIDI controller values, chords, scales, etc.) and algorithms provide the procedures and operations that ‘control’ how the physical data is generated during the algorithmic composition process.

Important components include:

A Composition component contains all the project’s other components and sets global default composition properties such as composition length, time and key signatures, etc.

All a composition’s note-events are contained in one or more Track components; an ArtSong Track corresponds to a single MIDI file (format 1) track and usually represents a single instrument part.

Track components provide composition-variables for the generation of various note property-values (pitch, duration, volume, etc) and contain the generated note-events.

The Tempo track contains the composition’s Tempo changes.

Algorithms do not contain ‘playable’ data and only operate during the algorithmic composition process. Changing algorithm settings will not affect existing or previously-generated data; it will only impact the data algorithmically generated after the settings are changed.

Some algorithm examples:

The Random algorithm provides mathematical functions for generating 8 different probability distributions which can be applied to any composition variable.

The ImageMapper and ChaosMapper algorithms use the trajectory of chaotic function attractors to generate a series of values which can be mapped to any composition variable.

The TextMapper algorithm converts ASCII characters in *.txt documents to sequences of composition-variable values.

The Envelope algorithm imposes a 4-stage envelope on the values of any composition variable.

The Control meta-algorithm can be used to change the local range and limit values for any composition variable.

With a few exceptions, such as one global composition component and one tempo track allowed per project, an ArtSong composition project may consist of an arbitrary number of components and algorithms.

Grouping and Hierarchical Ordering

ArtSong components implement a simple container-child relationship; some ArtSong components-algorithms are designed to contain other components. The component container-child relationships provides visual feedback on project structure, simplifies project setup, and establishes a basic control mechanism for localizing algorithmic effects.

All project components are contained in (or grouped by) the Composition Component container. Other component-algorithm containers also exist for grouping purposes; the term ‘Group’ is included in their name.

The vertical positions of child groups and child components within parent groups establishes a hierarchical ‘precedence order’. The composition engine processes components-algorithms in vertical top-down project order. Additionally all components in a particular group will be processed before the next sibling group or sibling component.

The earlier a component is processed during the composition cycle the greater it’s potential impact on the composition. Composition engine algorithm assignments and environment changes made while processing a group are rolled-back when the group is exited.

Rather than adding and setting-up a separate algorithm copy for each individual component, ‘grouping’ allows one copy of the algorithm to be added and shared by the composition variables of several components. Of course, you can still add separate, different algorithms to each composition variable of each component.

When generating composition-variable values or applying constraints the composition engine will start with the closest prior algorithm and work upwards-backwards until a value is obtained. For example, if three algorithms are assigned to modify note 'pitch'; the last algorithm assigned to pitch will be used by the next track to request a pitch value.

Configuring Components and Algorithms

ArtSong’s components and algorithms are usually configurable and employ three general mechanisms for composer-configuration:

  • properties-attributes lists,
  • composition variables
  • events

Specific components and algorithms may implement none, some, or all of these mechanisms. Each individual musical component maintains its own separate property-attributes list, composition variables, event lists, and associated editors.

Property-attribute lists establish ‘default’ component settings and behaviors and always have initial values. Some properties are static and do not change over the course of algorithmic composition; other properties can change. For example, the Composition component contains static properties for composition length, and starting key and time signatures. The Track component contains several dynamic properties for generated note pitch, volume, duration, etc., and static properties defining pitch-mapping and synchronization options. Changing a component-algorithm’s property-attribute values will not affect existing note data; it will only impact data algorithmically generated after the settings are changed.

Some dynamic component properties, such as track note-pitch or volume above, can be assigned to an algorithm to vary its value during the composition process. These special properties are referred to as composition variables. Composition variables are managed by the composition engine and have fixed minimum and maximum values and a user assigned or ‘local’ high-low range and starting value. When assigned to an algorithm the value of the composition variable varies within the prescribed high-low range. If not assigned to an algorithm the composition variable value will remain constant at the assigned starting value.

In addition to property lists and composition variables, some components-algorithms also support 'events'. Events can represent any component time-duration based data (notes, chords) or procedures. A Track’s events are its notes; Composition components use events to create project sections having different base scales, meter, and tempo changes. Many algorithms use events to change their own or another component’s properties over time. Most events (not note events) are designed for periodic-repeating (looping) during the composition process.

These three items are actually all related: composition variables are properties that change under the control of an algorithm, events change properties (and composition variables) over time.

Composition Engine

ArtSong’s algorithmic composition process is managed by a Composition Engine. The composition engine controls the flow of ‘time’ during the composition process, maintains the local (within a group) harmonic and metric environment, manages the mapping of composition variables to algorithms, and fulfils the various composition-variable ‘value’ requests from components and algorithms.

The composition engine uses a stream of ‘coordination’ messages to the various components during the algorithmic process. The content of these messages includes the current time being composed, local harmonic and metric environment information, composition-variable algorithm assignments, and miscellaneous status flags.

Starting with the initially specified starting-time, the composition engine iterates through the hierarchal list of components-algorithms, processes them, and then advances to the next requested ‘time’. This process continues until the specified end-time is reached.

Every time the composition engine processes a component-algorithm’s it forwards a ‘description’ of the current ‘composition environment’, i.e. underlying chords/scales, meter, etc. Component-algorithms can use or modify this information. Typically algorithms will register themselves as value ‘suppliers’ or ‘constraints’ for particular composition variables; some algorithms can be assigned to any composition variable while other algorithms only work with specific variables.

Components, especially those that generate event data, pass specific data-value requests to the composition engine. The composition engine then forwards the request to the appropriate algorithm(s). The algorithm(s) apply their defined procedures to the ‘composition-variable’ to generate an appropriately-ranged value. The new value is returned, via the composition engine, to the component requesting the value.

For example, each time a Track attempts to generate a note-event it passes several ‘value-requests’ to the composition engine. Some of the initial value requests will determine whether a note event can be generated at all. If a note is to be generated the Track passes a ‘pitch- value’ request to the composition engine which then obtains a value from the algorithm assigned to the ‘Pitch’ composition –variable. The value from the algorithm is then filtered through the current scale or chord, and then returned to the Track. Requests for volume, articulation, etc., values are handled similarly.

Composing

ArtSong allows you to exert as much or as little control on the composition process as your musical goals require.

On the ‘extreme-control’ side, you can compose in ArtSong entirely on an individual note-by-note basis, literally specifying each note’s pitch, duration, volume, etc., in the Single-Note editor or using Pascal/Basic scripts. The creative-control aspects of composing note-by-note, regardless of how it is accomplished, is beyond the scope of this manual; please refer to the provided references.

Most of your composition in ArtSong, however, will likely use the algorithmic-generative capabilities provided by ArtSong’s composition engine.

Controlling algorithmic composition in ArtSong starts with the selection of components and algorithms. After selecting and adding components the next steps involve setting initial component properties, setting composition variables, selecting and assigning algorithms to control those composition variables, and using component events.

The note generation process and associated control mechanisms are covered in more detail in a later section.

Home | Contact Us | Request to publish your help manuals | Request to remove your help manuals