Jump to content
View in the app

A better way to browse. Learn more.

Opusmodus

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Hello, friends !

I'm trying to make some rhythm patterns and I'd like to use the same pattern

 changing just the time signature order/or sequence.

For example, assuming an 8th note as the number 1.

2 2 1 2 2 2 1 (african bembé rhythm) as a pattern.

This pattern could match in a 12/8 time signature or also

 in a 3/4 time signature. This is ok, no problem.

But what if I like to span it as a 10/8 + 2/8 or 9/8 + 3/8

 or 7/8 + 5/8 or in a sequence like 3/8 + 2/8 + 4/8 + 3/8 always

 repeating the time signature sequences until have al the notes

 spanned ?

 

Thanks for help !

Best !

Julio

 

This works for me with ONE time signature only. I need the same

 stuff with a SEQUENCE of time signatures.

 

(setf padrao '((0 1 2 3)))
(setf pitches '((g4 g4 g4 g4  HERE COME THE PITCH LIST,  padrao :type :pitch)))
(setf lengths (span pitches '(e e -e e HERE COMES THE Rhythm pattern list - same size or less than the pitches)))
(setf text (span pitches padrao))

(def-score Stage-1
           (:key-signature 'chromatic
            :time-signature '(4 4)
            :tempo 80
            :layout (treble-layout 'piano-rh))
 (piano-rh
   :length lengths
   :pitch pitches
   ;text text
   :channel 1
   :sound 'gm
   :program 'clarinet)
)

 

  • Author

This is even more simple:

 

(setf pitches '((g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 g4 HERE COMES THE Pitch List :type :pitch)))
(setf lengths (span pitches '(e -e -e -e HERE COMES THE Rhythm pattern list - same size or less than the pitches)))
(def-score Stage-1
           (:key-signature 'chromatic
            :time-signature '(4 4) '(1 8)  >>>>>>>> Here is the problem: How to span the content through different Time Signatures using the same rhythm list and pitches ?
            :tempo 80
            :layout (treble-layout 'piano-rh))
 (piano-rh
   :length lengths
   :pitch pitches
   :channel 1
   :sound 'gm
   :program 'clarinet)
)

for example if you need 3 bars of 3/4 and 2 of 6/8 you can write:

:time-signature '((3 4 3)(6 8 2))

 

you can also separate your length material with gen-divide and get the time signature.

Example here:

 

(setf some-pitches (integer-to-pitch (gen-integer-step 0 64 '(2 1 2 3 -2 -1 -2 -1 -2))))
(setf some-lengths (rnd-sample (length some-pitches) '(e e -e e)))

(setf some-division '(8 12 8 6 9))
(setf length-div (gen-divide some-division some-lengths))

(setf time-sig (get-time-signature length-div))

(def-score time
           (
            :key-signature 'chromatic
            :time-signature time-sig
            :tempo 112
            :layout (clarinet-layout 'clarinet)
            )

(clarinet
 :length length-div
 :pitch some-pitches
 :channel 1
 :sound 'gm
 :program 'clarinet
 ))

SB.

 

  • Author

Thanks a lot, Stephane ! This is great ! And thank you for

 showing me more functions.

However, there some issues: how to control to get a 12/8 instead of a 6/4?

Or: how to get always a time signature with x/8 ? Or always

with a X/4, or mix them ?

In the example you provide, a 12 generates a 6/4 instead of a 12/8.

I changed the code a little:

 

(setf some-pitches (integer-to-pitch (gen-integer-step 7 480 '(0))))

;>>> here, because I want to stay in the same note g4
(setf lengths (span some-pitches '(q q e q q q e)))

;>>> here, because I want this specific rhythm, not random sample
(setf some-division '(21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3))

;here, there's that problem of 6/4 versus 12/8 and one more problem occurred because OM stop changing the timesignature after the  number 14 (xml attached) I don't know why.
(setf length-div (gen-divide some-division some-lengths))
(setf time-sig (get-time-signature length-div))
(def-score time
           (
            :key-signature 'chromatic
            :time-signature time-sig
            :tempo 112
            :layout (clarinet-layout 'clarinet)
            )

(clarinet
 :length lengths
 :pitch some-pitches
 :channel 1
 :sound 'gm
 :program 'clarinet
 ))

 

Best !!

Julio

test_timesigchange21to3.xml

  • Author

I just read now the first line of your message.

Thanks, Stephane !

Best,

Julio

To get the intended time signature:

:time-signature '((6 8 1) (12 8 2) (4 8 2)) ; etc...

 

Good example with series of time signature values you will find in Webern 'Variationen Fuer Klavier Op.27, II' score in the Utilities panel:

'Score Examples/Webern'.

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.