Jerome wrote: > I'm writing the milestone 3, but I have never use ioctl function. > > that what I write: > > FILE *fichier =3D fopen("/dev/midi/ymf754/1", "rw"); > int file =3D fileno(fichier); //result is 3 seems to be OK I hope you mean here: int fd =3D fileno(fichier); Or, much simpler: int fd =3D open("/dev/midi/ymf754/1", O=5FRDWR | O=5FEXCL); > uchar *data =3D [0x90 0x39 0x64]; > midi=5Ftimed=5Fdata DataToSend; > DataToSend.when =3D time; > DataToSend.size =3D length; > DataToSend.data =3D data; > int i =3D ioctl(fd, B=5FMIDI=5FTIMED=5FWRITE, &DataToSend, > sizeof(midi=5Ftimed=5Fdata)); > > Like this in midi=5Fdriver.h > > But I have always i =3D=3D -1 that means an error appear > > If you have an idea Most probably, the timed read and write API is not supported by current BeOS midi drivers. Since midi2 and his midi=5Fserver, the midi events read & write timing is not done anymore (if it was ever!!!) by /dev/midi/* drivers but by the midi=5Fserver and BMidiConsumers/Producers. I'm not sure, but I guess if you try to simply write(fd, data, 3); it would works better. When I worked on a usb=5Fmidi kernel driver, the midi=5Fserver seems to never call ioctl(B=5FMIDI=5FTIMED=5F*) on it but simply do loop on read() and, eventually, write() to it when an midi event raise. You may want to ask Oliver about his YMP754 driver MIDI API support, too... -Philippe -- Fortune Cookie Says: Mandrell: "You know what I think?" Doctor: "Ah, ah that's a catch question. With a brain your size you don't think, right?" -- Dr. Who