bj wrote:
ok, so if i do this:
1. open a .wav file using notepad
2. copy the contents of the .wav file from notepad
3. create a
char *soundstring="";
in my c file;
4. paste the contents of the .wav file between the quotes in
char *soundstring="";
like so
char *soundstring="IOBD820Ṳ鷏..";//or something like that
5. escape the characters in *soundstring
6. and use fopen ("file.wav", "wb") to write the characters of
*soundstring to file.wav
this will work?
This is getting off topic, but you cant do it exactly like that, because
some numbers
in a .wav file have no printable characters who you can paste from
notepad.
Instead you need to convert the wav file to a numbers description
suitable for a C compiler.
Something like this:
#include <stdio.h>
int main ()
{
FILE *fp;
int c, first;
fp = fopen ("nicesound.wav", "rb");
printf ("unsigned char nicesound_buf[] = {\n");
first = 1;
do
{
c = fgetc (fp);
if (!first && EOF != c)
{
printf (", ");
}
first = 0;
if (EOF != c)
{
printf ("%u\n", c);
}
} (EOF != c);
fclose (fp);
printf ("}\n");
return 0;
}
compile this program and run it with ./programname > sound.c
then include sound.c into your program and in your program dump the
buffer like this:
int dumpsound (void)
{
FILE *fp;
fp = fopen ("dump.wav", "wb");
if (!fp)
{
fprintf (stderr, "Can not open file.\n");
return 1;
}
fwrite (nicesound_buf, sizeof (nicesound_buf), 1, fp);
fclose (fp);
return 0;
}
After that you can play your sound in dump.wav
Of course, this is untested code, but hopefully the concept comes
through. You also need to think
about where you put your file and so on. Also there will be as many
lines in sound.c as there are
bytes in the wav, so for testing I suggest you start with as small a wav
file as possible.
regards,
Jakob