********************************************************************* * * * Wave maker for SoundBlaster 1.5 by HaJott * * * ********************************************************************* This is a simple wavemaker for OS/2 2.1 and DOS. It generates sine, pulse and triangle waves and writes it in a file : c:\mmos2\sounds\aaa.wav Don't be angry about the pascal source, I know, that it could be done better. But it was a fine way to find out the structure of *.wav files. I would like to add a inverse FOURIER transformation to create more sounds. If you have a sourceccode of it, please let me know. Try it and play with it ! File in the zip archive : emx.dll need to run mwave.exe mwave.c generated by p2c mwave.exe OS/2 executable mwave.mak Makefile : nmake -f mwave.mak (OS/2 and emx with nmake/2) mwave.pas pascal file for p2c mwave.tp turbo pascal file mwavetp.exe DOS executable readme.txt this file Discription of data types used to make a *.wav file : type chunk = record main : string[4]; = RIFF main_length : array[0..3] of byte; = length of file chunk_type : string[4]; = WAVE sub_chunk : string[4]; = fmt_ :_=space=ASCII 32 sub_chunk_length : array[0..3] of byte; = always 16 bytes don't know why ! format : word; = always 1 for PCM mode every SoundBlaster works with format = 1 modus : word; 1 = mono, 2 = stereo sample_freq : array[0..3] of byte; 11.025 kHz = $2B11 22.050 kHz = $5622 44.100 kHz = $AC44 bytes_per_sec : array[0..3] of byte; as it is bytes_per_sample : word; 1 = 8 Bit, 2 = 16 Bit bits_per_sample : word; only 8, 12 or 16 data_chunk : string[4]; = data data_length : array[0..3] of byte; length of data block rf : array[1..16384] of byte = wavedata end; Hans-Juergen Hochkamp Universitaet-GHS-Essen, FB 8 Institut fuer Physikalische und Theoretische Chemie Universitaetsstr. 3-7 D-45141 Essen Germany Tel. : 49-(0)201-183-3059 FAX : 49-(0)201-183-3228 EMail : cph080@vm.hrz.uni-essen.de