|
From: | Basso Ridiculoso |
Subject: | Re: Arpeggios from chordmode? |
Date: | Tue, 2 Aug 2011 20:10:11 -0700 |
------------------------------
Message: 8
Date: Mon, 01 Aug 2011 17:00:29 +0200
From: Gilles <address@hidden>
To: address@hidden
Subject: Re: Arpeggios from chordmode?
Message-ID: <address@hidden>
Content-Type: text/plain; charset="iso-8859-15"; Format="flowed";
DelSp="yes"
> Is there as simple way to get chord mode to return:
>
> c4 e g
>
> instead of
>
> <c e g>4
>
Is something like that what you wanted ?
%%%%%%%%%%%%%%%%%%%%%%%%
#(use-modules (ice-9 receive))
%% see http://www.gnu.org/software/guile/manual/guile.html#Multiple-Values
#(define (chords-list->seq-list lst)
(receive (notes others)
(partition (lambda(x) (ly:duration? (ly:music-property x
'duration)))
lst)
(map (lambda(x)
(let ((elts (list x)))
(if (pair? others)(begin
(set! elts (append elts others))
(set! others '())))
(make-music 'EventChord 'elements elts)))
notes)))
chordsToSeq = #(define-music-function (parser location music)(ly:music?)
(music-map
(lambda (x)
(if (eq? 'EventChord (ly:music-property x 'name))
(make-music 'SequentialMusic 'elements
(chords-list->seq-list (ly:music-property x 'elements)))
x))
music))
music = \chordmode {d4:min7\f g:7 c:maj7}
\new Voice \chordsToSeq \music
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Gilles
-------------- next part --------------
A non-text attachment was scrubbed...
Name: chordsToSeq.png
Type: image/png
Size: 906 bytes
Desc: not available
URL: </archive/html/lilypond-user/attachments/20110801/094c80c9/attachment.png>
------------------------------
Arpblueschart.ly
Description: Binary data
[Prev in Thread] | Current Thread | [Next in Thread] |