Tempo Modes

tempoModes.gif

TODO:

  • Talk about the BPM calculator
  • Create a FAQs section and add a step by step guide to fix the song's tempo to a specific BPM.

Concepts

Check out these demo tracks which illustrate Classic and Modern tempo modes (see the included text file for explanation). Make sure you play the tracks in OpenMPT1.17RC2 or later.

To understand tempo modes, it is important to understand the concept of 'ticks'.
The tick is the smallest time unit known to the pattern editor. Each row is subdivided into a number of ticks. The duration of a tick and the number of ticks per row are therefore factors that affect playback speed.
The number of ticks per row also affects the behaviour of many pattern effects.

In total, four parameters can affect playback speed.

ValueDescription
ITXM
TxxFxx with xx>20Often referred to as "tempo". It affects the playback speed, but only corresponds to the exact BPM of the song with the Modern tempo mode.
AxxFxx with xx<20Traditionally referred to as "speed". Under the covers, its purpose is to set the number of ticks per row.
Rows per beatTells OpenMPT how many rows represent a "beat" in your track. Only used by plugins and the Modern mode.
Rows per measureThis is used in combination with Rows per beat to calculate the "beats per measure", which is sent to some plugins, but it does not affect OpenMPT's playback algorithm.

Note that by default the pattern row highlighting is linked to the Rows Per Beat and Rows Per Measure values. This can be disabled in the colours settings.

Below is a description of how each parameter is interpreted in the different tempo modes:

1. Classic

This is the default mode in OpenMPT.

ValueImpact
ITXM
TxxFxx with xx>20Fixes the duration of a tick.
AxxFxx with xx<20Sets the number of ticks per row.
This affects playback speed, because the tick duration is fixed.
Rows per beatThis tempo mode is not affected by the Rows Per Beat.
Rows per measureThis is used to calculate the "beats per measure" which is sent to some plugins, but it does not affect OpenMPT's playback algorithm in any way

For performance reasons, most older trackers were implemented with very little floating point arithmetic. Some rounding errors when calculating the number of samples that should constitute a buffer of a given duration mean that tempos could be inexact. In OpenMPT, the Classic tempo mode preserves this "old-school" behaviour.

2. Modern (accurate)

ValueImpact
ITXM
TxxFxx with xx>20Fixes the exact beats per minute of your song.
AxxFxx with xx<20Sets the number of ticks per row.
This does not affect playback speed, because the BPM is fixed. It therefore affects the duration of a tick.
Rows per beatSets the number of rows constituting a beat in your song.
OpenMPT cannot guess how many rows you consider to represent a beat in your song. You have to tell it explicitly by setting this value.
Rows per measureThis is used to calculate the "beats per measure" which is sent to some plugins, but it does not affect OpenMPT's playback algorithm.

This tempo mode compensates for the rounding errors described above, so the real BPM should nearly always correspond to the exact value you specify. This is the most intuitive mode for new users and closest to other modern music software packages. Some argue that this should be the default mode in OpenMPT.
A current limitation is that it's impossible to set fractional BPMs with this mode (e.g. 136.46 BPM).

3. Alternative

ValueImpact
ITXM
TxxFxx with xx>20Fixes the ticks per second.
AxxFxx with xx<20Sets the number of ticks per row.
so Txx/Axx = rows per second
Rows per beatThis tempo mode is not affected by the Rows Per Beat.
Rows per measureThis is used to calculate the "beats per measure" which is sent to some plugins, but it does not affect OpenMPT's playback algorithm.

So if tempo/speed = 128/16, then 128 rows will last 16s - in other words, tempo will be exactly 120 BPM if you track at 4 rows per beat.
This is a slightly more complex tempo mode devised by Ericus for the mathematically minded. It allows for very fine tuning.

Version 1.37 last modified by rewbs on 10/06/2006 at 22:38

Comments 0

No comments for this document

Attachments 2

[img]
tempoModes.gif 1.3
PostedBy: rewbs on 24/03/2006 (4kb )
[zip]
OpenMPT1.17RC2_TempoModes.zip 1.1
PostedBy: rewbs on 24/03/2006 (364kb )
Search
 
Backlinks
Recent Changes Wiki RSS

Creator: rewbs on 23/03/2006 at 19:47
This wiki is licensed under a Creative Commons license
1.0-beta3