Jump to content

AM

Members
  • Posts

    792
  • Joined

  • Last visited

Posts posted by AM

  1. okay, i understand... i'm "not working" with '(q e q...), i'm always working with NUMBERS (with pitches too). it's easier to write/handle the values, easier to do my own specific code (and multipy, add... whatever) - only on "def-score" i'm changing the representation by generating OMN...

     

    regards,

    andré

  2. 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))

  3. 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

  4. 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é

     

  5. 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))

     

  6. 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

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

     

  8. 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é
     
     
  9. 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"....

     

     

  10. 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é

     

  11. 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é

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy