February 9Feb 9 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.(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 (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))
February 9Feb 9 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
February 9Feb 9 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 '-)))))
February 9Feb 9 I’m not sure if this is related, but the correct way to write tuplets is as an example: ‘(3q = = = - = - - =), and not: ‘(3q 3q 3q 3q -3q 3q -3q -3q 3q)
February 9Feb 9 Same with this.Jesper(setf accent (loop for i from 1 to 8 collect (gen-repeat i (list (/ 1/4 i) (/ -1/2 i)))))
February 10Feb 10 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!
February 11Feb 11 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!
February 11Feb 11 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...
February 11Feb 11 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)) ))
February 11Feb 11 I did some changes to the grouping (will make a new release soon), but you will need to get the result OM ver. 4.0
February 11Feb 11 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)
February 12Feb 12 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))
February 12Feb 12 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?
Create an account or sign in to comment