On Tue, Feb 7, 2023 at 9:07 PM Jean Abou Samra <j...@abou-samra.fr> wrote:
> On 07/02/2023 21:57, Alberto Simões wrote: > > Hello > > > > I am transcribing a piece that has a lot of tuplets: > > > > \tuplet 3/2 { a4 b8 } > > > > The duration of the notes is always this, just the pitch changes. > > I tried to create a music function with this code > > > > myT = #(define-music-function (pa pb) (ly:pitch? ly:pitch?) > > #{ > > \tuplet 3/2 { $pa 4 $pb 8 } > > #}) > > > > it works well, but I can't combine it with the context, for instance, > adding slurs: > > > > \myT c( gis a4_.) > > > > also, I will need to attach other stuff to the notes: > > > > \myT c_. d^^ e4 > > > > I understand that having a ly:pitch argument, I can only use... pitch > > But changing it to ly:music?, I am not being able to control the notes > duration. > > > > This is my first function, so sorry if this is too basic :-) > > > > This is not a dumb question. Try this: > > \version "2.24.0" > > myT = > #(define-music-function (pa pb) (ly:music? ly:music?) > (ly:music-set-property! pa 'duration #{ 4 #}) > (ly:music-set-property! pb 'duration #{ 8 #}) > #{ \tuplet 3/2 { #pa #pb } #}) > > { > \myT c( gis a4_.) > \myT c_. d^^ e4 > } > > > You need to receive the argument as ly:music? so as to allow > articulations on the note. Then, you can override the duration, > with ly:music-set-property! . > Understood. Thank you . After looking to the example, it makes sense, but it wasn't easy to get there :-) Always great to learn! > Also, you may already know this, but I want to make sure: > \tuplet supports a form that allows writing consecutive > tuplets with a single \tuplet command, like this: > { > \tuplet 3/2 4. { c4( gis8 c4_. d8^^) } > } > > Didn't knew, but in my case it doesn't help much :-) Thank you, Alberto