Jump to content

AM

Members
  • Joined

  • Last visited

Posts posted by AM

  1. Posted

    hi all

     

    i would like to MERGE/FIT the following 3-layer-voices(-EXAMPLE) into a ONE-layer-voice (with complex rhythms) - is it possible in OPUSMODUS?

    thanx for help!

    andré

     

    EXAMPLE:

    (setf voices (merge-voices (make-omn :length (gen-length '(1 2 3 4 5 6 7 8) 1/20)
                                         :pitch '(c4)
                                         :velocity '(pppp ppp pp p))
                               
                               (make-omn :length (gen-length '(1 2 3 4 5 6 7 8) 1/8)
                                         :pitch '(c5)
                                         :velocity '(pppp ppp pp p))
                               
                               (make-omn :length (gen-length '(1 2 3 4 5 6 7 8) 1/12)
                                         :pitch '(c6)
                                         :velocity '(pppp ppp pp p))))


    (def-score example
               (:key-signature 'atonal
                               :time-signature '(4 4)
                               :tempo '(96)
                               :layout (treble-layout '3-layers))
     (3-layers
      :omn voices
      :channel 1
      :sound 'gm
      :program 1))

  2. Posted

    interesting bug: have a look at the 1/20-layer (c6) -> midi sounds correct (!), notation is wrong

     

    ;;;;;;;;;;;;;;;;;;;;


    (setf duration1 '(8 5 3 2 3 5 8))
    (setf duration2 '(8 5 3 2 3 5 8)) 
    (setf duration3 '(8 5 3 2 3 5 8))

    (setf voices (merge-voices (make-omn :length (gen-length duration1 1/20)
                                         :pitch '(c6))
                               (make-omn :length (gen-length duration2 1/32)
                                         :pitch '(b4))
                               (make-omn :length(gen-length duration3 1/8)
                                         :pitch '(as2))))


    (def-score voices
               (:key-signature '(c maj)
                               :time-signature '(4 4)
                               :tempo '(60))
      
      (piano
       :omn voices
       :channel 1
       :sound 'gm
       :program 0))

    (display-midi (compile-score 'voices) :display :quick-view)

     

    ;;;;;;;;;;;;;;;;;;;;

     

    56ddeae86b1c7_OhneTitel.thumb.jpg.22c4cd

  3. thanx, but midi don't like such VALUES  :-( - so it works only for notation (or sibelius/finale)...

     

    for the future it would be nice for my work (and perhaps interesting for other composers), when the time/rhythm-things could be more flexible - i think the biggest bounderies in opusmodus are the time/rhythm-things and it's notation (paper/pencil is the most flexible way, and i don't want to be a limited by software). if you work really "experimental" you want to map rhythm-values in a complexer way...

     

    for me it would be great and very nice, when it would be possible to notate/play such rhy-sequences like '(1/4 1/4 1/12 1/12 3/16 1/16....) with values that are not completing 1/4. at the moment OPUSMODUS is "correcting" this... (would be nice to have irregular time-signatures or bars with no time-signature!!!)....  

     

    in my work for example: i have programmed BOTS/non-trivial-machines, who are generating values "step-by-step" and the inner-state of the non-trivial-machine always changes its datas/memory (in a rnd-way). the result is, that the rhythm-values all the times are changing (more or less like in the special-bars-examples). and because it's not possible to calculate the output of the non-trivial-machine (that's the natural constitution of them), it's not possible to "fit the rhyhm-values" into prefiexed-bar-structures. that's a problem for my work and so i have to write such strange programs who fix the complicated rhy-changes :-)

     

    thanx for your great work!!!

    andré

     

  4. a solution: perhaps it's interesting for anyone (or as an example for OPMUSMODUS-implementation) - a simple function (programmed by a friend and myself)  - not very smart but it (should) work(s) :-)

    greetings

    a.

    (defun time-sign-changes (durations rhys &key (complex-bars 'nil))
      (if (equal complex-bars 'nil)
          (loop 
            for i in durations
            for j in rhys
            with sum = 0
            with last-j = (first durations)
            when (and (/= j last-j) (/= sum 0))
            collect (list (numerator sum) (denominator sum) 1) into bag and do (setq sum 0)
            do (setq sum (+ sum (abs (* i j))))
            when (> sum 1/4)
            collect '(1 4 1) into bag and do (setq sum (- sum 1/4))
            do (setq last-j j)
            finally (return (append bag (list (list (numerator sum) (denominator sum) 1)))))
        (loop 
          for i in durations
          for j in rhys
          with sum = 0
          with last-j = (first durations)
          when (and (/= j last-j) (/= sum 0))
          collect (list (numerator sum) (denominator sum) 1) into bag and do (setq sum 0)
          do (setq sum (+ sum (abs (* i j))))
          when (> sum 1/2)
          collect '(1 2 1) into bag and do (setq sum (- sum 1/2))
          do (setq last-j j)
          finally (return (append bag (list (list (numerator sum) (denominator sum) 1)))))))

     

    (setq durations '(-1 2 3 4 3 2 -5 4 3 2 4 3 1 7)) 
    (setq rhythms '(1/32 1/32 1/32 1/32 1/20 1/20 1/20 1/20 1/20 1/12 1/12 1/12))
    
    ;;creating the lengths
    (setq lengths (loop 
                    for i in durations
                    for j in rhythms
                    collect (* i j)))
    
    ;; creating the bar-changes -> :complex-bars 'nil or 't
    (setq bars (time-sign-changes durations
                                  rhythms
                                   :complex-bars 'nil))

     

    (def-score solo 
               (:title "example" 
                       :key-signature 'atonal
                       :time-signature bars
                       :tempo '90 
                       :layout (treble-layout 'example)) 
      (example 
       :omn  (make-omn
             :pitch '(c4)      
             :length lengths)
       :channel 1  
       :volume 100 
       :sound 'gm))

     

  5. seems to be a bug...

    evaluate this: 

    (make-omn
             :pitch '(c5 c3 c2 c3 c4)
             :length '(-2/12 2/12 -1/12 6/12 -1/12 3/12 1/12)                           
             :velocity '(mf))

     

    after the 6/12 the next value -1/12 is shown as -1/8 in the score

    score 
    exa.thumb.jpg.d3953e489ff5da45f0eb5f85da

  6. Posted

    when i evaluate this:

    (make-omn
             :pitch '(c5)
             :length '(3/12 -1/12 4/12 -1/20 3/20 1/20)                           
             :velocity '(mf))

     

    the result is wrong (look at (3/12 -1/12 4/12).... but i would like to notate something like valeur ajoutée

    isn't it possible? thanx a.

     

    example.thumb.jpg.70547778e4c126771e3f34

     

  7. Posted

    little lisp-problem/question with &optionel / &key... 

    here are two test-programs to explore keyword and optional paramters

     

     

    this test-program works

     

    (defun test1 (liste  add  &key (add-on/off))
      (loop for i in liste 
        when (equal add-on/off 'on)
        collect (+ i add)
        else collect i))
     
    (test1 '(1 2 3 4 5) 100 :add-on/off 'on)
     
     
    this version with &optional don't work... why? 
     
    (defun test2 (liste  add &optional (x 10) &key (add-on/off))
      (loop for i in liste 
        when (equal add-on/off 'on)
        collect (+ i add x)
        else collect i))
     
    (test2 '(1 2 3 4 5) 100 :add-on/off 'on)
     
    > Error: While compiling test2 :
    >        Bad lambda list : (liste add &key add-on/off &optional (x 10)), in process Listener-1(7).
     
     
     
    thanx for help
    andré
     
     
  8. POLYTEMPO: would be great and very interesting! here is the technology to do/perform this LIVE on STAGE... http://www.smc-conference.net/smc-icmc-2014/images/proceedings/PS2-B03-PolytempoNetwork.pdf. (by philippe kocher - institute for computer music and sound technology zurich university of art). 

    it works simple and fantastic!!

     

    MICROTONAL: i prefer  (q c4.0456) but i would like more (or as an option) 60.0456 (via midi-note-number), so you could work/calculate directly with numbers and "pure lisp-code"....

     

     

  9. it works in PWGL, not really for notation but i can listen/programm/simulate polytempo-scores in midi (or other players).  so i could transfer my lisp-code to pwgl-boxes... etc...

    but i would be nice, if i could do it in OPUSMODUS, no boxes etc...  :-)

     

    best wishes

    andré

     

  10. Posted

    short question...

     

    i've programmed a score with special bars like... ......3/20 5/16 7/12 3/32 1/10....... etc.

    musicXML/notation has no problem with it, but MIDI can not play it (errors)!!!  it works, when i do an musicXML-export to SIBLEIUS... score/notation is okay, and no playback-problems on SIBELIUS.

    but it would be nice, if i could simulate it directly on OM via MIDI (an later with the contimbre-library).

     

    where is the problem? or is there a solution..?

    thanx for help

    andré

     

  11. thanks for you answer. but it seems that the nancarrow/carter-idea is not possible with opusmodus.... because i would like to programm a SCORE. best way for me would be, if i could combine two or more different (setups/tempi) "def-score"s to a MAIN-score.... 

     

    but anyway, thanks!!!!!!

    andré

  12. Posted

    dear users and opusmodus-guys

     

    i'm an OPUSMODUS-newby, very happy with this direct and cool LISP-programming!

    now the question: i would like to create an polytempo-score

     

    for example:

    this BOTS (bot1-bot4) are playing/written in ONE score with ONE tempo - is it possible to create a score, so that every bot has his own tempo?

    in extremis: bot1 = 90bpm, bot2 = 91bpm... etc... like in "ars subtilior", but not with a modification of rhythm/duration...

     

    thanks for you support - perhaps it's very simple, i don't know...

    andré

     

    further informations to ploytempo etc... http://www.greschak.com/polytempo/ptword.htm

     

     

    -------my simple score-OMN with "material"  bot1 to bot4

     

    (def-score multi-bots 
               (:title "multi-bots"
                :key-signature 'atonal
                :time-signature '(4 4)
                :tempo 90
                :layout (bracket-group 
                         (treble-layout 'bot1) (treble-layout 'bot2) (treble-layout 'bot3) (treble-layout 'bot4)))
      (bot1
       :omn mat_bot1
       :channel 1  
       :sound 'gm  
       :program 'acoustic-grand-piano)
      (bot2
       :omn mat_bot2
       :channel 2
       :sound 'gm 
       :program 'acoustic-grand-piano)
      (bot3
       :omn mat_bot3
       :channel 3
       :sound 'gm 
       :program 'acoustic-grand-piano)
      (bot4
       :omn mat_bot4
       :channel 4
       :sound 'gm 
       :program 'acoustic-grand-piano))    


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