How It Performs — The
After considerable design and build effort, the result
is a system that performs excellently! However, ‘excellent’
needs some quantifying.
In chaotic real time systems, it’s often best to use
statistical Response-Time Analysis (RTA), which highlights
probable performance rather than absolute performance.
Figure 19 shows a test measuring response to a spike
load on the system. A batch of 18 note events is sent to
the Box at the same time (simulated by a sequencer). In
practice, this is very unlikely to happen and even a few
milliseconds difference in ‘note on’ reception would
alleviate the load on the microcontroller.
The histogram shows how the recorded notes are
time-stamped. As we can see, virtually all are processed
and stamped after 30 milliseconds, and over half within 10
milliseconds. This is good considering we are unlikely to
ever notice a 10 millisecond delay!
Figure 20 shows a test measuring ‘Jitter’ when the
system is under moderate load. A stream of ‘note on’
messages spaced 34 milliseconds apart is blasted at the
Box. The Box echoes this stream to its output on two
channels — the overall load being in the order of 180 MIDI
events per second. The recorded message spacing should
be 30 milliseconds (the Box has a timing precision of 10
milliseconds). As we can see from the histogram, most are
indeed recorded at this interval. However, almost half are
recorded at 40 milliseconds. Considering this represents
quite a hefty unrealistic load, even this result shows the
system response is fully acceptable!
The Desktop App — Load
Figure 21 shows a screenshot of the MIDI Replay app
for Windows™ that accompanies the Box.
The app is a fundamental part of the whole system,
and acts as the bridge between the box and high-level song
management and editing capabilities.
The app can be downloaded from https://collectany.
Clicking this link downloads the setup.exe which
you then run. Select ‘run anyway’ when the Windows
protection screen is displayed (Microsoft recognizes this
app as from an unknown publisher). You will automatically
get updates to this app if any are made.
Song settings and recorded tracks are communicated
to the app via MIDI ‘Sys-Ex’ data messages. Recordings
are saved to standard MIDI files that can be edited by any
The app lets you define songs and put songs into sets
that can be synced with the Box. The keyboard player can
load up a set before a performance and simply click and
go at the gig!
The software is written in .NET and C# as a ‘WinForms’
application. The full solution and associated files are
included with the article downloads.
Time to stomp on! NV
; FIGURE 21. MIDI Replay desktop app.
Note Latency and What Human Beings can
Latency is the delay between pressing and hearing a
note. This is a delicate topic with hot debate over what level
is noticeable, but it’s commonly accepted that less than 10
milliseconds is not. One thing to reflect on is that sound
waves take 10 ms to travel 12 feet in distance!
Hardware based MIDI devices (dedicated lumps of
kit) often have a performance edge compared to software
based ‘virtual’ devices because the hardware can be
honed and crafted to minimize latency. A PC musical
app competes against all sorts of background processes,
including very mundane ones such as checking for email or
updating the antivirus definition.
September/October 2018 39