Trackers have for decades used their own special way of managing tempo, that is, how fast your music plays. AT does not reinvent the wheel on this aspect, so what you may have learned on previous trackers still applies.
There is no tempo
Indeed, old-school trackers don’t really manage tempo, most of the time. The truth lies in technical aspects. In every old-school computer, 8 or even 16 bits, the easiest, and perhaps more reliable way of having an accurate notion of time passing by is… the screen refresh. Every 50 Hz (or 60 Hz in the US), the screen is refreshed and coders can synchronize on this event to produce smooth animations. This is also the perfect moment to play music!
But then it limits to playing a frame (or tick) of music every 50 Hz. 1 / 50 Hz = 20 ms. This might seems fast – and it is – but it doesn’t allow using accurate tempo. You may get 125 bpm (Beat per minute), but not 126 or 127, because you don’t have the required accuracy (more on that below).
There is speed
“Speed” is a term coined by old-school trackers – I don’t know which one – and it’s also the term used in AT, though, as we will see, it is actually a dubious term.
Imagine you play a note every tick, thus every 20 ms… You will actually have a tempo of 1500 bpm. Not very musical! Trackers solve this by having lines of notes, and by grouping them into beats:

Typically, a group of 4 lines (here, 0 to 3, 4 to 7 and so on) forms a beat. Why 4? Because it is good compromise between readability (notes are grouped together and not spread across several screens) and accuracy (you can write quarter notes, most song won’t need eighth).
The speed, each unit a multiple of 20 ms, indicates the duration the player will wait before going to the next line. So with a speed of 1, going from line 0 to 1 will take 20 ms (very fast). A speed of 2 will double this amount, 40 ms (still very fast). A speed of 6 produces an average tempo: 125 bpm (calculation below), which is why it is default is many trackers, including AT.
So here is the “lie” with the “speed” term: the higher the speed, the lower the tempo! Which is why some trackers use the term delay. I don’t, because I consider “speed” a speed, regardless of its scale (plus, delay is the name of a well known effect in music, i.e. echo).
More tempos?
You’ll argue that some trackers, even old-school, allow to choose accurate tempos (126, 127, etc.). It may be possible on hardware with precise timers, like Amiga or Atari ST. Instead of waiting for the 50 Hz of the screen fly-back, they can use programmable timers to trigger the music replay at will. Since AT primary targets 8-bit computer without such capabilities, the choice of using of less-accurate speed has been made.
However, AT allows you to get such accurate tempos: you just have to use another replay frequency in the subsong properties:

Instead of 50 Hz, use 59, 69, or any other value! But I’m warning you: unless you’re sure such frequency can be used, do not!
However, even if the hardware may not be able to produce such accurate timer, it can often be done by software means (the code can wait for as long as needed and play another frame of music – but it is seldomly used in practice – it can be cumbersome to have animations or effects besides). Divisions of 50 Hz are easy to handle however (25, 12.5) and often used, especially in games. Instead of calling the player every frame, play it every 2 or 3 times. It saves CPU and may not even be noticeable, depending on the song (listen to the fantastic Stormlord soundtrack by Dave Rogers!)
On a CPC, we are somewhat lucky to have 300 Hz interruptions (6 interruptions during a 50 Hz screen fly-back), so it’s technically easy to play such frequencies (though heavy on CPU!), as well as multiplications of 50 Hz: 200, 150, 100 Hz. Other 8-bit may not have that facility, so once again, make sure the song can be played on your hardware (and by a coder!).
Displayed BPMs
On top of the screen, you can see the speed and a BPM:

In AT, you cannot directly edit the speed via BPM, but you can set the speed itself, either via the speed track, or the initial speed of the subsong properties (see the screenshot above). Once changed, the BPM will update accordingly.
The calculation of the BPM
The BPM is calculated via different parameters:
- The speed
- The replay frequency (50 Hz, etc.).
- The rows per beat
The formula is as is:
bpm = 60 / ((speed * rows per beat) * 1 / (replay frequency in Hz))
We’ve talked about the two first items, but what is the last one? In AT, it is only a parameter which you can find once again in the subsong properties: the rows per beat for highlight.
It is only for display, and changing it will not change the speed, but will change the displayed tempo. Huh?
Imagine you’re composing a music in 3/4, so a triplet in a beat. Visually, you will not want this:

Notice how the highlights of the beats are on lines 4 and 8. Though it has no consequence on the music, this is not convenient for the composer. Change the rows per beat to 3:

Better looking! As a musician, this helps you see the triplets. But what’s more, AT can now calculate the BPM now that it knows there are only 3 lines per beat.
More notes?
Let’s go back to 4/4 as in our example at the top of this page. There are four notes per beat. Now this might be enough, but what if you want, during all the song, or only a few bars, have more notes because you have a more intricate melody?
Simply double both the speed and the rows per highlight! The displayed tempo will be the same, yet you will have twice more notes scrolling twice faster.
This technique has some limits, which may or may not apply to you:
- It may be more exhausting for the eyes, since the scrolling is faster!
- Positions can only be 128-line height, so you may need to split your pattern in two if you were already using large positions.
- AT only supports only value of notes per beats per subsong. If only parts must have “more notes”, the notes per beat will not change. This has no consequence on the song, only on the visuals, and the displayed tempo will not be accurate (twice higher than it should).
More accurate tempos
What if your tempo is too slow with a speed of 6, yet too fast with a speed of 5? If you are stuck with a 50 Hz player (which you probably are), a well know trick is to change the speed quickly. How much depends on you only. AT will not show an “average” bpm, so you will have to feel it. You could alternate between 6 and 5 on every line. Or something more subtle:

Groove and shuffle
An alternative use of such technique is to switch two very different speeds…

… to create what musicians know as shuffle:
Nice, eh? The combinations are multiple and the result varied, so it’s up to you to make tests to check what sounds the best!