Using EventModifiers

One can apply functions to the properties of event lists, as in the following example, which creates a drum roll and applies a crescendo modifier to it.

   [ | roll decresc |
   roll := ((Roll length: 3000 rhythm: 150 note: 60) ampl: 120) eventList.
   decresc := Swell new function: (ExponentialFunction from: #((0 1 4) (1 0))).
   decresc applyTo: roll.
   roll play]

Similarly, the following changes the tempo of the drum roll.

   [ | roll rub |
   roll := ((Roll length: 5000 rhythm: 150 note: 60) ampl: 80) eventList.
   rub := Rubato new function: (LinearFunction from: #((0 1) (1 0.5))).
   rub applyTo: roll.
   roll edit]