Scrolling

The key feature of a teleprompter is scrolling – making sure that the relevant portion of your song is on the screen when you need it. LivePrompter gives you three ways to scroll through your songs:

  • Automatic average-speed scrolling
  • Automatic variable-speed scrolling
  • Manual scrolling

Automatic Average-Speed Scrolling

This mode means that LivePrompter will calculate an average scrolling speed to get from the first line in your song to the last line. To calculate this scrolling speed, LivePrompter will need you to set the duration of the song using the {duration:…} tag, giving the time in minutes and seconds, e.g.

{duration: 03:54}

Important: if you don’t set a duration for your songs, LivePrompter will not be able to scroll automatically – it will then be in “manual scrolling” mode (see below), which means that it will scroll through the song “page-by-page” whenever you press the play button. This is not a bug – set a duration for your song, and smooth scrolling will be enabled.

Song Position and Screen Focus

Now, once you press the play/pause button, LivePrompter will move its song position (i.e. the text line that is considered “current” through your song, starting with the first line of the song (skipping the header, i.e. title, artist), scrolling along to keep that song position at the “screen focus”. The screen focus is a vertical position on your screen (you can define within LivePrompter settings) where you expect the current line to be when scrolling. I usually set this screen focus to 40% from the top (set the value of Screen Focus to 40), because I prefer more of the song in view that is still ahead of me than those parts already behind me.

This is the reason why on most songs, when you press play/pause, LivePrompter will signal that scrolling has started by turning its status bar green, but the song will not move initially. This means that the song position is internally scrolling through the first couple of lines, but hasn’t reached the screen focus yet. The actual scrolling will only start once the internal song position has reached the screen focus.

This actually makes a lot of sense – otherwise the first few lines would be scrolled off the screen before you have a chance to actually sing or play them – LivePrompter takes this into account in its scrolling logic.

The same applies for the end of the song – LivePrompter will stop scrolling once the final bit of your song is on the screen – it won’t scroll things off-screen that don’t need to disappear.

Automatic Variable-Speed Scrolling

Using average-speed scrolling and the duration tag, an average scrolling speed is calculated for the song that ensures that the song position will reach the last line at the end of the song. But since not all parts of the song necessarily will have the same time per text line (think of a 2 minute guitar solo that consists simply of one line in the song text), the actual scrolling position will be somewhat inaccurate. Therefore, at some positions in your song, your song text will probably be ahead or behind. This is where variable-speed scrolling comes in.

To use variable scrolling speeds, you need to place special tags in your song file that tell LivePrompter that this specific line should be at the screen focus at a defined time. This is the {d_time:..} tag.

In a d_time tag, you tell LivePrompter the time in after the start of the song when the specific line of your song following this tag should be at the screen focus. LivePrompter will calculate scrolling speeds accordingly, speeding up scrolling for segments that contain more lines than others for the same time.

You can format this time either as a mm:ss combination, e.g. “1:44”, or you can simply use seconds, e.g. “104” for the same time.

...
Chorus 2:
{d_time: 104}
This line of text should be at the screen focus after 1 minute and 44 seconds
this is the next line
...

The easiest way to get the correct values for d_time tags is simply to record the song as you play it and note down the time of the relevant sections when you play it back. This is a one-time effort that does pay back over time. Yes, measuring (or calculating) these times is something of a chore, but the scrolling precision you can achieve with this method gives you a great comfort level on stage. Now you only have to correct for your drummer being a bit faster or slower on the day, which you can easily do via the jump-up/jump-down buttons when needed.

Using song bar numbers to set scroll timing

(New feature in version 1.3.3)

If you want to avoid timing your songs with a stopwatch, you can alternatively count bars in your song. Combined with the {tempo:..} tag, LivePrompter will automatically calculate the time to this position. This means, there are two additional tags:

  • {bar:...} – bar number of the current position – bars start at 1, not at 0
  • {beats_per_bar:...} or {bpb:...} – the number of tempo beats in a bar; depends on how you set your tempo in quarters or eights. If you have a song in 6/8 and give the tempo in 1/8 beats, you should set {beats_per_bar:6}. The default for beats_per_bar is 4.

Here is an example:

{title:A test song}
{tempo:124}
{bpb:4}
{c:2 bars of precount}
Intro:
{bar:3}
This is an instrumental intro over 8 bars

Verse 1:
{bar:11}
This is a verse with 16 bars

Chorus 1:
{bar:27}
I think this is clear enough - OK?
I'll end the example now...

This makes it easier to change the tempo of a song: no need to change all the d_time tags in your song – simply change the {tempo:...} tag at the beginning.

Warning: if you change the tempo within your song with additional {tempo:…} tags, be sure to place any tempo change after a {bar:…} command. LivePrompter uses the current tempo to calculate times; changing the tempo somewhere before a bar command will throw off the timing, since LivePrompter will believe the whole last segment between bar commands will have the changed tempo.

Note: LivePrompter calculates the speed of the last section after the last d_time or bar command based on the {duration:…} tag. If you want to be sure that tempo changes affect the scroll speed of that last section as well, just place an additional bar command after the last line of the song with the correct bar number (the bar after the last note).

Manual Scrolling

If you don’t like songs scrolling continuously and would rather manually flip through your songs, you can simply de-activate automatic scrolling in LivePrompter settings (Song Display -> Scrolling -> Automatic Scrolling). Now, the play/pause button will simply advance (fast-scroll) by roughly one page (90% by default) whenever you click it or press the corresponding key. You can also set the amount of advance in LivePrompter settings (Full Page Scroll).

Of course, the scroll-up / scroll-down buttons still work in manual scrolling mode, so you can vary between scrolling smaller and larger amounts using the play/pause button for page-flips and the scroll-down button for smaller increments.

Note: if you don’t set a duration for your songs, LivePrompter will automatically switch to manual scrolling mode for these songs, even if automatic scrolling is activated in settings. LivePrompter can’t calculate a scrolling speed if you don’t tell it the duration of the song.

Pause commands

If you want to pause scrolling automatically somewhere in your song, use the {pause} tag in your song file. When LivePrompter reaches that line during scrolling, it will stop scrolling and switch to “paused” mode. You need to press the play/pause key to continue scrolling.

This can be useful in songs where you have solo parts that routinely get extended depending on the mood of the audience or of the soloist. Simply add a pause tag and then continue scrolling once your guitarist has calmed down 😉.

There is also a “timed pause” tag that may come in useful if you have certain slow-moving parts in your song and don’t want to go to the trouble to use detailed d_time tags. If you have the proverbial 4-minute solo in the middle of your song, you could simply insert a {pause:240} tag in your song file there. LivePrompter will automatically switch to “countdown” mode there, pause scrolling, and continue once the 240 seconds are up.

Timed pauses are useful for when you are not using d_time but still want to address some special time-consuming parts of your song. For average-speed scrolling, the duration of timed pauses is deducted from the overall song duration, so scrolling for the rest of the song adapts to these pauses to still reach the end of the song at the right time. Important: timed pauses are NOT taken into account for d_time-based scrolling, so better not mix the two!