\paper { tagline = ##f } #(define-public (extended-dynamic-absolute-volume s) (cond ((string? s ) (default-dynamic-absolute-volume s)) ((rational? s) (exact->inexact s)) ((number? s ) s) (else throw "this will never happen" ))) vel = #(define-event-function (velocity)(number?) (make-music 'AbsoluteDynamicEvent 'text velocity 'direction 1) ) sin-wave = #(define-scheme-function () () (define frequency 512) (define loop-length 512) (make-music 'SequentialMusic 'elements (let loop ((counter 0 )) (let ((v (+ (/ (sin (* PI (/ counter (/ frequency 32)))) 2 ) 0.5 ))) (let (( v (if (< counter loop-length ) (cons (make-music 'NoteEvent 'pitch (ly:make-pitch 1 0 0 ) 'duration (ly:make-duration 8 0 1 ) 'articulations (list (make-music 'AbsoluteDynamicEvent 'tweaks '((stencil ())) 'direction -1 'text v )) ) (loop (+ counter 1))) '()))) (if (= (modulo counter 64) 0 ) (append (list (make-music 'ContextSpeccedMusic 'context-type 'Timing 'element (make-music 'PropertySet 'value "" 'symbol 'whichBar)) (make-music 'LineBreakEvent 'break-permission 'force)) v) v)))))) \score { << \set Score.dynamicAbsoluteVolumeFunction = #extended-dynamic-absolute-volume \sin-wave >> \layout { indent=0 \context { \Score } } \midi {} }