<html>
<HEAD>
<TITLE>RePlay Module</TITLE>
</HEAD>
<BODY BGCOLOR="#AAFFFF" TEXT="#000000" LINK="#3333AA" VLINK="#6666FF"> 

<H2>
<A NAME="RePlay">RePlay</A>
</H2>
Records and plays Midi Sequences.  Sequences may be saved to files, though
the format used is <i>not</i> any standard MIDI file format; it is designed
rather to match features of the MusicWeaver, such as 'marked' events.
<h4>
Inputs
</h4>
<UL Type="none">
<LI> <B>Record Midi</B> -- Event stream to be recorded
<LI> <B>Control</B> -- May be used to trigger recording or playback
</UL>
<BR>
<h4>
Outputs
</h4>
<UL Type="none">
<LI> <B>Play Midi</B> -- Playback of recorded sequence
<LI> <B>Record Midi</B> -- Pass-through of incoming MIDI stream.
<LI> <B>Control</B> -- Pass-through of control events
</UL>
<P>
<BR>
<h3>
Control Panel
</h3>
The box at top left of the control panel indicates the file currently in
the module's memory; the relevant name appears here when a file is loaded
or saved (via the buttons immediately below).  The current state of the element
is shown in the box immediately below the Load and Save buttons.

<h4>
Buttons
</h4>
<B>PLAY</B>, <B>RECORD</B>, and <B>STOP</B> are "touch" buttons -- they operate
when <i>pressed</i>, not, like most button controls, when released.  <B>Rewind</B>,
<B>Load...</B>, and <B>Save...</B> are normal button controls.
<UL Type="none">
<LI> <B>Load...</B> -- Opens a file panel to select a previously saved file
to be reloaded.  (A file of the correct format may also be dragged onto the
RePlay control panel to load it.)
<LI> <B>Save...</B> -- Opens a file panel to specify a name under which to
save the currently recorded sequence.
<LI> <B>Rewind</B> -- Sets the current sequence back to the beginning.  Only
functional if the sequence is stopped and not already rewound.  Its action
is <i>not</i> affected by the Rewind Mode (below).
<LI> <B>STOP</B> -- Immediately stops recording or playback.  Clicking it a second
time after stopping output causes 'All Notes Off' to be sent, silencing any
notes that may have been left hanging.
<LI> <B>PLAY</B> -- Begins, or resumes, playing the current sequence.  A new or
rewound sequence is played from the beginning. A stopped sequence is resumed from
the current point.  This button is enabled at all times when the element is
stopped (whatever the setting of the PlayMode popup -- below). 
<LI> <B>RECORD</B> -- Sets the element into Recording mode.  Whether recording
begins immediately or not depends on the RecordMode popup setting (below).
Note though that -- unless record mode is OFF -- activating this button
<i>immediately</i> erases any currently stored sequence. 
</UL>
<h4>
Popup Selectors:
</h4>
<UL Type="none">
<LI> <i>Rewind Mode</i> (below <B>Rewind</B> button) -- Determines the behaviour
when end of sequence is reached.
<UL Type="none">
<LI> <B>No Auto Rewind</B> -- Does not return to start; must be rewound via the button.
<LI> <B>Auto Rewind</B> -- (default) will return to start ready to play again
(after the 'End Delay' -- see below).
<LI> <B>Loop</B> -- Sequence will be rewound at end and begin playing again (after
'End Delay').
</UL>

<LI> <i>Play Mode</i> (below <B>PLAY</B> button) -- Determines what (besides the
<B>PLAY</B> button itself) will initiate playback.
<UL Type="none">
<LI> <B>Manual</B> -- (default) Playback can only be initiated by 'pressing'
the <B>PLAY</B> button.
<LI> <B>Play on MIDI</B>  -- Playback will be initiated by the first MIDI
event to arrive (on the <B>Record Midi</B> input) while the sequence is AT START.
(Independent of the <B>PLAY</B> button -- set back to Manual to avoid autostart.)
<LI> <B>Play on Control</B> --  Playback will be initiated by the first
event of any kind to arrive on the <B>Control</B> input while the sequence is
AT START.
(Independent of the <B>PLAY</B> button -- set to Manual to avoid autostart.)
<LI> <B>Play on Load</B> --  Playback will be initiated each time a new sequence
file is loaded (including when the configuration itself is loaded with a
file pre-specified).
(Independent of the <B>PLAY</B> button -- set to Manual to avoid autostart.)
</UL>

