Felipe F. Tonello wrote: > +.I \-D, \-\-delay=mseconds > +Adds a delay in between each SysEx message sent to a device. > + while (data < (send_data + send_data_length)) { > + int len = send_data + send_data_length - data; > + char *temp; > + > + if (data > send_data) > + usleep(delay * 1000); The MIDI data is sent asynchonously, so this delay is not _between_ messages. You'd have to add 320 µs for any byte not yet sent (I guess you have to use snd_rawmidi_status_get_avail() to find out how many have been sent). > + /* find end of SysEx */ > + if ((temp = memchr(data, 0xf7, len))) This would be clearer with "!= NULL". > + len = temp - data + 1; > + > + if ((err = snd_rawmidi_write(output, data, len)) < 0) { > + error("cannot send data: %s", snd_strerror(err)); > + return err; > + } > + > + data += len; > + } > } > } Regards, Clemens _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel