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