<LI> <i>Record Mode</i> (below <B>RECORD</B> button) -- Determines what
will initiate recording.
<UL Type="none">
<LI> <B>Immediate</B> -- Recording begins at the moment the <B>RECORD</B>
button is 'pressed'.
<LI> <B>Trig on MIDI</B>   -- Recording begins on the first MIDI
event to arrive after the <B>RECORD</B> button is activated.
<LI> <B>Trig on Control</B> -- Recording begins on the first event (of
<i>any</i> kind) to arrive at the <B>Control</B> input
after the <B>RECORD</B> button is activated.
<LI> <B>Record OFF</B> -- (default) The Record function is completely disabled.
</UL>

<LI> <i>Timing Mode</i> (below <B>Tempo</B> slider) -- Selects how event intervals
are stored in a sequence. Selecting the alternate mode will
change all timing in the sequence: you will be prompted to verify that you really
wish to make the change.  Conversion from one basis to the other is done according
to the current setting of the <B>Tempo</B> slider.
(Recording is always in absolute microseconds).
<UL Type="none">
<LI> <B>Microsec</B> -- Intervals are stored as microseconds.  Playback timing
is thus fixed.
<LI> <B>Scaled ("bpm")</B> -- Intervals are in an arbitrary (internal) base.
The scaling is controlled by the <B>Tempo</B> slider.
<i>Note that there is <B>no</B> actual connection
between the Tempo slider's '"beats/min' and the rhythm of your recording!
It is purely a notational device that corresponds to Midifile conventions,
and may (or may not) provide a familiar reference point.</i>
</UL>

<LI> <i>"NORMAL/BLAST"</i> (lower right of panel) -- Switches between normal
play and 'send-the-whole-sequence-at-once'.
<UL Type="none">
<LI> <B>NORMAL PLAY</B> -- MIDI data is sent out as determined by the timing
of the stored stream.
<LI> <B>BLAST OUT</B>   -- The entire stored sequence is sent at once, untimed.
However, any start-delay set is observed as usual (not if PLAY button is used).
</UL>
This control only affect playback itself &mdash; it doesn't affect recording
or stored data.

</UL>

<h4>
Sliders:
</h4>
<UL Type="none">
<LI> <B>Tempo</B>  -- Controls the playback rate if the Timing is 'Scaled'.
Also, conversion to or from the internal time base when the mode is changed
is done based on the current setting of the slider.
The rate is shown as "beats/minute", but this is <i>only</i>
an indication of the actual tick interval.
It has no relation to the rate at which notes might have been
entered.
<LI> <B>Start Delay</B>  -- If playback is initiated by MIDI or Control event,
it will only actually begin after this delay (shown in 100ths sec).  The slider
has no effect when recording or when playback is started directly from the
<B>PLAY</B> button.  When the tempo is changed in 'Scaled' mode, this delay
is also adjusted to match the change in tempo.
<LI> <B>End Delay</B>  --  a sequence will not be rewound at its end
until this delay has elapsed -- and therefore cannot be restarted (by MIDI or
Control event) before this.  It also of course determines the delay between
repetitions when in Loop mode.  Like <B>Start Delay</B>, it is modified by
any Scaled tempo change.
</UL>


For more information, see
<!-- This will probably change: -->
<A HREF="../../Documentation/RePlay.html#RePlay">RePlay</A>
in the "MIDI Modules" documentation.
<BR>

</body>
</html>
