-.TH AMIDI 1 "26 Jun 2006"
+.TH AMIDI 1 "16 Apr 2016"
.SH NAME
amidi \- read from and write to ALSA RawMIDI ports
.B arecordmidi(1).
.B amidi
-will filter out any Active Sensing bytes (FEh), unless the
+will filter out any Active Sensing and Clock bytes (FEh, F8h), unless the
.I \-a
-option has been given.
+or
+.I \-c
+options have been given.
.TP
.I \-S, \-\-send\-hex="..."
.TP
.I \-d, \-\-dump
Prints data received from the MIDI port as hexadecimal bytes.
-Active Sensing bytes (FEh) will not be shown, unless the
+Active Sensing and Clock bytes (FEh, F8h) will not be shown, unless the
.I \-a
-option has been given.
+or
+.I \-c
+options have been given.
This option is useful for debugging.
Does not ignore Active Sensing bytes (FEh) when saving or printing
received MIDI commands.
+.TP
+.I \-c, \-\-clock
+Does not ignore Clock bytes (F8h) when saving or printing received
+MIDI commands.
+
.SH EXAMPLES
.TP
"-d, --dump print received data as hexadecimal bytes\n"
"-t, --timeout=seconds exits when no data has been received\n"
" for the specified duration\n"
- "-a, --active-sensing don't ignore active sensing bytes\n");
+ "-a, --active-sensing include active sensing bytes\n"
+ "-c, --clock include clock bytes\n");
}
static void version(void)
int main(int argc, char *argv[])
{
- static const char short_options[] = "hVlLp:s:r:S::dt:a";
+ static const char short_options[] = "hVlLp:s:r:S::dt:ac";
static const struct option long_options[] = {
{"help", 0, NULL, 'h'},
{"version", 0, NULL, 'V'},
{"dump", 0, NULL, 'd'},
{"timeout", 1, NULL, 't'},
{"active-sensing", 0, NULL, 'a'},
+ {"clock", 0, NULL, 'c'},
{ }
};
int c, err, ok = 0;
int ignore_active_sensing = 1;
+ int ignore_clock = 1;
int do_send_hex = 0;
while ((c = getopt_long(argc, argv, short_options,
case 'a':
ignore_active_sensing = 0;
break;
+ case 'c':
+ ignore_clock = 0;
+ break;
default:
error("Try `amidi --help' for more information.");
return 1;
}
length = 0;
for (i = 0; i < err; ++i)
- if (!ignore_active_sensing || buf[i] != 0xfe)
+ if ((buf[i] != MIDI_CMD_COMMON_CLOCK &&
+ buf[i] != MIDI_CMD_COMMON_SENSING) ||
+ (buf[i] == MIDI_CMD_COMMON_CLOCK && !ignore_clock) ||
+ (buf[i] == MIDI_CMD_COMMON_SENSING && !ignore_active_sensing))
buf[length++] = buf[i];
if (length == 0)
continue;