I suppose there are different definitions for what a "bug" is. I said it was not one because it is obviously intended behavior—I figured my use case is a bit unusual so was not surprised by this. But if it can be treated as a bug and additional functionality can be added in a future version, that would be great!
Jean, thanks for the workaround. I could certainly not have come up with that myself. I'll give it a try tomorrow. -Ahanu On Tue, Jan 31, 2023, 22:07 Jean Abou Samra <j...@abou-samra.fr> wrote: > On 01/02/2023 03:51, Ahanu Banerjee wrote: > > It's obviously not a bug. Jean, thanks for pointing out where the > relevant instruction is. > > > > What would be the easiest way to modify this behavior for a single > score? > > > It's a bit of a weird thing to do, but you could consider > > \version "2.24.0" > > allowMultipleArticulations = > #(define-music-function (mus) (ly:music?) > (let ((syms '())) > (for-each > (lambda (art) > (let* ((sym (ly:music-property art 'articulation-type)) > (fresh (make-symbol "unique-articulation"))) > (set! syms (acons fresh sym syms)) > (ly:music-set-property! art 'articulation-type fresh))) > (extract-typed-music mus 'articulation-event)) > #{ > \context Bottom \applyContext > #(lambda (context) > (let* ((defs (ly:context-property context 'scriptDefinitions)) > (defs-hash ((@ (ice-9 hash-table) alist->hashq-table) > defs)) > (new-defs (append (map (lambda (p) > (cons (car p) > (hashq-ref defs-hash > (cdr p)))) > syms) > defs))) > (ly:context-set-property! context 'scriptDefinitions > new-defs))) > #mus > #})) > > \language "english" > > \allowMultipleArticulations > { g8 g_\upbow ^\upbow g g % fails > g8 g_\upbow ^\downbow g g % works > } > > > > If you have several voices, you must apply the function to each of them > separately. > > Jean > > >