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

Display Issues with Quintuplets and Septuplets with Rests in OMN

Featured Replies

Hi,

I have a valid rhythmic notation (quarter notes, eighth notes, triplets, etc.) where only quintuplets and septuplets display incorrectly as soon as rests are included in the group (-5q, -7q).
Triplets don't cause any problems, but for 5 and 7, the grouping breaks (incorrect braces), as if the engine is closing/reopening the tuplets.

Is this a known limitation of how rests are handled within odd-numbered tuplets (5, 7) in OMN, or is there a strict rule to follow to avoid this behavior?

Thank you for your help.

image.png

(setf accent '((q -q -q )

(e -e -e e -e -e)

(3q -3q -3q 3q -3q -3q 3q -3q -3q)

(s -s -s s -s -s s -s -s s -s -s)

(5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q)

(6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q)

(7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q)

(8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q)

(8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q)

(7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q)

(6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q)

(5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q)

(s -s -s s -s -s s -s -s s -s -s)

(3q -3q -3q 3q -3q -3q 3q -3q -3q)

(e -e -e e -e -e)

(q -q -q)))

(setf pitacc '(e4 ;(1 notes)

e4 fs4 ;(2 notes)

e4 fs4 g4 ;(3 notes)

e4 fs4 g4 fs4 ;( 4 notes)

e4 fs4 g4 fs4 g4 ;(5 notes)

e4 fs4 g4 fs4 g4 a4 ;(6 notes)

e4 fs4 g4 fs4 g4 a4 g4 ;(7 notes)

e4 fs4 g4 fs4 g4 a4 g4 a4 ;(8 notes)

e4 fs4 g4 fs4 g4 a4 g4 a4 ;(8 notes)

e4 fs4 g4 fs4 g4 a4 g4 ;(7 notes)

e4 fs4 g4 fs4 g4 a4 ;(6 notes)

e4 fs4 g4 fs4 g4 ;(5 notes)

e4 fs4 g4 fs4 ;( 4 notes)

e4 fs4 g4 ;(3 notes)

e4 fs4 ;(2 notes)

e4 ;(1 notes)

))

