navigated and edited. The approach taken here uses
a Value Navigation Table.
Figure 17 shows part of the display. The
characters on the display are either background or
part of value blocks. The background characters are
held in EEPROM and are used as the basis of the
display. The value blocks contain overlaid values.
Values are held in a data structure as integers.
The Value Navigation Table contains information
about the location and size of each value block, and
the navigation between blocks.
Much code is written to translate raw integer
values into different displayed types (whole number,
percentage, time, note name, on/off blob, etc.).
Values are edited using increment and decrement
buttons, with the step size depending on the
duration of the button press.
Figure 18 shows song 1 with the verse
selected. The position is 0 seconds, the duration
is 29. 7 seconds, and track 2 is enabled for
playback.
In Performance mode, the LCD digit size is
made large by using custom characters and a
ROM-based character map.
Seamless Transitions
— The Smooth
Operator
Foot-switch presses don’t change a song
section immediately. Rather, they tell the Box
that after the current section is finished playing,
The sections are either looped or normal (not
looped). When a looped section ends, it will either
loop again, or if there is a pending section change,
playback will hop to the new section. Normal
sections will either stop when the end is reached or
hop to a pending section change.
This makes operating the Box in Performance
mode extremely simple. The only thing to worry
about is telling the Box which section to go to next.
You can tell it at any convenient point during the
currently playing section.
; FIGURE 20. Measuring jitter.
; FIGURE 19. Load testing.
; FIGURE 18. A close-up in Edit mode.
38 September/October 2018