/* makes wav file */ void makewav(const UL rate,const UL dlen){ const UL mlen=dlen+44; UC*const m=malloc(mlen); if(m){ wavhdr(m,rate,dlen); makeaud(m+44,rate,dlen); savefile("out.wav",m,mlen); } }
/* makes wav file */ void makertty(UL freq, UL baud, int DataBits, int StopBits, char *Message, char *Filename) { UL preamble_length, postamble_length, cycles_per_bit, cycles_per_byte, total_cycles, message_length; UC* m; FILE *f; int i, NumberOfBits; f = fopen(Filename,"wb"); // Calculate size of file preamble_length = 20; postamble_length = 10; printf ("message=%s\n", Message); EscapeCharactersIn(Message); message_length = strlen(Message); printf ("baud=%d\n", baud); printf ("freq=%d\n", freq); cycles_per_bit = freq / baud; printf ("cycles_per_bit=%d\n", cycles_per_bit); NumberOfBits = 1 + DataBits + StopBits; cycles_per_byte = cycles_per_bit * NumberOfBits; // 1 stop 7 data 2 stop printf ("cycles_per_byte=%d\n", cycles_per_byte); total_cycles = (cycles_per_byte * message_length) + ((preamble_length + postamble_length) * cycles_per_bit); // Make header m = malloc(44); wavhdr(m, freq, total_cycles); // Write wav header fwrite(m, 1, 44, f); // Write preamble for (i=0; i< preamble_length; i++) { make_and_write_bit(f, cycles_per_bit, 1); } // Create and write wav data while (*Message) { make_and_write_byte(f, cycles_per_bit, DataBits, StopBits, *Message++); } // Write postamble for (i=0; i< postamble_length; i++) { make_and_write_bit(f, cycles_per_bit, 1); } fclose(f); }