Dear community,
I wanted to add an octavation only to specific pitches. I hope that the
following snippet shows better what I want. Unfortunately it doesn't work.
%%%%%%%%%%%% SNIPPET
\version "2.20.0"

% a pitch filter
whenPitchAbove =
#(define-scheme-function
   (pitch proc)
   (ly:pitch? procedure?)
   (lambda (m)
     (let ((p (ly:music-property m 'pitch)))
       (if (and (ly:pitch? p) (ly:pitch<? pitch p))
         (proc m)
         m))))
% add octave below
okT = #(define-music-function (x) (ly:music?)
       #{
 \context Voice <<        $x \transpose c' c { $x } >>
       #})

global = {
\time 6/8  \clef "treble_8"  }
Music =  {
\global dis'' fis' a' d'' fis' a' dis'' fis' e'' f'
dis'' fis' a' d'' fis' a' dis'' fis' e'' f' }

MusicWithOnlySomeOctaves = {
 \musicMap \whenPitchAbove c''  \okT \Music
}
%%%%%%%%%%%% END OF THE SNIPPET %%%%%%%%%%%%%%%%%%%%%%

> At 10:51 on 28 Nov 2020, Stefan Thomas wrote:
> >* Dear community,*
> >* I would like to add automatically an octabe to certain pitches, e.g.*
> >* higher than d''.*
> >* I have in mind something like this:*
> >* %%%%%%%%%% SNIPPET*
> >* \version "2.18.2"*
> >* global = {*
> >* \time 6/8  \clef "treble_8"  }*
> >* okT = #(define-music-function (x) (ly:music?)*
> >*        #{*
> >*  \context Voice <<        $x \transpose c' c { $x } >>*
> >*        #})*
> >* Music =  {*
> >* \global dis'' fis' a' d'' fis' a' dis'' fis' e'' f'*
> >* dis'' fis' a' d'' fis' a' dis'' fis' e'' f' }*
> >* MusicWithOctaves = {*
> >* \global \okT dis'' fis' a' d'' fis' a'  \okT dis'' fis' \okT e'' f'*
> >* \okT dis'' fis' a' \okT d'' fis' a' \okT dis'' fis' \okT e'' f'*
> >* }*
> >* %%%%%%%%%% END SNIPPET*
> >* I thought it could be done with musicMap but I can't get it to work.*
> >* Has someone a hint for me?*
> http://lsr.di.unimi.it/LSR/Item?id=445
>
>
> --
> Mark Knoop
>
>

Reply via email to