After
sending
the
eight
keyboard
bytes,
the
Prophet sends
a
byte
which
contains
the
bank
and
program
number.
This
byte's format
is that the
least
significant
three
bits
are
the
PROGRAM
number;
corresponds
to program
number
1,
7
corresponds
to
program
number
8. The next
three
bits
are
the
BANK number;
is
bank
1,
4
is
bank 5.
(The
two
most
significant
bits
aren't used.)
Thesie
nine
bytes
follow
close on
one another. The delay
between keyboard
bytes
and
1 is
150 us.
The
time
between the remaining
eight bytes is
a uniform 36.^
us.
The
sequencer
receiver
must
be ready
to
receive this data
with
the required speed,
or an
overrun
error
will
occur in the
sequencer. Note
that it is also a
good idea
to insert
"time-outs"
in
your receiver software
so your system is
not
hung-up waiting
for bytes
which
it
somehow may
have missed.
You
will
have
to format
this data in RAM for
your
particular
requirements. For
example,
since these
bytes
only
tell the
sequencer what
keys are being held
when
it
asks,
in
order to create
timing information
the sequencer
will have
to continually
sample
the
Prophet's
keyboard and compare
to find out when
keys go on or
off.
6-5
STATUS
1: SEND ACK and
RECEIVE KEYBOARD and
BANK/PROGRAM
BYTES
This
status is
used for the
sequencer to play the
Prophet's keyboard
and select
programs.
When code
02(H) is
received, the Prophet processes the interrupt
(again, for
up
to
2-ms, worst-case). When
it is ready
to
receive
eight keyboard
bytes and
a
program byte, it
acknowledges the sequencer's request by sending the "ACK"
code
36(H). The sequencer
then
transmits
the
keyboard and program
bytes in the
format
discussed
under
STATUS 0.
For the
most transparent
operation, you will want a
minimum
of time
between
bytes
transmitted to the
Prophet. The
faster
the transfer,
the truer
the timing will
be. Some
specific timing figures may
be of use. For
example, the Prophet's
scan time
(for
each
program loop)
is
6 ms, or
11 ms if controls are being used.
This
means
there is
a worst-
case delay of 1 1 ms
between a key
being
pressed
and its being
heard or recorded.
This
is
not normally detectable in the
Prophet.
However,
sequencing
adds new
timing
concerns, since the
Prophet
waits
for the
transfer
to
be
completed before
continuing
its
loop. With
a
625 kHz clock, 9
serially-formatted
bytes will take
only 15SA
us
(1.6
us
X 99 bits). But
if
they are spaced
1 ms apart, the whole transfer
will about double
the
worst-case
loop
time. It is more
reasonable to use the fastest
clock possible,
and
allow
up to
100
us between bytes.
This will have a negligible
effect on
the
Prophet's
loop.
The
Prophet is
protected
from being
"hung-up" by extremely
slow
or
missing
data. Its
time-out
software
declares an
error and
ignores the
whole message if more than
about
4 milliseconds
elapses between bytes.
When
the
message is
complete,
the
Prophet places
this data into its
"Scratchpad" RAM
table,
playing the notes
as if they
came
from
its own keyboard. Even while receiving
from
the external
sequencer the
Prophet's keyboard
remains active and
can be
used
normally
(unless the sequencer TRANSPOSE function
is enabled, see
STATUS
2).
Of
course you still have
a
five-voice maximum.
So
if you,
for
example, play
on
the
keyboard
while the sequencer is playing, you may
"steal"
voices from the sequence.
6-ti-
CMIOOOD
2/82