ftp.nice.ch/pub/next/unix/audio/cmusic.bs.N.tar.gz#/src/frm/impulse.c

This is impulse.c in view mode; [Download] [Up]

#include <stdio.h>
#include <math.h>
#include <carl/carl.h>

main(narg,argv) 
	int narg; 
	char *argv[]; 
{

    register long i, n = 1024 * 4, delay = 0;
    float one = 1.0, zero = 0.0;

    if (narg > 3 || argv[1][0] == '-') {
	fprintf(stderr, "Usage: impulse length (in samples)\n");
	exit(1);
    } else if (narg == 3){
	    delay = expr(argv[2]);
	    n = expr(argv[1]) - delay;
    } else if (narg == 2) 
	    n = expr(argv[1]);
    if (isatty(1)) {
	for (i = 1; i <= delay; i++) printf("0.000000\n");
	printf("1.000000\n");
	for (i = 1; i < n; i++) printf("0.000000\n");
    } else {
	for (i = 1; i <= delay; i++) putfloat(&zero);
	putfloat(&one);
	for(i = 1; i < n; i++) putfloat(&zero);
    }
    flushfloat();
    exit(0);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.