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