know the current position for each
track. Figure 15 shows how we
make use of track pointers.
When recording a song
section, we can record up to four
tracks simultaneously. Note data for
each track is sequentially written to
SRAM inside linked memory blocks. The actual amount of
data stored for each track can be vastly different.
To find the current position of each track, we must
scan the track events, comparing the event time-stamps
to the overall song position. Pointers refer to the located
The PIC16F883 User
Interface Controller —
the Second Fiddle
This chip is on the UI controller PCB shown in Figure
16 and is the slave to the MIDI controller PIC; its tasks are
less time critical. However, it still has much to do, managing
user navigation and input, updating the LCD display, and
setting LEDs. It uses a powerful menu-navigation technique
to cram as much as possible onto the chip.
Many of the tasks are relatively simple in comparison
to the complexity of the MIDI controller. The most difficult
challenge is designing a menu system where values can be
; FIGURE 17. The user interface system.
; UI controller schematic.
; FIGURE 16. The UI controller
September/October 2018 37