.TH GetMpuCmd 3  "The Droid Works"
.UC 4
.SH NAME
\fLGetMpuCmd\fR, \fLputMpuCmd\fR, \fLPutMpuCmd\fR, \fLputTCWME\fR, \fLPutTCWME\fR, \fLputTCIP\fR, \fLPutTCIP\fR \- read and write midi data through the Roland MPU-401
.SH SYNOPSIS
.ft L
cc ... -lmidi
.br
#include <midi.h>
.ft R
.sp
.ft L
.ft L
MpuCmd *
\fBGetMpuCmd\fP\fR (\fLf\fP, \fLm\fP) 
.ft R
.na
.nf
.in +5
FILE *\fLf\fP;
MpuCmd *\fLm\fP;
.in -5
.fi
.ft R

Read a midi command in mpu-401 format from \fLf\fP and put it in \fLm\fP.
Beware: the \fLm\->mpu_cmd\fP field points to static memory;
save it if you are doing simultaneous \fLGetMpuCmd()\fP's.
.in +5

.in -5

\fBputMpuCmd\fP\fR (\fLfd\fP, \fLm\fP) 
.ft R
.na
.nf
.in +5
MpuCmd *\fLm\fP;
.in -5
.fi
.ft R

Write midi command \fLm\fP to file descriptor \fLfd\fP.
.in +5

.in -5

\fBPutMpuCmd\fP\fR (\fLf\fP, \fLm\fP) 
.ft R
.na
.nf
.in +5
FILE *\fLf\fP;
MpuCmd *\fLm\fP;
.in -5
.fi
.ft R

Write the midi command \fLm\fP to \fLFILE *f\fP.
.in +5

.in -5

\fBputTCWME\fP\fR (\fLfd\fP, \fLt\fP) 
.ft R
.na
.nf
.in +5
.in -5
.fi
.ft R

Write a \fItiming clock with measure end\fP MIDI command with offset \fLt\fP
onto file descriptor \fLfd\fP.
When writing out long lists of \fIplay\fP data, a TCWME event
must occur every \fL2*Period\fP (default=480) ticks;
cf. \fLMidiStretch\fP, etc.
.in +5

.in -5

\fBPutTCWME\fP\fR (\fLf\fP, \fLt\fP) 
.ft R
.na
.nf
.in +5
FILE *\fLf\fP;
.in -5
.fi
.ft R

Same as \fLputTCWME(fileno(f), t)\fP.
.in +5

.in -5

\fBputTCIP\fP\fR (\fLfd\fP) 
.ft R
.na
.nf
.in +5
.in -5
.fi
.ft R

Write a \fItiming clock in play\fP MIDI command with offset \fLt\fP
onto file descriptor \fLfd\fP.
In the absence of other MIDI events, a TCWME event
must occur every \fLPeriod\fP (default=240) ticks;
cf. \fLMidiStretch\fP, etc.
.in +5

.in -5

\fBPutTCIP\fP\fR (\fLf\fP) 
.ft R
.na
.nf
.in +5
FILE *\fLf\fP;
.in -5
.fi
.ft R

Same as \fLputTCIP(fileno(f))\fP.
.in +5

.in -5
.ft R
.SH AUTHOR
Michael Hawley, Lucasfilm Ltd.
(dagobah!mike)
