|
Tempo - various conversions to and from BPM |
Tempo - various conversions to and from BPM
use Music::Tempo;
my $marking = bpm_to_italian(50); # 'Largo'
my $bpm = italian_to_bpm('Allegro'); # 120
my $ms = bpm_to_ms(100); # 600
my $bpm = ms_to_bpm(200,8); # 120
Includes two main functions, converting BPM (Beats Per Minute) to and from ms (milliseconds) and Italian metonome markings.
bpm_to_italian($bpm)Takes a BPM marking, and returns an appropriate Italian metronome marking (Lento, Allegro etc. - see below for full list).
italian_to_bpm($marking)Takes an Italian metronome marking (Lento, Allegro, Presto etc.) and returns an *average* BPM.
bpm_to_ms($bpm,$beat)Converts from BPM to ms. The 'beat' parameter (which defaults to 4) acts as an extra divisor. For instance, 120 BPM would normally mean 1 crotchet (or 1/4 note) =500ms. Passing a beat of '16' would return 125ms, referring to semiquavers (or 1/16 notes).
ms_to_bpm($ms,$beat)The reverse of bpm_to_ms.
The italian tempi are of course approximations. The ranges below have been greatly reduced, and are presented only as a 'last resort' for automatic machine translation etc. They're roughly based on an average between Maetzel and Quantz, tweaked for 'standard modern' usage (Allegro=120 etc.).
Largo 40-59 Larghetto 60-66 Adagio 67-72 Lento 73-78 Andante 79-88 Moderato 89-109 Allegro 110-129 Vivace 130-149 Presto 150-190 Prestissimo 190-220
Ben Daglish (bdaglish@surfnet-ds.co.uk)
None known All feedback most welcome.
Copyright (c) 2003, Ben Daglish. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
perl(1).
|
Tempo - various conversions to and from BPM |