Our community blogs

  1. A simple example based on an All Interval Row for pitch material and euclidean rhythm for Flute rhythmic generation.

    ;; All interval row generation
    (setf row (air 16 :prime :type :pitch))
    ;;; Strings chords
    ;; Chords gen from Air
    (setf chords1 (harmonic-progression
                   '(0 0 0 0 2 2 2 2)
                   :size 4
                   :step '(1 2 2 1) ;; step throught row
                   :relative t      ;; chords relative path voice leading
                   :seed 8392
    ;; Strings chords assembly with pitches from chords1 
    ;; and length generation (whole notes '(w) repeated 32 times)
    ;; dynamic = pp
    (setf chords1.omn (filter-tie   ;; tie repeated notes
                        :length (gen-repeat 32 '((w)))
                        :pitch chords1
                        :velocity '((pp))
    ;;; Melody generation for Flute
    ;; Get the length (size) of chords1.omn
    (setf size (length chords1.omn))
    ;; Pitch material
    (setf melo1.pmat (rnd-order
                          '(0 0 0 0 2 2 2 2)
                          :size 5
                          :step '(1 2 2 1)
    ;; Melodic generation with euclidean rhythm
    (setf melo1.omn (pitch-transpose
                      :pitch melo1.pmat
                      :length (euclidean-rhythm 
                               (gen-repeat size '(16)) 
                               :type 2
                      :velocity '((mf))
    (def-score temp 
                :key-signature 'chromatic 
                :time-signature '(4 4) 
                :composer "Stéphane Boussuge"
                :copyright "Copyright © 2017 s.boussuge"
                :tempo 64
     :omn chords1.omn
     :channel 1
     :port 0
     :sound 'gm
     :program 'acoustic-grand-piano
     :controllers (1 (gen-dynamic-controller chords1.omn))
     :omn melo1.omn
     :channel 2
     :port 0
     :sound 'gm
     :program 'acoustic-grand-piano
     :controllers (1 (gen-dynamic-controller melo1.omn))





    • 1
    • 0
    • 1440

    Recent Entries



    (q c4)

    (q c4 mp)

    (q c4 mp trem)



    LENGTH          PITCH        VELOCITY         ATTRIBUTE



    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 in detail


    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. 

    (q c4)



    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 ppppp to fffff. OMN includes many symbols that can only be classed as Dynamics because they are not identified directly with a data value. 

    (e c4 mp)



    The fourth element of the OMN language is 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. 

    (e c4 mp trem)


    Finally, there is SIMULTANEITY possible in the layering of attributes. This is achieved by the + symbol.

    (q c4 mp trem+fermata)



    An important fifth element of REPETITION  is also present in the OMN language structure.

    (q c4 q c4)
    (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))
     (make-omn :length '(q q q e e)
               :pitch '(c4 d4 e4 f4 g4)
               :velocity '(mp mp mp f f))


    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 Howto Score 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.

  2. Bonjour,


    Un des particularités d'Opusmodus qui me séduit totalement, c'est de pouvoir explorer des territoires microtonals, et au-delà des habituels quart, huitième, voir seizième de ton, avec des timbres de synthétiseurs virtuels ou hardware de qualité via une station audio numérique (STAN). C'est la possibilité avec une banque comme l'Ircam Solo Instruments d'obtenir des frottements, des glissements de fréquences, de vriller des timbres de trombone virtuel, flûte, clarinette, de les confronter avec des timbres électroniques, de leur faire jouer des hauteurs non tempérées comme du 500 ou 50 Hz, simuler avec des timbres acoustiques une ring modulation ou une modulation de fréquence.


    Cela fait des années que je m'intéresse à la microtonalité. J'ai commencé avec les possibilités que m'offrait mon premier synthétiseur hardware l'Ems Synthi Aks, puis j'ai commencé à vouloir comprendre comment calculer une fréquence microtonale précise avec une calculatrice puis avec Open Music afin d'obtenir des listes sur des tempéraments précis. Et à dire vrai, c'est le livre du compositeur Jean-Etienne Marie qui m'a donné les clés, m'a ouvert les portes de la microtonalité avec son ouvrage "L'Homme Musical" (chez Artaud) dans lequel il consacre un très long chapitre à la microtonalité. Avec notamment la publication, en partie, des tables de progression des tempéraments établies par Augusto Novaro pour calculer les fréquences Hz (1). Ces tables sont consultables sur le PDF mis en ligne sur le Net par la Augusto Novato Society dans l'ouvrage Sistema Natural de la Musica (publié en 1951) et dont les "progresiones géométricas" vont du 2e d'octave au 65e d'octave (pages 53 à 58). A ce livre, on peut ajouter "A Natural System of Music, based on the Approximation of Nature", qu'Augusto Novato a publié en 1927. Il explore les ratios concernant les harmoniques, les intervalles et leurs inversions, les notations, les "Geometric progressions" (arithmétiques et géométriques), etc.


    A la fin de l'Homme Musical, Jean-Etienne Marie donne dans son lexique où il illustre le terme Tempérament un exemple qui m'a toujours intrigué : "Sur un synthétiseur on peut par exemple obtenir la division en 17 intervalles égaux d'un intervalle de quarte augmentée".


    Aujourd'hui, outre la possibilité de calculer les 17 intervalles égaux - ce qui est possible aussi avec une calculette scientifique ou sur celles de nos ordinateurs - avec Opusmodus, ce dernier me permet de pouvoir - enfin - écouter ces 17 intervalles égaux d'une quinte diminuée ou triton comme le montre cette vidéo :



    J'ai commencé à calculer les fréquences Hz (2) avec Open Music pour obtenir leur liste, j'ai reproduit le calcul fréquence par fréquence (2) à partir de la formule que m'avait indiqué Stephane Boussuge tout au début de ma découverte d'Opusmodus puis j'ai effectué les ajustements avec les cents en vérifiant avec le Tuner de ma carte son (Motu 828 mk3) et celui de Studio One l'exactitude des fréquences ajustées par rapport à leur hauteur initiale. Pour ce faire, je me suis créé un petit "utilitaire" avec OPMO qui me permet d'ajuster rapidement chaque hauteur. Au préalable, pour vérifier la souplesse d'OPMO, j'ai inséré plusieurs fréquences non tempérées avant de lire les 17 parties égales de l'intervalle de quarte diminuée mais dans un ordre non ordonné. Les 17 fréquences ont été insérées dans une représentation circulaire où le cercle est divisé et noté en 17 parties égales, avec en regard leur ajustement en cents comme on peut le découvrir dans le début de la vidéo. Il y a trois lectures, la première est effectuée avec Pianoteq 5 et qui respecte les ajustements, la seconde, plus courte est lue avec le Player de Kontakt. Ce dernier filtre les ajustements midi et donc ne tient pas compte des ajustements envoyés par Opusmodus. La troisième lecture conjugue la lecture avec Pianoteq et le player de Kontakt.


    Je mets en lien une seconde vidéo et qui est plus classique dans la démarche. Il s'agit de l'ajustement et de la lecture des gammes en quart et huitièmes de ton. En préambule, un calcul est inscrit, il permet de calculer pour un intervalle de quinte (ou un autre) le nombre de quart de ton et de huitième de ton, et non pas comme je l'ai noté le nombre de demi-tons :



    - (1) Le calcul est simple à partir des tables de Novaro, on choisit une progression, disons un 17/31 d'octave - 1,4624 - d'une fréquence n - 261,63 Hz - et on multiplie la progression par la fréquence. Cette progression étant celle obtenue par le calcul 2 ^ (1/31)^17 = 1,4624 soit 1,4624 * 261,63 Hz = 382, 62 Hz.


    - (2) J'ai un problème concernant le calcul des fréquences : je n'arrive pas à trouver la solution pour obtenir la liste de l'ensemble des fréquences que je calcule. C'est à dire que je n'arrive pas incrémenter mon calcul à partir des fréquences ou des indices de progression comme je peux le faire avec Open Music. Je suppose qu'il y a une solution et j'aimerais bien la connaître.

    Pour la gamme chromatique, je contourne le problème en convertissant les hauteurs en Hz :

    (setf ListeTC (pitch-to-hertz (make-scale 'c1 85)))
    (setf rowHz (pitch-to-hertz (list row)))


    J'ai essayé différents calculs, mais là je tourne en rond...

  • Blog Statistics

    Total Blogs
    Total Entries
  • Who's Online   1 Member, 0 Anonymous, 12 Guests (See full list)