- (let ((tags (ly:music-property expr 'tags)))
- (cond ((null? tags)
- "")
- ((null? (cdr tags))
- (format #f "~a\\tag #'~a " (if post-event? "-" "") (car tags)))
- (else
- (format #f "~a\\tag #'(~a~{ ~a~}) " (if post-event? "-" "") (car tags) (cdr tags))))))
-
-(define-public (music->lily-string expr)
- "Print expr, a music expression, in LilyPond syntax"
+ (format #f "~{~a ~}"
+ (map (lambda (tag)
+ (format #f "~a\\tag #'~a" (if post-event? "-" "") tag))
+ (ly:music-property expr 'tags))))
+
+(define* (tweaks->lily-string expr #:optional (post-event? #f))
+ (format #f "~{~a ~}"
+ (map (lambda (tweak)
+ (format #f "~a\\tweak #'~a #~a"
+ (if post-event? "-" "")
+ (car tweak)
+ (scheme-expr->lily-string (cdr tweak))))
+ (ly:music-property expr 'tweaks))))
+
+(define-public (music->lily-string expr parser)
+ "Print @var{expr}, a music expression, in LilyPond syntax."