ABC Transcription Tools - Custom Roll Timing Using %roll_2_params and %roll_3_params

Опубликовано: 13 Июнь 2026
на канале: Michael Eskin
53
0

You may now create your own custom quarter note and dotted quarter note roll timing solutions.

From the User Guide:

Defining Custom Roll Timing Parameters (Top)

In abcjs, a ~ preceding a note draws the roll indication above the note, but does not inject a roll into the playback.

In this tool, playable rolls (also shows a roll indication drawn above the note) are are added using R or !roll! preceding the note.

For example, to indicate a quarter note roll on G in ABC:

RG2
% or
!roll!G2

To indicate a dotted quarter note roll on A in ABC:

RA3
% or
!roll!A3

To set the timing and volume parameters for a quarter-note roll, add the following comment-based annotation anywhere in the tune ABC:

%roll_2_params timeslot1 timeslot2 fraction1 fraction2 fraction3 volume1 volume2 volume3

To set the timing and volume parameters for a dotted quarter-note roll, add the following comment-based annotation anywhere in the tune ABC:

%roll_3_params timeslot1 timeslot2 fraction1 fraction2 fraction3 volume1 volume2 volume3

All parameters must be positive floating point values.

The duration values are based on dividing the note time into three time slots for the whole roll and indicate the relative time slots for the first and second notes of the roll.

The third note in the roll will have a time slot of (3 - (duration1 + duration2))

The fraction values indicate what fraction of the time slot the roll note should be played.

The volume values have a range from 0.0 to 1.0 and scale the playback volume of each note in the roll relative to the normal note volume.

Here are the default parameters used for a quarter note roll:

%roll_2_params 0.95 0.8 1.0 0.75 0.9 1.0 0.75 1.0

Here are the default parameters for a dotted quarter note roll:

%%roll_3_params 1.45 0.6 1.0 0.75 0.9 1.0 0.75 1.0

If (timeslot1 + timeslot2) is greater than 3, since there would be no time left for the third note, the roll definition will be ignored.

To disable the custom roll parameter system and use the original abcjs "rapid-fire" roll timing solution, add the following comment-based annotation anywhere in the tune ABC:

%use_original_abcjs_roll_solution

Try my free ABC Transcription Tools
https://michaeleskin.com/abc

User Guide
https://michaeleskin.com/abctools/use...