OMN The Language
OMN is designed as a scripting language for musical events. It’s not about sounds themselves, it is about their control and organisation in a musical composition. As a linear script rather than a graphic stave, musical events can be transformed, extended, reorganised by powerful computer algorithms. Some sequencers and score writers provide basic algorithms, but they do not represent the way composers now think about the process of music composition. Composing has become such a multi-faceted process and takes ideas about structure and content from many disciplines: mathematics, astronomy, literature, the visual arts. As such it requires extensive mental resources and experience from the composer. Much of this is still done by hand and eye and brain because although computer systems do exist to help the process along they don’t provide what has become known as the composing continuum. This means that a single workspace and workflow environment has not been generally available that can take in the whole process of composing a piece - from first thoughts to a printed score and reference recording. Wouldn’t it be good to be able to do everything in one place?
Most composers acquire a bag full of musical tools to act on musical ideas. These still include those tools Bach used for repetition, inversion, retrograde, transposition, but with computer help musical material can be copied, cut, pasted and generally structured and orchestrated. Since the 1950s composers have been experimenting with tools and processes that take musical transformation into wholly new areas; of random numbers, fractals, statistical distribution, graphical plotting to name just a few. To use such experimental things it is composing with a script that is acknowledged as the most efficient and practical way forward. And to work with a script means working with a language: OMN.
OMN and Musical Notation
The truly original aspect of OMN is that it has been designed to speak directly to traditional musical notation. Everything written in OMN script can be rendered instantly to notation and to a performance simulation. For most composers staff notation remains the common currency they have to work in and with. You couldn’t expect performers to read from a MIDI event display or indeed from OMN script. As the OMN language is laid out and explored we’ll see just how fully the language of music staff notation is mirrored. This is not just in the standard elements of rhythms, pitch and dynamics but in the vast library of musical attributes that cover the way pitches and rhythms are performed by different instruments and voices. So musical notation is always there. Whatever you write there can be an instant ’snippet’ rendered to view alongside your script.
OMN: the concept
Most languages have developed orderings for parts of speech. Romance languages place the verb after the subject, and in the middle of the sentence. Germanic languages tend to conclude sentences with a verb. In music we’re used to the single intersection of pitch position on a stave line with a rhythmic symbol with or without a stem.
In developing a right concept for the OMN language much thought was given to choosing the most effective ordering of elements. Culturally our music is one governed by our past experiences, elements of musical tradition gathered through informal and formal musical education, and what is active in the memory. Descartes adage "Cogito ergo sum" ("I think, therefore I am") remains an important cornerstone of an individual’s relationship with composing music. It is something known. It is a made thing; it possess architecture. We can say with confidence that we experience music in a hierarchical sequence of time, existence, dynamics and expression. So it is right that the linear ordering of OMN reflects this. In architecture this might be translated as dimension, materials, volume of space, decoration. These are established architectural parametrics able to form the basis for CAD rendering in the new parametric systems architects are now using to allow the conditions surrounding to influence design. OMN is a language wholly sympathetic to parametric composition in music.
OMN: The Four Elements
OMN was created to think about the element of TIME first. After all we can be musical without a pitched note being present. If we are going to use the OMN script we need a reference guide to help us whilst we learn the language. What accompanies this introduction is a special dictionary of language terms arranged in the four elements that make up the concept. However, there are some necessary redefinitions required. TIME is a very general element that subdivides in music to rhythm and length. When we describe what makes up a rhythm in notation it is usually a mixture of symbols that have different lengths. So the OMN vocabulary uses the term LENGTH as its general title.
The second element of the OMN language is PITCH Although each piece of music is defined by the length of time, it only starts to EXIST as a proper musical entity when pitch is added.
The third element of the OMN language is VELOCITY. Staff notation has a set of common symbols that are formed from the first letter of Italian words for degrees of intensity we want to attach to a note or a phrase. In OMN there are 12 such terms ranging from
fffff. OMN includes many symbols that can only be classed as Dynamics because they are not identified directly with a data value.
(q c4 mp)
The fourth element of the OMN language is ARTICULATION (attribute). The number of general symbols and words used to describe expression in music is vast: tenuto, staccato, legato, trill, fermata etc... Many instruments, particularly those of the string family have their own vocabulary of technical expressive terms: pizzicato, sul ponticello, flautando. Remarkably these can be included in an OMN script and, if your sampler has a string effects library, these expressive instructions can be realised directly.
(q c4 mp trem)
Finally, there is SIMULTANEITY possible in the layering of attributes. This is achieved by the
(q c4 mp trem+fermata)
An important fifth element of REPETITION is also present in the OMN language structure.
(q c4 =)
Assemble and Disassemble
It is valuable to remember that the composer may need to create material one parameter at a time. OMN allows for discrete parameters to be brought together to make a composite list in OMN. By the same token it may also be necessary to focus on just a single parameter to develop further the argument of a composition. An OMN list can easily be disassembled into its component parts for such work to take place and then made back into an OMN list.
(disassemble-omn '(q c4 mp d4 e4 e f4 f g4)) => (:length (1/4 1/4 1/4 1/8 1/8) :pitch (c4 d4 e4 f4 g4) :velocity (mp mp mp f f) :articulation (- - - - -))
(make-omn :length '(q q q e e) :pitch '(c4 d4 e4 f4 g4) :velocity '(mp mp mp f f)) => (q c4 mp d4 e4 e f4 f g4)
OMN script responds directly to the Opusmodus library of algorithmic functions, and with keywords particular elements can be selected to be processed or not.
(rnd-order '(q c4 mp d4 e4 e f4 f g4))
OMN: the way forward
This introduction should set you on your way. With what has been covered here, the Stages Tutorial files will demonstrate how closely the OMN language can be integrated with algorithmic composing. In fact, when composing in this way you’ll often only write material in one parameter at a time. Although every function will read an OMN list, it’s often better to keep parameters apart to begin with. You’ll see this clearly in the Tutorial files.
There will be some music projects where writing directly in OMN is really necessary. Composing for voice is certainly one medium. There are examples in the How To section to demonstrate word setting with full attention given to syllabic splitting.
For more experimental approaches to composing OMN can be integrated with the conversion of integers and intervals into the parameter of pitch. The Stages Tutorials show how this can be achieved with examples that use pitch-class sets to create tone rows.
OMN is a way of scripting the whole language of traditional staff notation and modes of experimental and conceptual composition using the tools of parametric modelling. It is a language that responds to the future of music presentation, as notation moves inextricably from the printed page to the backlit digital display.
New music technology has focused largely on production and presentation, whereas the conceptualisation and origination of new music requires a very different paradigm. Sequencer and Scorewriters continue to provide valuable ways into composition. Opusmodus provides the 3rd way forward, and one driven by its own notation script: OMN.
OMN is perfect for those ‘on the fly’ experiments that all composers make when they are starting out on a project. It is like having a piano close by to try out this or that, but one that always plays what’s written quite flawlessly. What is wonderful about scripting is that those experiments if successful can remain part of the score for the whole progress of the composition. With OMN a composing continuum can be achieved.
OMN may look a little hard to decipher at first, but once the logic is understood, be assured, OMN can be read with ease. OMN is the first notation that has been designed from the outset to communicate with MusicXML the de facto standard for communication of notated scores between different software applications. Opusmodus scripts can be converted seamlessly into both Midi and MusicXML.
The Four Elements in Detail
The OMN language provides for a textual equivalent to the many symbols used in traditional staff notation. In the parameter of LENGTH these symbols represent exact durations of virtual time.
Here are the standard values of note-lengths. The most commonly-used are represented in the OMN language by the first letter of their American arithmetic name, so
wis a whole-note,
his a half-note,
qis a quarter note and so on.
Here are the standard values of rest-lengths.The most commonly-used are represented in the OMN language by the first letter of their American arithmetic name but with the prefix of a
-(minus) sign, so
-wis a whole-note rest,
-his a half-note rest,
-qis a quarter note rest and so on. To assist with multiple rests
-12will produce 12 bars of whole-note rests.
'(q q q)
Here is a list of three quarter-notes. The list has to begin with a
'(a quote) and be enclosed by parentheses
'(q -e e q)
The example above shows note-lengths and rest-lengths in combination.
8will produce 8 bars of whole-notes lengths.
'(8 h q q)
-8will produce 8 bars of whole-notes rests.
'(-8 h q q)
. .. ...
OMN dots are used the same way as in the standard notation. The maximum dots in OMN length is 3:
The OMN system of rhythmical notation is initially constructed on the principle of duple divisions. Here the individual note-lengths stand for their face value:
and so on.
The other divisional types must make do by borrowing from this binary series: duplet (2), triplet (3), quadruplet (4), quintuplet (5), sextuplet (6), septuplet (7), octuplet (8), nontuplet (9) etc...
When we write these values we use the same note-values as the immediately preceding binary division.
'((3w 3w 3w) (3h 3h 3h) (3q 3q 3q))
This means for example that a triplet division of the quarter note uses eighth notes.
'((5w = = = =) (5h = = = =) (5q = = = =))
This means for example that a quintuplet division of the quarter note uses sixteenth notes.
'((e. s q =) (e. s q =))
The use of repeat symbols for note-lengths and rest-lengths is fundamental to OMN. Its use can give score scripts a very particular style and appearance. Composers will soon discover different approaches will suit particular situations when writing for percussion or in the notation of repetitive textures.
'((q -e = q) (q - e. t =))
If a note-length repeat symbol follows a rest-length a note-length is given:
'(s e - s - e. -s e s -e)
The use of the rest-length repeat can bring clarity to the visual layout of a phrase.
Length composed of two or more separate length elements:
'(qs s e h)
'(hqs -s qe)
OMN has two types of ties. The first one is a
_and the second one is the attribute
'((h_e e q) (q_3q 3q 3q -h))
tiesymbol is used when a
tieis necessary in the middle of a list:
'((h_e c4 e_q tie) (q_3q c4 3q 3q_h))
tieas an attribute is necessary when a
tiegoes across one list to join a length symbol in an adjacent list.
'(s == -- = - === - == = —)
Both note-lengths and rest-lengths can be extended simply by bringing the symbols together in the same way pitches come together to produce chords. In percussion writing this can provide further clarity because only one length value needs to be set at the beginning of the list.
'(3q == -e = s - = - == —)
Extended periodic lengths
'(s== = = = = =)
'(5q== = = 7q=== = ==)
'(5q== - = 7q=== = - =)
OMN notation allows the use of ratio values if more convenient:
'((q = e = h) (q - e. t =))
'((1/4 1/4 1/8 1/8 1/2) (1/4 -1/4 3/16 1/32 1/32))
Many functions automatically output ratios as a default rather than OMN symbols. This can usually be changed by setting a keyword within the function such as
:omn t. The tie mechanism in both its forms works with ratios.
'((q_e e q) (q -3q = = h))
'((1/4_1/8 1/8 1/4) (1/4 -1/12 1/12 1/12 1/2))
In OMN a pitch is written as a text symbol that combines a note’s lower-case letter name with its octave number. OMN uses the convention that
c4is "middle c" , so numbered because of the note's position as the fourth C key on a standard 88-key piano keyboard. In fact the composer can go a little beyond the standard keyboard range because OMN takes in the MIDI range of 0 - 127 pitches.
'(c4 cs4 d4 ds4 e4 f4 fs4 g4 gs4 a4 as4 b4)
In an ascending chromatic scale the convention is to notate the chromatic pitches in sharps.
'(cs4 ds4 es4 fs4 gs4 as4 bs4)
The sharp is written as an
ssymbol preceded by the letter of the diatonic pitch and then the octave number, thus
'(cb4 db4 eb4 fb4 gb4 ab4 bb4)
The flat is written as an
bsymbol preceded by the letter of the diatonic pitch and then the octave number, thus
'(c4 d4 e4 f4 g4 a4 b4)
In a diatonic C major scale where no chromatic notes exist the letter name and the octave number suffice. When transpositions are made using an algorithmic function the note spelling will often mix sharps and flats to seek the best compromise.
12 Tone Row
'(eb4 b4 g4 cs4 c4 fs4 e4 bb4 a4 f4 ab4 d4)
In a 12 Tone Row sharp and flat spellings are common. In OMN they can be freely mixed to enable intervallic analysis to be undertaken. Opusmodus can make conversions to and from interval sets.
(pitch-to-interval '(eb4 b4 g4 cs4 c4 fs4 e4 bb4 a4 f4 ab4 d4)) => (8 -4 -6 -1 6 -2 6 -1 -4 3 -6)
'(c4 e4 g4 cs4 a4 b4 f4 ds4 d4 fs4 gs4 as4)
This row is taken from Schoenberg’s "Three Satires" for mixed chorus. The song is directed at those exploiting tonal and atonal principles alike without being aware of origins or consequences. The text of the song "Am Scheideweg" corresponds to a C-major triad which is worked into this twelve-tone row and the row’s chromatic spelling is chosen to make the vocal pitching of intervals easier.
To create a chord, individual pitches are brought together as a single entity.
'(q c4e4g4 e4g4c5 g4c5e5 c4e4a4 e4a4c5 a4c5e5)
The ordering of pitches within a chord grouping does not have to reflect ascending or descending patterns to be displayed correctly in notation. This means algorithmic constructions of chords can be freely undertaken.
'(q g2d3g3b3 a2c3fs3a3 b2d3g3)
As with individual pitches, chords adopt sharp or flat spellings as they occur in a list.
Microtone pitch symbols and values:
+ 1/4 - -1/4 . 1/8 .. with sharp 3/8 . with flat -1/8 .. with flat -3/8 +. with flat or sharp 1/8 +.. with flat or sharp 3/8 -. with flat or sharp -1/8 -.. with flat or sharp -3/8
'(q a4 a4+ as4 as4+ b4 b4- bb4 bb4- a4)
'(q a4 a4. a4+ a4.. as4 as4. as4+ b4-. b4 b4-. b4- b4-.. bb4. bb4- a4. a4)
Integer, interval and midi microtone values:
0.5 = 1/4 tone
0.25 = 1/8 tone
(pitch-transpose 2.5 '((a4 a4+ b4 d5) (e5 e5+ fs5 a5))) => ((b4+ c5 cs5+ e5+) (fs5+ g5 gs5+ b5+))
In the next example we generate a row of quarter tones using
RND-ROWfunction with optional
:quantize 1/4. If
:quantizeis set to
1/8value, the function will return 8th tone row with 48 values.
(setf mat (rnd-row :quantize 1/4 :type :pitch :seed 34)) => (c4 g4 ds4+ cs4 d4+ b4+ f4+ a4+ gs4+ e4+ b4 as4+ e4 bb4 cs4+ a4 d4 g4+ fs4+ eb4 c4+ gs4 fs4 f4)
(pitch-to-interval mat) => (7 -3.5 -2.5 1.5 9 -6 4 -1 -4 6.5 0.5 -6.5 6 -8.5 7.5 -7 5.5 -1 -3.5 -2.5 7.5 -2 -1)
(interval-to-pitch '(1.5 2 -1 -1.5 1 .5 .5)) => (c4 cs4+ ds4+ d4+ cs4 d4 d4+ eb4)
(setf hertz '(448 880 1320 1760 2200 2640 3212 3520)) (hertz-to-pitch hertz :quantize 1/4) => (a4+ a5 e6 a6 cs7 e7 g7+ a7)
Traditional staff notation has a collection of common symbols that are formed from the first letter of Italian words for degrees of intensity we want to attach to a note or a phrase. In OMN there are 12 such terms ranging from
fffff. The items in this collection have specific pre-set data values attached and as such produce in MIDI play back differences of attack on the notes they accompany.
ppppp pppp ppp pp p mp mf f ff fff ffff fffff
The symbols classed as being Dynamic have a relative MIDI velocity value attached to them. The objective within OMN is to primarily to provide the notation for such symbols.
cresc dim < > 0< >0 pfp pf fp sfp sf sff sfff sfz sffz sfffz rf rfz fz ffz fffz
The collection titled Crescendo takes the Italian abbreviations for the common dynamic descriptions and places a
<directly following the abbreviation.
ppppp< pppp< ppp< pp< p< mp< mf< f< ff< fff< ffff<
The collection titled Diminuendo takes the Italian abbreviations for the common dynamic descriptions and places a
>directly following the abbreviation.
pppp> ppp> pp> p> mp> mf> f> ff> fff> ffff> fffff>
One note dynamic symbols
This notation is used in wind, brass and string performance to suggest a precise dynamic changes to take place on a single pitch. The symbols are particularly associated with the use of hand-held mutes in writing for trumpets and trombones.
0<ppppp ... 0<fffff ppppp>0 ... fffff>0 0<ppppp> ... 0<fffff> <ppppp>0 ... <fffff>0 0<ppppp>0 ... 0<fffff>0 <ppppp> ... <fffff> >ppppp< ... >fffff< ppppp<> ... fffff<> ppppp>< ... fffff>< ppppp<pppp ... ffff<fffff pppp>ppppp ... fffff>ffff ppppp<>ppppp ... ffff<>ffff pppp><pppp ... fffff><fffff ppppp<pppp>ppppp ... ffff<fffff>ffff pppp>ppppp<pppp ... fffff>ffff<fffff >0< 0<>0 <>0 0<> <> ><
The largest element of the OMN language is ATTRIBUTE (articulation). This term covers the many hundreds of symbols and words that describe musical expression.
These terms are divided up very broadly within the OMN Glossary into two groupings: Articulations, Ornaments and Marks affecting all instrumental and vocal performance; Strings, Woodwind and Brass performance indicators being specific only to those instruments.
Articulations cover Accents, Cesura, Fermata, Legato, Ties and Pedal. In musical performance these words, signs and symbols indicate a specific way of controlling the dynamic, intensity or duration of a musical event. This may be a single instance or covering a group of events.
Ornaments are closely linked to articulation but usually include the addition of further pitches and subsequent changes in duration. Ornaments in OMN include Acciaccatura, Appoggiatura, Arpeggio, Glissando, Mordent, Trill, Tremolo, Turn and Two-note Tremolo. Ornamentation was once a required art for the musician to master with an expectation in the 17C and 18C that performers would freely embellish notated music as a matter of course, often going way beyond what was indicated in a score. In contemporary music ornamentation, whilst still using the symbols of Baroque performance practice, is most usually a precise and obligatory requirement seeking to give a special intensity to individual pitched events.
Marks cover the many general performance indications found on a notated score that govern all instruments and voices. These include Repeat Signs and Rehearsal Marks.
In OMN the performance instructions for woodwind and brass include the now common terms found in contemporary scores first collected together in Bruno Bartolozzi’s New Sounds for Woodwind. These may be linked through
DEF-SOUND-SETto available sample sets of woodwind and brass attack transients.
For strings, performance instructions in OMN are comprehensively cited and in conjunction with a sample library can be used to trigger complex mixtures and layers of timbre type. Included within OMN are Arco, Pizz, Col Legno, Harmonics, Pizzicato, String, Sul Ponticello, Sul Tasto, Bowing Techniques and Vibrato.
'((s d5f5b5 f e5g5c6 e f5a5d6 s g5b5e6 f5a5d6 e5g5c6 d5f5b5) (e c5e5a5 c5e5a5 q d5f5b5 marc) (s d5f5b5 e5g5c6 f5a5d6 g5b5e6 e f5a5d6 s e5g5c6 d5f5b5) (e c5e5a5 c5e5a5 q d5f5b5 marc))
I. Strawinsky, Petruschka, 1911/21
'(e. c5 leg s g4 e. e5 leg s c5 e g5 q g5 e g5 c5g5a5 fp q c5f5a5 e e c5f5g5 fp q c5e5g5 e)
W. A. Mozart, Variationen KV 265
'((-3e c4 pp< pizz+stacc stacc -e - 5e f5 mf< arco a5 e6 fs6 bb6) (-e q. g5 < trem+harm) (q g5 trem+harm -s f4e5 ff stacc+pizz -e))
A. Webern, Sechs Bagatellen für Streichquartett, op. 9, III, 1913
'((q d5 q d5 leg e. e5 lmordent2-t s f5) (e e5 (app s d5) e c5 (app. s b4) q. a4 e fs5 turn12) (t g5 leg s. fs5 t a5 leg s. g5 t fs5 leg s. e5 t d5 leg s. c5 (app. e c5) e. a5 s c5) (t b4 leg s. g4 e fs4 (app e fs4) h g4 lmordent1-t))
J. S. Bach, Goldberg-Variationen, Aria, 1741