(setf exo3acc (omn-to-time-signature (make-omn

:length accent

:pitch pitacc)

'(3 4)))

same with def-score

image.png.cc0ceb6b45e98a9229993aa26273bcbd.png

(def-score kona-score

(:title "kona"

:key-signature 'atonal

:time-signature '(3 4)

:tempo 50)

(instrument

:omn exo3acc

:channel 1

:sound 'gm

:program 'acoustic-grand-piano))

Don't know why, but here's a more algorithmic approach to the lists.

Jesper

(setf accent1 (loop for i from 3 to 24 by 3 and j from 1 collect

(gen-repeat j (cons (/ 3/4 i) (make-list 2 :initial-element (- (/ 3/4 i)))))))

(setf accent (append accent1 (reverse accent1)))

(setf pitacc1 (loop for i from 7 downto 0 collect (butlast '(e4 fs4 g4 fs4 g4 a4 g4 a4) i)))

(setf pitacc (append pitacc1 (reverse pitacc1)))

(setf exo3acc (omn-to-time-signature (make-omn :length accent :pitch pitacc) '(3 4)))

Or

(setf accent (loop for i from 3 to 24 by 3 and j from 1 collect

(gen-repeat j (cons (/ 3/4 i) (make-list 2 :initial-element (- (/ 3/4 i)))))))

(setf pitacc (loop for i from 7 downto 0 collect (butlast '(e4 fs4 g4 fs4 g4 a4 g4 a4) i)))

(setf exo3acc1 (make-omn :length accent :pitch pitacc))

(setf exo3acc (omn-to-time-signature (append exo3acc1 (reverse exo3acc1)) '(3 4)))

Jesper

Cleaner.

(setf accent (loop for i from 3 to 24 by 3 and j from 1 collect

(gen-repeat j (cons (/ 3/4 i) (make-list 2 :initial-element '-)))))

Or

(setf accent (loop for i from 1 to 8 collect (gen-repeat i (cons (/ 1/4 i) (make-list 2 :initial-element '-)))))

Same with this.

Jesper

(setf accent (loop for i from 1 to 8 collect (gen-repeat i (list (/ 1/4 i) (/ -1/2 i)))))

Imported to Dorico 6.1

Jesper

image.png

  • Author

Thanks Jesper and Stéphane.

You're right, Jesper, it's the same for me when I import into Sibelius; I get those kinds of results.

Anyway, I'm just trying to work with groups of notes...

Here it works well without rests!

image.png

  • Author
On 2/9/2026 at 4:21 PM, jesele said:

(setf accent (loop for i from 3 to 24 by 3 and j from 1 collect

(gen-repeat j (cons (/ 3/4 i) (make-list 2 :initial-element (- (/ 3/4 i)))))))

(setf pitacc (loop for i from 7 downto 0 collect (butlast '(e4 fs4 g4 fs4 g4 a4 g4 a4) i)))

(setf exo3acc1 (make-omn :length accent :pitch pitacc))

(setf exo3acc (omn-to-time-signature (append exo3acc1 (reverse exo3acc1)) '(3 4)))

Thanks Jesper, you're awesome!

However, I'm still encountering a problem with quintuplets and septuplets.

In my previous example, if I remove the rests within the groups, the problem disappears immediately.

I find it surprising that OMN seems to only have difficulties when rests are included in odd-numbered tuplets (5 and 7), even though the rhythmic structure remains correct.

Is this expected behavior from the notation engine regarding rests in these tuplets, or is there a specific rule to follow?

Using only accents in groups of 3 was enough to cause an error on quintuplets and septuplets!

image.png

  • Author
On 09/02/2026 at 18:07, Stephane Boussuge said:

Je ne suis pas sûr que ce soit lié, mais la bonne façon d'écrire des tuples est par exemple : '(3q = = = - = - - =), et non : '(3q 3q 3q 3q -3q 3q -3q 3q)

There you go, dear Stéphane, I did it the right way... ;-)

(setf accent '((q - -)

(e - - = - -)

(3q - - = - - = - -)

(s - - = - - = - - = - -)

(5q - - = - - = - - = - - = - -)

(6q - - = - - = - - = - - = - - = - -)

(7q - - = - - = - - = - - = - - = - - = - -)

(8q - - = - - = - - = - - = - - = - - = - - = - -)

(8q - - = - - = - - = - - = - - = - - = - - = - -)

(7q - - = - - = - - = - - = - - = - - = - -)

(6q - - = - - = - - = - - = - - = - -)

(5q - - = - - = - - = - - = - -)

(s - - = - - = - - = - -)

(3q - - = - - = - -)

(e - - = - -)

(q - -)))

i have the same problem with 5 and 7 tuplets...

image.png

  • Author

And in this way??

(setf accent '(

((q) (-q) (-q))

((e -e) (e -e) (e -e))

((3q -3q -3q) (3q -3q -3q) (3q -3q -3q))

((s -s -s -s) (s -s -s -s) (s -s -s -s))

((5q -5q -5q -5q -5q) (5q -5q -5q -5q -5q) (5q -5q -5q -5q -5q))

((6q -6q -6q -6q -6q -6q) (6q -6q -6q -6q -6q -6q) (6q -6q -6q -6q -6q -6q))

((7q -7q -7q -7q -7q -7q -7q) (7q -7q -7q -7q -7q -7q -7q) (7q -7q -7q -7q -7q -7q -7q))

((8q -8q -8q -8q -8q -8q -8q -8q) (8q -8q -8q -8q -8q -8q -8q -8q) (8q -8q -8q -8q -8q -8q -8q -8q))

((8q -8q -8q -8q -8q -8q -8q -8q) (8q -8q -8q -8q -8q -8q -8q -8q) (8q -8q -8q -8q -8q -8q -8q -8q))

((7q -7q -7q -7q -7q -7q -7q) (7q -7q -7q -7q -7q -7q -7q) (7q -7q -7q -7q -7q -7q -7q))

((6q -6q -6q -6q -6q -6q) (6q -6q -6q -6q -6q -6q) (6q -6q -6q -6q -6q -6q))

((5q -5q -5q -5q -5q) (5q -5q -5q -5q -5q) (5q -5q -5q -5q -5q))

((s -s -s -s) (s -s -s -s) (s -s -s -s))

((3q -3q -3q) (3q -3q -3q) (3q -3q -3q))

((e -e) (e -e) (e -e))

((q) (-q) (-q))

))

image.png

  • Author

yes exactely!!!

How do you do that?

  • Author

arrffff;-(

As a function.

Jesper

(defun foo (pitches max &optional (div 3))
  (let (res)
    (loop for i from 1 to max collect
            (gen-repeat i (cons (/ 1/4 i) (make-list (1- div) :initial-element '-))) into rhy
          collect
            (butlast pitches (- max i)) into mel
          finally (setf res (make-omn :length rhy :pitch mel))
                  (return (omn-to-time-signature (append res (reverse res)) (list div 4))))))

(foo '(e4 fs4 g4 fs4 g4 a4 g4 a4) 8 3)
(foo '(e4 fs4 g4 fs4 g4 a4 g4 a4) 6 4)
(foo '(e4 fs4 g4 fs4 g4 a4 g4 a4) 7 5)
  • Author

This is a great feature, thank you Jesper!🙏

This result (notation) is even better:

(setf lengths
      '((q -q -q)
        (e -e -e e -e -e)
        (3q -3q -3q 3q -3q -3q 3q -3q -3q)
        (s -s -s s -s -s s -s -s s -s -s)
        (5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q)
        (6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q)
        (7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q)
        (8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q)
        (8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q 8q -8q -8q)
        (7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q 7q -7q -7q)
        (6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q 6q -6q -6q)
        (5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q 5q -5q -5q)
        (s -s -s s -s -s s -s -s s -s -s)
        (3q -3q -3q 3q -3q -3q 3q -3q -3q)
        (e -e -e e -e -e)
        (q -q -q)))

(setf pitches
      '(e4
        e4 fs4
        e4 fs4 g4
        e4 fs4 g4 fs4
        e4 fs4 g4 fs4 g4
        e4 fs4 g4 fs4 g4 a4
        e4 fs4 g4 fs4 g4 a4 g4
        e4 fs4 g4 fs4 g4 a4 g4 a4
        e4 fs4 g4 fs4 g4 a4 g4 a4
        e4 fs4 g4 fs4 g4 a4 g4
        e4 fs4 g4 fs4 g4 a4
        e4 fs4 g4 fs4 g4
        e4 fs4 g4 fs4
        e4 fs4 g4
        e4 fs4
        e4))

(setf omn (make-omn :length lengths :pitch pitches))

(def-score kona-score
    (:title "kona"
     :key-signature 'atonal
     :time-signature '(3 4)
     :tempo 50)
  (mel
   :omn omn
   :channel 1
   :sound 'gm
   :program 'acoustic-grand-piano))


Screenshot 2026-02-12 at 11.26.10.png

  • Author

You mean after update 3 ver 4, in my case!?;-)

image.png

  • Author

I don't have Mac OS version 11!

image.png

  • Author

Therefore, it's difficult for me to consider this update at the moment.

Do you think it would be possible to achieve the same result using a Lisp approach in the current version?

  • Author

exporting the MIDI file to Sibelius

image.png

Create an account or sign in to comment


Copyright © 2014-2026 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

Account

Navigation

Search

Search

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.