This is srhalf.m in view mode; [Download] [Up]
#import <objc/objc.h> #import <soundkit/soundkit.h> /* compile cc -o srhalf -O srhalf.m -lNeXT_s -lsys_s */ /* usage: srhalf infile outfile */ main(argc,argv) int argc; char *argv[]; { /* simple program to copy everyother sample from one file to another (halve sampling rate) */ id aSound,bSound; char *inname,*outname; unsigned char *adata,*bdata; short *ardata,*brdata; int error,nsamps,i,j; int counter = 0; inname = argv[1]; outname = argv[2]; printf("%s %s\n",inname,outname); aSound = [Sound new]; bSound = [Sound new]; error = [aSound readSoundfile:inname]; if (error) die(error); nsamps = [aSound sampleCount]; error = [bSound setDataSize:nsamps dataFormat:SND_FORMAT_LINEAR_16 samplingRate:SND_RATE_LOW channelCount:1 infoSize:1004]; if(error) die(error); adata = [aSound data]; ardata = (short *)adata; bdata = [bSound data]; brdata = (short *)bdata; j=nsamps; i=nsamps/2; for(i=0,j=0; j<nsamps; i++,j += 2) brdata[i] = ardata[j]; printf("Writing soundfile to disk\n"); [bSound writeSoundfile:outname]; } die(error) { printf("%s\n",SNDSoundError(error)); exit(-1); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.