Jump to content

Featured Replies

Posted

Hi all,

is there a function/ method to merge several rhythms into one which is displaying all the onsets of these rhythms.

Here the first two systems are merged into the third.

Thanks for help.

Achim

 

image.png.a0b55e32b0e63faf4f933484595c5677.png

There is a merge-voices function.

(setf r1 '(q e e 3q 3q 3q -e. s))
(setf r2 '(e e e. s -e e s -s s -s))
(setf r3 (merge-voices r1 r2))
=> '(z^q c4 e e z^e e^e. s^e s 3q 3e^3q 3e^e 3q s - c4 c4)

(omn :length r3)

 

The output looks different from what you expect.  The z^ is not really documented in the omn-language-description but has to do with the :duration in make-omn. You see it in the merge-voices doc. Merge-voices is for omn-lists. It will add a c4 as default if only length are in the list.

 

With:

(omn :length r3)

 

you get this: 

(0 1/8 1/8 0 1/8 1/16 1/16 1/12 1/24 1/24 1/12 1/16 -1/16 1/16 1/16)

 

What the 0 means I don't know.

 

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

  • 2 weeks later...

The new function UNIFY-RHYTHMS will solve your problem - 3.0.28916
 

Examples:

 

(setf l1 '(q e e 3q 3q 3q -e. s))
(setf l2 '(e e e. s -e e s -s s -s))

 

(list l1 l2) ; select and press cmd-2

 image.png

 

(unify-rhythms l1 l2)

image.png

 

(setf r1 (rhythm-series 6 5 3/8 :length '(q. e. e s 3q)))
(setf r2 (rhythm-series 6 4 1/2 :length '(q. e. e s 3q)))
(setf r3 (rhythm-series 6 3 1/2 :length '(q. e. e s 3q)))

 

(list r1 r2 r3) ; select and press cmd-2

 

image.png

 

Now we merge all three voices to form a single entity:

 

(unify-rhythms r1 r2 r3)

 

image.png

 

 

 

great!

 

(progn
  (setf r1 (gen-length '(11 13 7 17 13 11 17 23 19 2 17 5) 1/20))
  (setf r2 (gen-length '(11 13 7 17 13 11) 1/8))

  (unify-rhythms r1 r2))

 

Bildschirmfoto2023-05-29um19_52_11.thumb.png.781fb52366b4237e35bdfa6ad1c39227.png

Create an account or sign in to comment


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