Jump to content

AndreOktave

Members
  • Posts

    28
  • Joined

  • Last visited

Posts posted by AndreOktave

  1. I understand that ra is gen-retrograde and that if I use :extend s it starts as wanted and is displayed correctly, that is the solution for the example:

    #|31|# ((2 - 2) :extend s :span 6/4 :methods ((la2 ra) - (la2 ra t-12)) :tempo 112)
    

    perfect, violin and violoncello are displayed!

     

    but, 

     

    different example:

     

    with :extend s this example

       #|31|# ((2 - 2) :extend s  :span 6/4 :methods (la2   - (la2 ra t-12)) )

    shows the Violin in the score

     

    and with :extend e

       #|31|# ((2 - 2) :extend e  :span 6/4 :methods (la2   - (la2 ra t-12)) )

    the score shows the violoncello

     

    I could make a new seq (problem that it is a 6/4?):

    (setf seq4 '(he b4 p def q bb4 mp> leg q. g4 p def q f4 leg))

     

    #|31|# ((2 - 4) :extend s  :span 6/4 :methods (la2   - t-12) )

     

    but that does not work either?

     

     

     

  2.     (Progn

    (setf seq1 '((s c4 p leg e. cs4 mp ten+def e e4 p leg q. fs4 pp def )))

    (setf seq2 '((e f4  p leg e. g4 def e bb4 mp> leg qs b4 def)))

    (setf seq3 '((e. eb4  p leg qs d4 def s gs4 mf leg e. a4 def)))

     

    (setf dictum-d

    '(

       #|31|# ((2 - 2) :span 6/4 :methods ((la2 ra ) - (la2 ra t-12)) :tempo 112)

       #|32|# ((3 3 3) :span 3/4 :methods (- - - ))

       #|33|# ((- 2 - ) :span 6/4 :methods ((ra la2) (ra la2 ) (ra la2 t-12 )):tempo 112)))

    (setf globals-d '(- - -))

     

    (counterpoint (list seq1 seq2 seq3) dictum-d :global-methods globals-d :index 'sec-d)

     

    (ps 'VSL_ss

        :vslv1 (list sec-d1)

        :vslvla (list sec-d2)

        :vslvlc (list sec-d3)

        :tempo  tempo-sec-d ) )

     

    With this code I would expect:

    image.png.af6edee451eaa04989481741a034b8ba.png

     

    but I get this?

    image.png.520eb1be19057fbeeae6a35c3bda8ff2.png

    Think you for any hint,

    best wishes

     

    Version 3.0.29235 (3.0.29235)

     

     

     

    image.png

  3.  

    thank you for the correction!

     

    your score with changed global-method:

    if I use (setf globals-d '(- - -)(line 53) instead I get nearly the same as your score example(see picture). The fact that the viola is an eighth left (the * in bar 3) makes it more difficult to understand what is happening, and I do not understand the different pitches compared with your score. 

     

    =====

     

    global augmentation should double the length of a bar in my understanding (of course I could half the tempo instead, but than it affects all voices at the same time, so I find it interesting using (la2 la3 -) at the same time) Anyway, this all is very easy in any score editor and not a real problem, same with moving the material left or right in time.

     

    I really appreciate the software, it has played a role in my work in recent years, but never actually as a complete algorithm...

     

    best wishes

     

     

    Bildschirmfoto 2024-04-15 um 13.50.55.png

  4. I found some outcome, which I don't understand:

    1) The * in the methods seems to work not correctly with oddmeter bars (see start of Viola bar 5 ff)

    2) If I use  la2 and la3 in global methods it seems not working correct (see bar bar 11 ff Viola)

     

    Wouldn't it perhaps even be an interesting possibility if you could shift certain parts of the voices by rhythmic values in a controlled way, so that phrases could start earlier or later? Or is that already possible?

     

    thank you very much

    best wishes

    (Progn
    (init-seed 73549)
    (setf seq1 '(s c4 mf stacc e. cs4 mp ten+def e e4 p leg q. fs4 pp def)) 
    (setf seq2 '(e f4  p leg e. g4 def e bb4 mp> leg qs b4 def))
    (setf seq3 '(e. eb4  p leg qs d4 def s gs4 mf leg e. a4 def))
    
    (setf dictum-a
     '( 
       #|1|# ((1 1 1) :span nil :methods (- (ra  t4) (i t5 )) :tempo 84)
       #|2|# ((1 2 1) :span 4/8 :methods ((la3 t10 i) (ra t-9) (la2)))
       #|3|# ((3 * 3) :span 5/8 :methods ((i t5 lis) - (t2 i)) )
       #|4|# ((1 - 1) :span nil :methods (r - (ra t-8)))))
    
    ;;=============
    (setf dictum-b
     '(
       #|5|# ((- 2 -) :span nil :methods (- t-12 -) :tempo 112)
       #|6|# ((1 - 1) :span nil :methods (r - (ra t-8)))))
    
    ;;===============
    (setf dictum-c
     '(
       #|7|# ((- 3 -) :span nil :methods (ld22 t-12 ld22) :tempo 63)
       #|8|# ((1 2 1) :span 5/8 :methods (tie-bar - (t6 rl ri)))))
    
    ;;===============
    (setf dictum-d
     '(
       #|9|# ((2 - 2) :span nil :methods (ra - t2) :tempo 112)
        #|10|# ((3 3 3) :span nil :methods ? )
     #|11|# ((1 1 1) :sequence (1 2 3) :span nil :methods ((ra la2) (ra la2) (ra la2)):tempo 112)))
    
    ;;===============
    (setf dictum-e
     '(
       #|12|# ((1 1 1) :span nil :methods (- - (i t5 )):tempo 96)
        #|13|# ((1 1 1) :span 4/4 :methods ((ra la2 ) (ra la2 t-12) (ra la2 t-24)))))
      
    (setf globals-a '(- - -))
    (setf globals-b '(- - -))
    (setf globals-c '(- - -))
    (setf globals-d '(la3 la2 la3))
    (setf globals-e '(- - -))
    
    (counterpoint (list seq1 seq2 seq3) dictum-a :global-methods globals-a :index 'sec-a)
    (counterpoint (list seq1 seq2 seq3) dictum-b :global-methods globals-b :index 'sec-b)
    (counterpoint (list seq1 seq2 seq3) dictum-c :global-methods globals-c :index 'sec-c)
    (counterpoint (list seq1 seq2 seq3) dictum-d :global-methods globals-d :index 'sec-d)
    (counterpoint (list seq1 seq2 seq3) dictum-e :global-methods globals-e :index 'sec-e)
    
    (setf violin (assemble-seq sec-a1 sec-b1 sec-c1 sec-d1 sec-e1))
    (setf violindic (dictum '((:if qs :do trem  :bar (3..9)) (:do ponte :bar (35..40))) violin))
    (setf viola (assemble-seq sec-a2 sec-b2 sec-c2 sec-d2 sec-e2))
    (setf violadic (dictum '((:if qs :do trem  :bar (3..9)) (:do ponte :bar (35..40))) viola))
    (setf violoncello (assemble-seq sec-a3 sec-b3 sec-c3 sec-d3 sec-e3))
    (setf violoncellodic (dictum '((:if qs :do trem  :bar (3..9)) (:first pizz :bar 4 ) (:do ponte :bar (35..40))) violoncello))
    
     (ps 'VSL_ss
        :vslv1 (list violindic)
        :vslvla (list violadic)
        :vslvlc (list violoncellodic)
        :tempo (assemble-seq tempo-sec-a tempo-sec-b tempo-sec-c tempo-sec-d tempo-sec-e)
     )
    
    (init-seed nil)
    )


     

    Bildschirmfoto 2024-04-15 um 10.09.49.png

  5. I do not understand the outcome, if I use augmentation inside the counterpoint function. See example, in my understanding: bar 3 should be empty and the clarinet should start again in bar 4!? Is it only possible to use augmentation in all voices at the same time, why does the time signature is different from span in bar 2? 

    Did I get something wrong?

     

    Best wishes 

     

    (setf seq1 '(s c4 mf e. cs4 e e4 q. fs4 tie q fs4)) 
    (setf seq2 '(e f4 e. g4 s bb4 e b4))
    (setf seq3 '( s d4 qs eb4 s gs4 e. a4))
    
    (counterpoint
     (list seq1 seq2 seq3)
     '(
       #|1|# ((1 - 1) :span nil :methods (- - (i t5)))
       #|2|# ((1 2 1) :span 4/8 :methods ((la2 t10 i) - la2))
       #|3|# ((- - -) :span 3/8 :methods (- - -))
       #|4|# ((- 1 -) :span nil :methods (- - -))
       )
     :global-methods '(- - -)
     :global-polyphony nil
     :index 'vox
     )
     
    (ps 'gm
        :fl (list vox1)
        :cl (list vox2)
        :hn (list vox3))

     

    image.png.51ff258dc7dc8d6c6cb6d665a3d9b62a.png

  6. Hello,
    I'm trying to write a soundset for audio modeling swap instruments. There are keyswitches that control different playing styles on the same "key" by different velocity values. (Example strings: C soft bow / medium pizzicato / strong Lego) Can someone help me how to include velocity values in to the soundset?
    Thank you very much
    best wishes AO

  7. Hello,

     

    I am trying to assign articulations (attributes) to certain note lengths

     

    my attempt:

    (setf omn '((q e3 p -q s a4) (s f3 mp -s) (e g3 mf)))
    (setf rh (omn :length omn))
    ;=> ((1/4 -1/4 1/16) (1/16 -1/16) (1/8))
    
    ;; how is it possible to convert the ratios to omn-notation?:
    (setf rhomn '((q -q s) (s -s) (e)))
    
    (setf aq '(ord)
          as '(stacc)
          ae '(spicc)
          a-q '(-)
          a-s '(-))
    
    (setf art (assemble-section 'a (flatten rhomn)))
    
    ;;I don't understand how to handle the rests
    
    (setf pch (omn :pitch omn))
    (setf vel (omn :velocity omn))
    
    (make-omn :length rh
              :pitch pch
              :velocity vel
              :articulation art)
    ; => ((q e3 p ord - s a4 ord) (s f3 mp -) (e g3 mf stacc))

     

    Which method can I use to achieve the correct assignment of the attributes to the specific note lengths, in order to obtain this result?

    ((q e3 p ord -q s a4 stacc ) (s f3 mp stacc -s) (e g3 mf spicc))

     

    Thank you very much for any help or advice you can give me,
    best wishes
    AO

     

  8. Hi born,

     

    AM from this Forum wrote the following function:

     

    (under the topic Rhythmic Resultants)

     

    (progn
    (defun gen-resultant** (r)
      (difference (remove-duplicates 
                   (sort-asc (flatten (loop for i in r
                                        append (cons 0 (gen-accumulate i))))))))
    
    (setf rha '(1/4 1/8 1/8 1/12 1/12 1/12 -3/16 1/16))
    (setf rhb '(1/8 1/8 3/16 1/16 -1/8 1/8 1/16 -1/16 1/16 -1/16))
    
    (setf rr2 (gen-resultant** (list rha rhb)))
    
    (ps 'gm
        :rhy (list  rha)
        :rhy (list  rhb)
        :rhy (list rr2)
        :time-signature '(4 4 1)
     )
    )

     

    When putting your 2 rhythms into the function, the last beat is not correct, I don´t know why,

    perhaps this helps to find a solution for rhythmic resultants (Schillinger u.a.) in OM, what would be very to have I think.

     

    best wishes

    AO

     

    Bildschirmfoto 2023-05-18 um 16.25.53.png

  9. The lowest note of the tenor-sax is sounding ab2 (middle c = c4), wich is notated in the part for the player as bb3, the tenor sax sounds a 9th lower than written, your score is concert pitch, the lowest note of your example is f3 sounding (written as g4), so no problem for the tenor-player if he/she is performing the lowest voice of your example 🙂

     

    best AO

     

     

  10. Thank you very much, recording the playback of Opusmodus in Logic is what I actually did, would like to have the possibility to do some edits on the midi-level in Logic. Will check the Microtonality. doc, MTS informations are part of the Midifile or only of the xml-files?

    I understood, that notion app is for tablet or iphone only?

    In any case, thanks for the video!

     

    best wishes

     

  11. I have the question if it is possible to export a snippet as midi-file with the information about the midi-tuning. 

    If I play a omn via Opusmodus eg. (cmd 1) via gm or in my case via pianoteq I hear the quarter tons (If midi-tuning is activated in Pianoteq), exporting a midi File and import it eg. directly into the pianoteq plugin, the midi-tuning is not played any more. The same importing eg. a xml-File into Sibelius (quarter ton notation no problem) or a midi-file into Logic or Ableton.

     

    I would like to export scores as midi-files from Opusmodus with the possibility to keep the midi-tuning information, is there a solution?

     

    Thank you very much for any help.

     

    By the way, I bought an english copy of the new book about Opusmodus ("Fundamentals of composition with Opusmodus") very helpful, clarifying and interesting even for the somewhat experienced user.

     

    Best

    AO

     

     

  12. Hi André,

     

    thank you very much for your help, your codes are working very good and it is exactly what I was looking for... 

     

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

    ;;; example.... correct? 
    ;; Yes
    ;(gen-resultant  (primes-to 19) (reverse (primes-to 19)))

    ;; =================
    ;;;exactly what I was looking for, thanks alot!!!
    (progn
    (defun gen-resultant (r1 r2 &key (rhy 1/4))
      (gen-length (difference (remove-duplicates 
                               (sort-asc (flatten (append (cons 0 (gen-accumulate r1)) 
                                                          (cons 0 (gen-accumulate r2))))))) rhy))
    (setf r1a (primes-to 19))
    (setf r2a (reverse (primes-to 19)))
    ;; Resultant from r1a r2a
    (setf rr (gen-resultant r1a r2a :rhy 1/16))

    (setf r1b (gen-length r1a '16))
    (setf r2b (gen-length r2a '16))


    (ps 'gm
        :rhy (list  r1b)
        :rhy (list  r2b)
        :rhy (list rr)
        :time-signature '(4 4 1)
    )

     

    ....as long as there are no rests involved, rests are interpreted as attacks:

     

    (progn
    (defun gen-resultant* (r &key (rhy 1/4))
      (gen-length (difference (remove-duplicates 
                               (sort-asc (flatten (loop for i in r
                                                            append (cons 0 (gen-accumulate i)))))))
                  rhy))

    (setf r1c (gen-length '(16) '4))
    (setf r2c (gen-length '(9) '4))
    (setf r3c (gen-length '((3 1 4)) '4))
    (setf r4c (gen-length '(7) '4))

    ;; Resultant from r1c r2c r3c r4c
    (setf rrc (gen-resultant* '((16) 
                      (9) 
                      (3 1 4)
                      (7))))

    (ps 'gm
        :rhy (list  r1c)
        :rhy (list  r2c)
        :rhy (list  r3c)
        :rhy (list  r4c)
        :rhy (list rrc)
        :time-signature '(4 4 1)
    )
    )
     

     

    ... or:

     

    (progn
    (defun gen-resultant** (r)
      (difference (remove-duplicates 
                   (sort-asc (flatten (loop for i in r
                                        append (cons 0 (gen-accumulate i))))))))
    (setf rha '(2/4 1/4 3/4))
    (setf rhb '(1/16 3/16 2/12 1/12))
    (setf rhc '(3/4 3/20 2/20))

    (setf rr2 (gen-resultant** (list rha rhb rhc)))

    (ps 'gm
        :rhy (list  rha)
        :rhy (list  rhb)
        :rhy (list  rhc)
        :rhy (list rr2)
        :time-signature '(4 4 1)
    )
    )

     

    Thank you very much!

     

    best

    Stefan

     

×
×
  • Create New...

Important Information

Terms of Use Privacy Policy