We are impressed with the quality of your software! Symbolic Composer has also been tested in the Softpedia labs using several industry-leading security solutions and found to be completely clean of adware/spyware components."
100% Award, Download Symbolic Composer at Softpedia

"SCOM 7.3 has worked beautifully and I'm amazed how quickly I get scores done with the new Define Score menus! Itís also awesome how it compiles even my very early scores, which needed just ticks-to-ratios conversion. Thereís indeed some magic in SCOM, which is not found in any other composition platforms!" (Nigel Morgan, the author of Parametric Composition book and SCOMís N-Gel Module & Chicago Quartet score contribs).
"I feel like this is a MAJOR jump for SCOM 7. Thanks for the continually development. Not many programs have that kind of pedigree in an essentially steady and linear improvement in functions!"
"This mail just for say to you my first impression of the new SCOM 6.5: Awesome!! 'm so happy with the new menus, chords and degree scales, I love the new workflow upgrades and I love in general the look and feel."

"Congratulation for the new release of SCOM with Sibelius and Finale Support!"

"I love SCOM because it is so pure. I don't want alternatives!"

"It's really the most wonderful tool I have ever seen for music composition."

"SCOM steps beyond notation and playing skills, like no other software can do."

"It's all I need for music composition besides Logic and softsynths."

Basic Concepts
Overview On The Symbolic Composer

Symbolic Composer is one of the richest music programming environments available for the Macintosh. It is not the simplest music language, but that's due music is a complex structure of hierarchies. If you want to learn more music composition and programming Symbolic Composer Pro is the best music composition environment available for the Macintosh. You'll find here the basic concepts how a score is put together, and the hierarchies you'll be dealing. The topics cover all the SCOM basics, which are timesheets & zones, symbols, tonalities, metrics, functions, sections and classes, and motives & methods.

Basic Concepts

Symbolic Composer uses 2 grammars to define the section and instrumentation structures: The section grammar and the instrumentation grammar. Both are tree-like structures with as many elements and levels as needed. Each node contains definitions of class properties.

Class properties are inherited with the inheritance trees of the section and instrumentation grammars, like in above. Inheritation mechanism allows to define common properties among instruments and sections.

Multiple grammars can be used when inheritation and section structures differ, or when class properties are to be inherited differently.


The following picture shows the music hierarchies used in Symbolic Composer. They may appear complex at first sight, but the more you learn composing and expressing music in a formal way, the more you'll appreciate these options. The basics can still be learned in few weeks using only a subset of the whole system. Notice the squared area. If you want, you can use inheritation trees to control how properties are distributed in these hierarchies.

Sections And Classes
A section consist of any number of instruments. Each instrument is defined by inherited musical properties called classes. Classes are: symbol, length, tonality, zone, velocity, channel, program, controller, tempo, duration, tempo-zones and groove. Obligatory classes are symbol, length, tonality, zone and velocity. The other classes are optional. Classes can be cross-converted to other classes, or cloned between instruments and sections, and global operations can be distributed over sections. Section has default class properties, which are used if they are not specified for instruments.

Motives & Methods
Instead of processing classes separately (which gives you the maximum freedom), there are occasions when you want to process bigger musical chunks. These are called motives. A motive is a collection of classes: symbol, length, velocity, channel, program, controller, duration, groove, tonality and zone. It may contain only one class, or multiple classes. Motive definition follows an optional motive-tree inheritation. Motives are operated with methods and they will change one or more motive classes at once. For example reverse will reverse all classes of a motive. New methods can be easily added by using S-COM functions. Motives behave like functions and can be nested.

Timesheets & Zones
Grammars, inheritation, sections and motives provide an efficient abstraction mechanism suitable for modelling compositions. When working with smaller ideas a quicker way is often to use timesheets. Timesheets allows to define linear sequencer-type timings to control instrument play/mute space. Direct zone control is another useful way to create scores. The best way to start is to define a single section, and work on it. When you learn more on composing and S-COM hierarchies, you can start using them. But even "the easy way" can provide an endless source of musical ideas.

Symbols, Tonalities, Rhythms

Symbols are the basic concepts which make a clear distinction between traditional computer music languages and Symbolic Composer. Instead of processing notes, Symbolic Composer processes symbols and tonalities, which will result notes when combined. When compiling the MIDI file, symbols and tonalities are combined with mechanism called symbol-mapping. On this process symbol a gets a value of the first note of the tonality, b the second and so on. This division makes it easy to apply general algorithms to both symbols and tonalities. Each tonality has an active period called a zone. Zone can be of any length and there can be any number of zones in each instrument.


Symbolic Composer describes metrics in terms of length symbols, applied to zones, tempo-zones, lengths (rhythms), durations and grooves. Length symbols follow standard m/n notation with dot, triplet etc modifiers (like 1/16..), and optionally sequencer-style tick-values can be used.

A section is devided in zones, each of which may have its own class properties. Length is a distance between note-on events. Duration defines a duration of each event, allowing notes and chords to overlap when needed. Groove defines how much events will be shifted forward or backward, and suits in creating upbeats or other performance enhancements. Tempo changes usually follow zones, but optional tempo-zones enables more detailed control over tempo changes.

Rest Processing: A flexible rest processing mechanism is provided. A rest may occur in zones, lengths or symbols. A zone rest will cancel the processing of a zone and create a rest that lasts for the whole zone. A length rest will create a rest note. A rest symbol will create a rest note lasting the amount of current length event.

Quantizing: Quantizing is frequently used in sequencers. In Symbolic Composer it has uses, too, allowing to quantize computed values to musically meaningful rhythmic values. Non-quantized values can also be used. A general quantizer can be applied to all metric classes.

Humanizing: When generating MIDI files global expressions values can be applied to instruments. Expressions cover legato, humanize and velocity. Legato allows randomization of durations. Humanize randomizes note-ons and velocity randomizes velocity values. By default expressions are controlled by brownian noise. This simulates performer's finger noise. Optionally other generators can overpass the brownian noise.

Each class property is defined with a list or a vector, by manually, or using 300 general-purpose musical and mathematical functions. The values are processed with Section Recycling Rules, which are shortly:
  • If there is less material defined for a zone than there are actual events, then the material is recycled.
  • If there are less zones defined than there are zones, the zone pattern is recycled.
  • If the material has no zones it goes through all the zones, and recycles if the section is longer than the material.
Recycling provides intuitive way to handle usual pattern-looping methods in many musical styles. Values can also be scaled to fit within given metric ranges.

Functions consist of convertors, neurons, libraries, tonalities, and generators and processors, which devide into sub-categories dealing with vector patterns and symbol patterns. A vector pattern consists of integers, reals or ratios, while symbol pattern consists of symbolic information. User can extend functionality by programming new ones in Lisp.

Processors include filter, shift, transpose, retrograde, mix, analyze, and morph. Generators include fractals and chaos, L-systems, programmable neurons, Fibonacci series, antenna theory, autocatalysis, Fourier analysis/synthesis, number theory, solar systems, and recursive structures. Generators can be used side by side with processors. The functions are documented internally by a hyperhelp system, which enables to obtain examples by double-clicking a function name. The easiest way to learn to use Symbolic Composer is to have an open mind and adopt a 'surfing attitude', pick up a function here another there from the almost unlimited resources, and listen what comes out.

Here is an example score - not a musical example, but a technical one showing some basics. Note the hanging parenthesis. Since scores are in constant change while writing them, it is much easier to add new instruments, classes or sections when you don't have to care about repositioning the last parenthesis.

This defines a section structure, and it is used by the inheritance mechanism. Multiple grammars can be used to define different inheritation and section structures.

This defines instrumentation.

This defines all sections a b c1, c2, c3 and d.

This clones section intro to section middle while changing the tonality, velocity, duration and tempos. Now sections a, b and d are equal, and sections c1, c2 and c3 are equal, but different to each other.

Then play all instruments in all sections to a MIDI file.

Symbolic Composer is a style-independent solution for composing and composition modelling. It implements a formal mechanisms that deals with compositional structures and elements, and is expandable by the user. Symbolic Composer provides:

A high-level framework

Symbolic Composer is a framework for handling time and musical structures. It is the composers' responsibility to define the grammars, fill in the class slots, and extend the processors and generators to suit his style.

A style-independent solution

All musical styles will likely find its representation within this framework. You need clear thinking to be able to use it. If this state of mind is achieved, Symbolic Composer does not make restrictions on styles.

A wealth of build-in composition functions

Symbolic Composer includes 300 functions, which cover fractals, chaos and compositional algorithms. New functions can be programmed directly within the environment using build-in Common Lisp interpreter.

Expandable music programming environment

After few years most composers start to write Lisp-extensions. These functions and methods can be collected to modules, and shared by other users. A good example of this is CRESC PowerPack, programmed by British composer and music educator Nigel Morgan. Modules can be realized both as Lisp source code saved in ascii format, or compiled Lisp files by LispWorks Common Lisp.

[an error occurred while processing this directive]