/*                               -*- Mode: C -*- 
 * Filename: test.simple.c
 * Copyright (C) Dan Noland 2003
 * Author: Daniel A Noland
 * Created: Thu Jan 22 10:29:55 2004
 *           By: Dan Noland
 * Last-Updated: Thu Apr 22 04:27:38 2004
 *     Update #: 6
 * Status: 
 */

#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <string.h>

#define FREQ 440.0     /* tone Hz */
#define RATE 900.0     /* sampling Hz */
#define DURATION 16000   /* scales with RATE */

/* mono, 8 bits/sample */
static const char audio_dev[] = "/dev/dsp";
 
int main(int argc, char *argv[])
{
  FILE *audio_fd;
  unsigned char sample;
  float f;
  int i, j;
        
  if (!(audio_fd = fopen(audio_dev, "w"))) 
  {
    fprintf(stderr, "%s: open %s: %s\n", *argv, audio_dev, strerror(errno));
    return 1;
  }
  
  for (i=DURATION, f=0.0; i--; f += (FREQ/RATE))
  {
    sample = sin(f)*128.0 + 128;
    fputc(sample, audio_fd);
  }
  fclose(audio_fd);
  return 0;
} 
 

