Jump to content

OMN Lingo

OMN The Language 

  1. Started by TomTolleson,

    Hello, I'm working with the code below, which works fine through the creation of Melody1 variable. However, when I create the "test" variable with make-omn with the pitches, lengths and dynamics, the pitches are no longer present. I also notice that the lengths are appearing in OMN form and fractional/ratio form when the test variable is evaluated. Any ideas what's happening? Thanks ;; Use a scale that blends consonance and dissonance (hexatonic blues scale for example) (setf scale '(c4 d4 eb4 e4 f4 g4 a4 ab4 b4 bb4)) ;; Create quirky, fragmented melodic patterns (setf premelody1 (gen-repeat 3 (gen-rnd-omn 3 16 1 3 scale 's nil))) (setf premelody2…

  2. Started by AM,

    Dear community Where is the error? I try this setup and want to send the program changes, but it doesn't work. What is wrong? I don't see it 😄 thanks for some help - andré the setup... (progn (add-program-attributes '(ads) '(ord) '(msp) '(st) '(bartok) '(wk) '(lt) '(gett) '(pizz) '(lbup) '(lbdown) '(lb1) '(lb2) '(lb3) '(lb4) '(kdecke) '(kzarge) '(harm1) '(harm2) '(harm3) '(harm4) '(harm5)) (add-text-attributes '(ads "ads") '(ord "ord") '(msp "msp") '(st "st") '(wk "wk") '(lt "lt") '(bartok…

  3. Hi all, I'm a beginner and was wondering, if someone could give me a head start on a project of mine. Imagine the following: As a source material I have 20 bars of music. As a target I have a structure of 200 empty bars with changing time signatures. Now I'd like to fill the 200 bars with snippets from the source material, i.e. copy from the source to the target, bar by bar in a specified (nonrandom) pattern, starting at each bar of the source material from the beginning, for the duration of the target bar (which is changing because of the changing time signatures). I hope my description makes sense. Any help is greatly apprec…

  4. Started by Veit,

    How do I create a rhythm that accelerates or slows down between defined rhythmic values? For example: A constant rhythm of repeated 1/136 notes should gradually slow down until it reaches 1/88. This should really be achieved with note values, not with tempo changes.

  5. Hello everyone, I am working on a piece with midi sampling in my DAW (Cubase) and want to generate the midi data with Opusmodus. Currently I am trying to get a seamless as possible rhythmic accelerando from 1 note/second to 10 notes/second over the course of 20 seconds. I guess I'll have to express it in note values for midi export, so 1/4 to 1/40 in 5 bars of tempo 60? All attempts so far have resulted in audible rhythmic steps, so how can I achieve this as seamless as possible with minimal rhythmic shifts?

  6. Started by erka,

    Which of these are ( aren't) supported input forms for Opusmodus-functions and should be supported by selfmade functions: a: (s e5 q a3 s d4 e d2) b: ((s e5 q a3 ) (s d4 e d2)) c (s e5 q a3 (s d4 e d2)) d: ((s e5 q a3 s d4 e d2)) e: (((s e5 q a3 ) (s d4 e d2))) f: ((e5 a3) (s d4 e d2)) g: ((e5 a3) (s t q) (s d4 e d2)) h: (((s e5 q a3 ) (s d4 e d2)) ((s e5 q a3 ) (s d4 e d2)))

  7. Started by Veit,

    How can I create a random set of lengths that follows a defined trend, for example: Create a rhythm over 4 bars that starts with only q and e. then accelerating up to bar 3 where it reaches lengths down to t and then decellerating back again until the end of bar 4.

  8. Started by Veit,

    Hey everyone, I am wondering how, in general, I can achieve some kind of "meta"-process over a number of repeated random tasks. Example: Create 20 notes deriving from c4 with rnd-variance, starting at variance 0.1 and ending at 2. -> Starting point: (gen-loop 20 (rnd-variance 60 0.1) ) -> Last processed instance should be (rnd-variance 60 2)

  9. Greetings, I've been working my way through the "Fundamentals of Composition with Opusmodus" book since my copy arrived on Monday. It's been a great help adjusting my brain from OpenMusic to Opusmodus. I'm currently working through section "2.4.2.5 Rhythm 5." In the code on page 92, there are a series of 8 lines that use "omn-dictum" to change all the pitches for each of the previously-generated rhythms to the correct general-midi pitches for the non-pitched percussion sounds (bass drum, bongos, congas, etc.). For example: (setf bass-drum (omn-dictum '(:all b1) rhythm1)) (setf low-wood-block (omn-dictum '(:all f5) rhythm2)) I found release n…

  10. Started by AM,

    dear all i would like to send some specific data via OSC to MAX... i can send "something" to max (defparameter max '(127.0.0.1 7500)) ;; that works SEND data to MAX and i would like to send the following seq to MAX by OSC /player "12" 1.0 1.0 1.0 but how to do it / format it in OMPO? ;; data should be "113" 1 1. 25000 => but how to "format"? -> see the MAX form ;; ??? (send-osc-data (create-osc-thread "player" max) data) /player is sended but not the rest of teh sequence here is a screenshot from MAX, it worked with an external library (in CCL) but i would like to do …

  11. I try to work myself through the docs of counterpoint and I encountered this: (setf voices (counterpoint (list p1 p2) '(((1 2 1 2) :methods (r - (ri dl5) (r dl2)))))) (ps 'gm :fl (list (1~ voices)) :cl (list (2~ voices)) :hn (list (3~ voices)) :vc (list (4~ voices)) ) I searched the whole documentation. There is also no mention in the book. Could it be included in the counterpoint document if it is specific to counterpoint ? Can this function be used in other contexts, too?

  12. Started by AM,

    dear all i want to code a simple function for sending midi-cc in an "all-in-one"-function (to external devices like filterbank or microcosm) it works more or less.... but there are two bugs i can't fix. the function: (defun filterbank (&key cc value-range (time-range '(1 127)) (port 7) (channel 16)) (let ((values (loop for i in (rnd-sample 100 (gen-integer (first value-range) (second value-range))) for j in (gen-length (gen-integer (first time-range) (second time-range)) 1/128) collect (list i j)))) (live-coding-midi (compile-score (def-score cc-seq (:tit…

  13. Started by erka,

    With length-modify it seems that I can either modify notes or rests or random. length-modify.pdf: type 'r (rest) or 'n (note) or '? (at random), if not specified random type is used. Wouldn't :type 'all also be useful? I could use it for what I am doing now. Now I realized it by calling :type 'n and :type 'r one after the other. Is there another function that would modify all (rest and notes)?

  14. Started by born,

    Is there a function with which I can change randomly a defined number of lengths in a list to rests? Thanks, Achim

  15. Started by erka,

    Hi, I have this list of lists (will have much more sublists) : '((s -s s== -s -s== s== -s s -s s -s s -s==) (s== -s s -s s== -s s -s== s== -s s -s s -s==) (s -s== s -s s -s s== -s s -s==)) I want to append e.g. a 'q to the end of each list. Is there a function I could use? How would you do this?

    • 4 replies
    • 730 views
  16. Started by GenzoH,

    Hi! I’m new to Opusmodus but I think it is one of the most amazing software programs I’ve ever used. It just blowed my mind with the possibilities it has. Although I still don’t know how to do anything but simple things, I would like to ask you if there’s a way to remotely execute lines of code via MIDI or OSC messages. That would be an incredible feature! Thanks a lot and forgive me if I start to open new topics with weird questions! ivan

  17. Started by Avner Dorman,

    Is there a simple way to repeat a list until it is the length of another list? Basically do the same thing that make-omn does but for other parameters. For example if I have a list of numbers '(4 3 2) and pitches '(a4 b4 c4 d4 e4), I would like to repeat the numbers until there are exactly the same number of elements in each list. Thanks!

  18. Started by o_e,

    Hi, Is it possible to create compound rhythms like this with ql? (q_3q 3q 3q_q.) Thanks!

  19. Started by JulioHerrlein,

    I´m studying the Dictum function. For example, this: (setf omn4 '((e b4 fs5 e3 a5) (e e5 b5 c4) (e g5 a4 eb3 d4) (e c6 b5 a4) (e c5 eb5 gs4) (e b4 f5 f5 fs5 gs5 a5) (e cs4 g4 c6) (e gs5))) (dictum '((:butlast leg :bar (1 3 6)) (:apply stacc :bar (2 4 5)) (:any e :apply q :bar (1 3 6)) (:first p :bar 1) (:apply < :bar 1 :event 2) (:apply ff :bar 4) (:apply > :bar 5) (:apply < :bar 7..8) (:apply fff :bar 8) (:last fermata :bar 8)) omn4) ;give me this as result ((…

    • 5 replies
    • 1.1k views
  20. Started by fdsdb,

    Hi All, I apologize in advance if off topic or already resolved somwhere (I have not found anything). I am using this notation: (setf cell8 '(-q w e6 ppp<>ppp trem+nh-d -q)) to obtain a single whole note with diamond head, inside two quarter rests. However I obtain a wrong result and I don't know how to obtain final quarter rest in the place of another diamond note; here is the wrong result: Thank you in advance, ciao Fabio

  21. Started by o_e,

    Hi, What I want is the first pict: What I get, when I use this: (setf rhy '(e e 3q = = tie e e)) is seen in the second pict, what am I missing? Ok, I found the solution, writing 3q 3q 3q instead of 3q = = But then I stumbeled over the next problem, how can I use span with such tied rhymths? What I want is this: what I get with span is this: (setf line '(( c4 d4 e4 f4)( g4 a4))) (setf rhy '(e e tie 3q 3q 3q tie e e tie 3q tie 3q 3q)) (setf pit (span rhy line)) (make-omn :length rhy :pitch pit)

  22. Started by Thistle,

    Hello! It is possible for Opusmodus users to view and edit existing functions in the OMN Library? Thank you! David

  23. Started by JulioHerrlein,

    Hello, Friends I´d like to ask if there is some support in MusicXML for Stemlet notation (as in the example below) and if it can be accomplished in the OMN Lingo. I like this kind of writing for rhythmic stuff (the downbeat is more clear, IMHO). All the best, Julio

  24. hi all little question: i would like to SORT an (single-event)-list by pitch... and be able to keep the event-data "in the set" (=> the attribute-cents should be bound to pitch!) ((e e4 mf) (e a4 mf) (e d5 mf) (e g5 mf) (e b5 mf) (e d6 mf) (e b4 mf 2c) (e e5 mf 2c) (e a5 mf 2c) (e d6 mf 2c) (e fs6 mf 2c) (e a6 mf 2c) (e e5 mf) (e a5 mf) (e d6 mf) (e g6 mf) (e b6 mf) (e d7 mf) (e gs5 mf -14c) (e cs6 mf -14c) (e fs6 mf -14c) (e b6 mf -14c) (e eb7 mf -14c) (e fs7 mf -14c) (e b5 mf 2c) (e e6 mf 2c) (e a6 mf 2c) (e d7 mf 2c) (e fs7 mf 2c) (e a7 mf 2c) (e d6 mf -31c) (e g6 mf -31c) (e c7 mf -31c) (e f7 mf -31c) (e a7 mf -31c) (e c8 mf -31c)…

  25. Started by o_e,

    Hi, Why does the first example work and the second don't, what am I missing? Thanks! (setf eins '((q d4 e4 fs4 gs4) (q d4 e4 fs4 gs4) (q d4 e4 fs4 gs4))) (unfold 'om '((pause 2)) eins) => ((q d4 e4 fs4 gs4) (-w) (q d4 e4 fs4 gs4)) (unfold 'om '((pause 2 2)) eins) => ((q d4 e4 fs4 gs4) (q d4 mf e4 fs4 gs4) (q d4 e4 fs4 gs4))


Copyright © 2014-2025 Opusmodus™ Ltd. All rights reserved.
Product features, specifications, system requirements and availability are subject to change without notice.
Opusmodus, the Opusmodus logo, and other Opusmodus trademarks are either registered trademarks or trademarks of Opusmodus Ltd.
All other trademarks contained herein are the property of their respective owners.

Powered by Invision Community

Important Information

Terms of Use Privacy Policy