Here's some code to make the empeg beep. I've had to butcher it a little
but it should still compile... :-)
Pitch is in MIDI notes (thanks to John) - he informs me that 60 is probably middle A - he may have the scale wrong.
Duration is in milliseconds. It is asynchronous but closing the device kills off any pending notes (I think).
beep.c
#include <stdio.h> #include <fcntl.h> #include <string.h> #include <stdlib.h> #include <sys/ioctl.h> #include <unistd.h> #include <math.h> #define EMPEG_DSP_MAGIC 'a' #define EMPEG_DSP_BEEP _IOW(EMPEG_DSP_MAGIC, 0, int) int main(int ac, char *av[]) { int fd; int pitch = 60; int duration = 500; int args[2]; fd = open("/dev/dsp", O_RDONLY); if (ac == 3) { pitch = atoi(av[1]); duration = atoi(av[2]); } if (fd < 0) { perror("Couldn't open dsp.\n"); return 1; } args[0] = pitch; args[1] = duration; if (ioctl(fd, EMPEG_DSP_BEEP, args) < 0) perror("ioctl.\n"); usleep(duration * 1000 + 125000); close(fd); return 0; }