* input/regression/repeat-unfold-tremolo.ly: new file.
* scm/music-functions.scm (unfold-repeats): undo music compression
too.
* lily/music.cc (LY_DEFINE): rename to music-mutable-properties
(LY_DEFINE): ly:music-compress new function.
* scm/music-functions.scm (make-non-relative-music): new function.
2004-03-31 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * input/test/polymetric-differing-notes.ly: use ly:music-compress.
+
+ * input/regression/repeat-unfold-tremolo.ly: new file.
+
* scm/music-functions.scm (unfold-repeats): undo music compression
too.
--- /dev/null
+\version "2.1.36"
+\header {
+
+ texidoc = "Unfolding tremolo repeats. Both fragments fill one 2/4
+ measure with 32nd notes exactly."
+
+}
+
+
+\score{
+ \notes{
+ \time 2/4
+ \apply #unfold-repeats
+ { \repeat tremolo 8 { c'32 e' } |
+ \repeat tremolo 16 c'32 } | \bar "|."
+ }
+ \paper { raggedright = ##t }
+}
}
+#(define ((scale-music-function fraction) x)
+ (ly:music-compress x (ly:make-moment (car fraction) (cdr fraction))))
-#(define (scale-one-music m fraction)
- "Maybe we should just export Music::compress to Scheme?"
- (let*
- ((dur (ly:music-property m 'duration)))
-
- (if (ly:duration? dur)
- (let*
- ((l (ly:duration-log dur))
- (d (ly:duration-dot-count dur))
- (factor (ly:duration-factor dur)))
-
- (ly:music-set-property! m 'duration
- (ly:make-duration l d
- (* (car fraction) (car factor))
- (* (cdr fraction) (cdr factor))))))
-
- m))
-
-#(define (scale-music-function fraction)
- (lambda (x)
- (music-map (lambda (y) (scale-one-music y fraction)) x)))
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = #'(9 . 8)
- \apply #display-music \apply #(scale-music-function '(2 . 3))
+ \apply #(scale-music-function '(2 . 3))
\repeat unfold 6 { c8[ c c] }
}
\new Staff {
\time 3/4
\set Staff.timeSignatureFraction = #'(10 . 8)
- \apply #display-music \apply #(scale-music-function '(3 . 5))
+ \apply #(scale-music-function '(3 . 5))
{ \repeat unfold 2 { c8[ c c] }
\repeat unfold 2 { c8[ c] }
| c4. c4. \times 2/3 { c8 c c } c4 }
TODO: should take moment factor?
*/
LY_DEFINE (ly_music_compress, "ly:music-compress",
- 3, 0, 0, (SCM m, SCM factor),
+ 2, 0, 0, (SCM m, SCM factor),
"Compress music object @var{m} by moment @var{factor}."
)
{
(display ": { ")
(let ((es (ly:music-property music 'elements))
(e (ly:music-property music 'element)))
- (display (ly:mutable-music-properties music))
+ (display (ly:music-mutable-properties music))
(if (pair? es)
(begin (display "\nElements: {\n")
(map display-music es)
(let* ((name (ly:music-property music 'name))
(e (ly:music-property music 'element))
(es (ly:music-property music 'elements))
- (mprops (ly:mutable-music-properties music))
+ (mprops (ly:music-mutable-properties music))
(d (ly:music-property music 'duration))
(p (ly:music-property music 'pitch))
(ignore-props '(origin elements duration pitch element)))