Generating random notes: Difference between revisions
Appearance
Import snippet from LSR |
mNo edit summary |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
This Scheme-based snippet generates random notes. Use as | This Scheme-based snippet generates random notes. Use as | ||
\randomNotes <var>n</var> <var>from</var> <var>to</var> <var>dur</var> | |||
to generate ''n'' random notes between pitches ''from'' and ''to'', with duration ''dur''. | to generate ''n'' random notes between pitches ''from'' and ''to'', with duration ''dur''. | ||
<lilypond version="2.24 | <lilypond version="2.24"> | ||
randomNotes = | randomNotes = | ||
#(define-music-function (n from to dur) | #(define-music-function (n from to dur) | ||
| Line 27: | Line 27: | ||
[[Category:Scheme]] | [[Category:Scheme]] | ||
[[Category:Included in the official documentation]] | [[Category:Included in the official documentation]] | ||
[[Category:Snippet]] | |||
Latest revision as of 07:11, 3 December 2025
This Scheme-based snippet generates random notes. Use as
\randomNotes n from to dur
to generate n random notes between pitches from and to, with duration dur.
\version "2.24"
randomNotes =
#(define-music-function (n from to dur)
(integer? ly:pitch? ly:pitch? ly:duration?)
(let ((from-step (ly:pitch-steps from))
(to-step (ly:pitch-steps to)))
(make-sequential-music
(map (lambda (_)
(let* ((step (+ from-step
(random (- to-step from-step))))
(pitch (ly:make-pitch 0 step 0)))
#{ $pitch $dur #}))
(iota n)))))
\randomNotes 24 c' g'' 8