Development     Cybermusic Generation Software

Home      Gallery      Workshop      Announcements      Contact

INTRODUCTION
The following section presents the software working environment that has been used by the author for many years for creating the cybermusic as presented by the Cybermusic Exhibition.

The central module of this environment, the parametric sound controlling software CELSYUS, is a non-commercial product, developed by the author. It is a stand-alone application running on Windows platforms only.

The exposition of the basic functionality of this tool may demonstrate the potential for further development, in one of the following forms:
  • Porting and adapting the existing software modules into a platform independent language.

  • Using an existing musical working environment, such as Common Lisp Music, and rewriting modules from the CELSYUS function library that could be of interest.

  • Optimizing the existing architecture and the program functions, adding further functions, for instance from other libraries.

This section provides a short description on how the tool is embedded in the sound creation environment, and lists its basic functions on a logical level. Any further information and resources will freely be provided for the purpose of further development of the program or its basic ideas.
ARCHITECTURE
Using algorithmic procedures created according to specific syntax rules (.TXT), CELSYUS produces streams of musical events in an abstract data format (.EVT). This data format is then output in the standard score format of CSOUND (.SCO). The parametric setup of the .SCO output file is related to a specific CSOUND orchestra file (.ORC) that covers all cases of the supported sound generation at once (sample processing, oscillator generation, filter and reverberation, etc., refer also to the Musical Parameters section).

The iteration from creating the patch of algorithmic procedures, getting the sound results by CSOUND and modifying the patch according to this result, is basically the interactive model for the artistic creation of cybertracks.
Process example: "Speaking Violin"
  
0. Input Sound

VIOLIN.WAV
  
1. Algorithmic patch file

240403B.TXT
  
2. Generated data file

240403B.EVT
  
3. Output file

CSOUND.SCO
  
4. Orchestra file

CSOUND.ORC
  
5. Sound result

SPEAKING VIOLIN.WAV
FUNCTIONAL OVERVIEW
Basic Functionality
  
cell References
  • Hierarchical cell references

  • Probability of cell references

  • Cell rotation

  • Cell permutation

  • Cell index manipulator

  • Flat cell jump
Cell references are the backbone of the system. One cell reference from the complete cell text is used to start the evaluation, launching further cells that contain further cell references, and so forth.
  
Parameter Logic
  • Mandatory and optional parameters

  • Standard values

  • Standard rules of hierarchical parameter operations (default reference modus)

  • Parameter value sequence definition (new version only)

  • Parameter value interpolation generation

  • Parameter value random generation

  • Parameter value random mask

  • Parameter value random interpolations
Parameter values of a 'final cell' (a cell that does not contain further cell references) are produced as a flat list of events. Parameter values of a 'super cell' (a cell that contains further cell references) control parameter values of the resulting event list of the referred cells.
  
Element Number and Time Control
  • Number of parameter values

  • Time restrictions for producing the number of parameter values

  • Sequence control (new version only)

  • Random control

  • Interpolation control

  • Segmenting rules for the cell hierarchy processing
The above functions provide different methods to produce the final number of the flat resulting event list.
  
Cell List Operations
  • Parametric transposition rules for the referred cell's control values

  • Parametric modulation rules for the referred cell's control values

  • Freezing generated lists in the cell hierarchy

  • Controls for the overall number of cell references (absolute and relative)

  • Controls for the level deepness of cell references (absolute and relative)

  • Operations for resulting lists of two cell reference trees (interpolation transition, probability transition, event pending modulation, time pending modulation, value 'magnets', merge)

  • Synchronization of multiple cell reference trees
Cell list operations provide possibilities on how the mode of the parametric evaluation in the hierarchical cell structure can be modified, and how resulting flat lists of various cell reference trees can be combined with each other.
Parameter List Operations
  
Value generation modes
  • Scale filter

  • Exponential distortion

  • Successive increment/decrement functions including probability rules

  • Import of external parameter values for controlling parameter values

  • Import of external parameter values for controlling LOOP values
Value generation modes provide possibilities to modify the default parameter value generation.
  
Parameter value modifications
  • Stretch functions for expanding or contracting time values (with and without duration values)

  • Stretch functions for stretching or compressing the range of the parameter values (per factor or per range limit values)

  • Step functions for filtering parameter values

  • Exponential functions for distorting parameter values

  • Filter functions for filtering the interval range of parameter value sequences
Parameter value modifications provide possibilities to directly manipulate the values of the incoming flat list (the list that is retrieved by a cell as a result of its own reference tree evaluation).
  
Parameter value combinations
  • Copy functions applied from one parameter value list to another one

  • Modulation functions applied from one parameter value list to another one

  • Comparison functions and value exchange between parameter values of parameter lists
Parameter value combinations provide possibilities of processing values of the flat resulting list with values of another flat resulting list.
  
Parameter list index operations
  • Mirroring and reversion

  • List index shift operations

  • Increasing or decreasing the overall number of elements in a parameter list

  • Index range cut operations (extracting or removing elements of certain ranges)

  • Index filter operations (extracting or removing elements of certain indices)
Parameter list index operations provide possibilities to manipulate the index of flat resulting lists.
  
Parameter value successive controls
  • Element filters (value range filter, interval and interval matrix controls) with resulting element reduction

  • Element filters (value range filter, interval and interval matrix controls) with retaining time structure (resulting breaks)

  • Operations of interval analysis of a parameter list and generic resynthesis
Parameter value successive controls provide possibilities of generating and filtering flat resulting lists according to certain rules of possible successions.
  
Peripheral parameter list controls
  • Methods of parameter list displays on screen (listing and graphic display)

  • Graphic editing functions

  • Interactive play functions (by keyboard)

  • Keyboard control for entering parameter values or cell references during the evaluation process

  • Parameter list save and load operations during the evaluation process (including dynamic index)

  • Value conversions (cent, decibel, duration control according to the actual frequency, etc.)
Peripheral parameter list controls are functions that allow to include input and output routines of the system periphery (keyboard, screen, file system, sound output) during the hierarchical cell reference evaluation process.
CELSYUS VERSIONS
  
1. Algorithmic source text (old version)

OldVersion.TXT

The above example shows the form of the specific text editor of the original CELSYUS version that is written in TURBO PASCAL. This version is still used.

The TURBO PASCAL source code is free available as reference, and for further use.
  
2. Algorithmic source text (new version)

NewVersion.TXT

The above example shows the new form of the CELSYUS language, editable with every simple text editor. This CELSYUS version that owns a much more elegant syntax is written in C, but does not yet support all features of the older version. Today, it runs only within a GNUCC environment (requires revision and still inclusion of features of the former version).

The C source code and a complete EBNF description of the language is free available for further development.
MORE INFORMATION
   Email 

  Top     

© 2022 Copyright. All rights reserved.