WAV to BMP

V

virtualadepts

Convert WAV To BMP And Back

On RentaCoder one of the other coders thought I just wanted him to
change the extension from WAV to BMP. Another coder brought up the
complexities of actually converting WAVs to JPGs and back again,
because JPGs are compressed. And someone else asked me how they could
actually convert it. It is easiest if we work with BMPs and WAVs
because if we worked with BMP image files you just have to get into the
binary code of the file, and swap the headers around. So as long as
photoshop thinks the WAV is a BMP file you will be able to see what it
looks like and modify it. But I don't expect a graphical
representation that looks like a traditional wav file. I expect a 1
dimensional colorful psychedelic mess. I might have to add more
dimensions to the image, depending on the frequency of the samples in
the music. It just depends on how many colors I have to work with.

It would be nice if we could do all of this live, and while I was
editing in photoshop it could show me a convenient display of what the
WAV file was intended to look like. But we will need to run
experiments to see how the file size of WAVs and BMPs relate to the
headers. The content of the files doesn't matter it is all 1s and 0s,
the headers determine the size.

I would like to be able to blend music in photoshop by mixing layers of
wav files. I can take two recordings of someone singing the same song,
and blend them together in photoshop. An example could be taking a
robot voice that sings a song, and then blending it with my voice while
I am singing. To create a more realistic robot. This is one of the
techniques they are using to make music in holywood.

I have the software to do the job now. I've downloaded 010 Editor,
which is a Hex Editor that understands how to interpret binary file
formats and has a scripting side program that can let you make
automatic conversions between files. Sweet!


audio code LPCM
Parameters 1 channels 8 bits
32000 Sampling Freq.
256 Bitrate kbps
WAV's made with tools on http://jsoto.posunplugged.com/audiotools.htm


1 sample
--------


:struct WAVRIFFHEADER header
: ID groupID[4] RIFF
: ID groupID[0] 82'R'
: ID groupID[1] 73'I'
: ID groupID[2] 70'F'
: id groupID[3] 70'f'
: long size 37
: ID riffType[4] WAVE
: ID riffType[0] 87'W'
: ID riffType[1] 65'A'
: ID riffType[2] 86'V'
: ID riffType[3] 69'E'
:struct FORMATCHUNk format
: ID chunkID[4] fmt
: ID chunkID[0] 102'f'
: ID chunkID[1] 109'm'
: ID chunkID[2] 116't'
: ID chunkID[3] 32' '
: long chunkSize 16
: short wFormatTag 1
: unsigned shortwChannels 1
: unsigned long dwSamplesPerSec 32000
: unsigned long dwAvgBytesPerSec 32000
: unsigned short wBlockAlign 1
: unsigned short wBitsPerSample 8
:
:struct DATACHUNK data
: ID chunkID[4] data
: ID chunkID[0] 100'd'
: ID chunkID[1] 97'a'
: ID chunkID[2] 116't'
: ID chunkID[3] 97'a'
: long chunkSize 1
: uchar samples[1]
: uchar samples[0] 0


10 sample
---------

:struct WAVRIFFHEADER header
: ID groupID[4] RIFF
: ID groupID[0] 82'R'
: ID groupID[1] 73'I'
: ID groupID[2] 70'F'
: id groupID[3] 70'f'
: long size 46
: ID riffType[4] WAVE
: ID riffType[0] 87'W'
: ID riffType[1] 65'A'
: ID riffType[2] 86'V'
: ID riffType[3] 69'E'
:struct FORMATCHUNk format
: ID chunkID[4] fmt
: ID chunkID[0] 102'f'
: ID chunkID[1] 109'm'
: ID chunkID[2] 116't'
: ID chunkID[3] 32' '
: long chunkSize 16
: short wFormatTag 1
: unsigned shortwChannels 1
: unsigned long dwSamplesPerSec 32000
: unsigned long dwAvgBytesPerSec 32000
: unsigned short wBlockAlign 1
: unsigned short wBitsPerSample 8
:
:struct DATACHUNK data
: ID chunkID[4] data
: ID chunkID[0] 100'd'
: ID chunkID[1] 97'a'
: ID chunkID[2] 116't'
: ID chunkID[3] 97'a'
: long chunkSize 10
: uchar samples[10]
: uchar samples[0] 0
: uchar samples[1] 0
: uchar samples[2] 0
: uchar samples[3] 0
: uchar samples[4] 0
: uchar samples[5] 0
: uchar samples[6] 0
: uchar samples[7] 0
: uchar samples[8] 0
: uchar samples[9] 0






100x100 pixels: 29.3 KB (30,056 bytes)
1x1 pixels: 60 bytes (60 bytes)


resulution 72 pixels/inch
Color Moder: RGB 8 Bit
Depth 24 Bit


- saved in photoshop -



1x1 BMP
-------

:struct BITMAPFILEhEADER bmfg
: CHAR bfType[2] BM
: DWORD bfSize 60
: WORD bfReserved1 0
: WORD bfReserved2 0
: DWORD bfOffBits 54
:
:struct BITMAPinfohEADER bmih
: DWORD biSize 40
: LONG biWidth 1
: LONG biHeight 1
: WORD biPlanes 1
: WORD biBitCount 24
: DWORD biCompression 0
: DWORD biSizeImage 6
: LONG biXPelsPerMeter 2834
: LONG biYPelsPerMeter 2834
: DWORD biClrUsed 0
: DWORD biClrImportant 0
:
:struct BITMApLINE lines[1]
: struct BITMApliNE lines[0]
: struct RGBTRIPPLE colors[1]
: struct RGBTRIPlE colors[0]
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: UBYTE padBytes[1]
: UBYTE padBytes[0] 0
:
:

100x100 BMP
-----------
:
:struct BITMAPFILEhEADER bmfg
: CHAR bfType[2] BM
: DWORD bfSize 30056
: WORD bfReserved1 0
: WORD bfReserved2 0
: DWORD bfOffBits 54
:
:struct BITMAPinfohEADER bmih
: DWORD biSize 40
: LONG biWidth 10
: LONG biHeight 10
: WORD biPlanes 1
: WORD biBitCount 24
: DWORD biCompression 0
: DWORD biSizeImage 30002
: LONG biXPelsPerMeter 2834
: LONG biYPelsPerMeter 2834
: DWORD biClrUsed 0
: DWORD biClrImportant 0
:
:struct BITMApLINE lines[1]
: struct BITMApliNE lines[0]
: struct RGBTRIPPLE colors[100]
: struct RGBTRIPlE colors[0]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
:
: struct RGBTRIPlE colors[99]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
:
: struct BITMApliNE lines[99]
: struct RGBTRIPPLE colors[100]
: struct RGBTRIPlE colors[0]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
: struct RGBTRIPlE colors[99]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
:
:
 
C

***** charles

What you want to do is "goofy".
WAV files are sound and BMP files are pictures.
Do a little more homework first before asking a question.

later.....

Convert WAV To BMP And Back

On RentaCoder one of the other coders thought I just wanted him to
change the extension from WAV to BMP. Another coder brought up the
complexities of actually converting WAVs to JPGs and back again,
because JPGs are compressed. And someone else asked me how they could
actually convert it. It is easiest if we work with BMPs and WAVs
because if we worked with BMP image files you just have to get into the
binary code of the file, and swap the headers around. So as long as
photoshop thinks the WAV is a BMP file you will be able to see what it
looks like and modify it. But I don't expect a graphical
representation that looks like a traditional wav file. I expect a 1
dimensional colorful psychedelic mess. I might have to add more
dimensions to the image, depending on the frequency of the samples in
the music. It just depends on how many colors I have to work with.

It would be nice if we could do all of this live, and while I was
editing in photoshop it could show me a convenient display of what the
WAV file was intended to look like. But we will need to run
experiments to see how the file size of WAVs and BMPs relate to the
headers. The content of the files doesn't matter it is all 1s and 0s,
the headers determine the size.

I would like to be able to blend music in photoshop by mixing layers of
wav files. I can take two recordings of someone singing the same song,
and blend them together in photoshop. An example could be taking a
robot voice that sings a song, and then blending it with my voice while
I am singing. To create a more realistic robot. This is one of the
techniques they are using to make music in holywood.

I have the software to do the job now. I've downloaded 010 Editor,
which is a Hex Editor that understands how to interpret binary file
formats and has a scripting side program that can let you make
automatic conversions between files. Sweet!


audio code LPCM
Parameters 1 channels 8 bits
32000 Sampling Freq.
256 Bitrate kbps
WAV's made with tools on http://jsoto.posunplugged.com/audiotools.htm


1 sample
--------


:struct WAVRIFFHEADER header
: ID groupID[4] RIFF
: ID groupID[0] 82'R'
: ID groupID[1] 73'I'
: ID groupID[2] 70'F'
: id groupID[3] 70'f'
: long size 37
: ID riffType[4] WAVE
: ID riffType[0] 87'W'
: ID riffType[1] 65'A'
: ID riffType[2] 86'V'
: ID riffType[3] 69'E'
:struct FORMATCHUNk format
: ID chunkID[4] fmt
: ID chunkID[0] 102'f'
: ID chunkID[1] 109'm'
: ID chunkID[2] 116't'
: ID chunkID[3] 32' '
: long chunkSize 16
: short wFormatTag 1
: unsigned shortwChannels 1
: unsigned long dwSamplesPerSec 32000
: unsigned long dwAvgBytesPerSec 32000
: unsigned short wBlockAlign 1
: unsigned short wBitsPerSample 8
:
:struct DATACHUNK data
: ID chunkID[4] data
: ID chunkID[0] 100'd'
: ID chunkID[1] 97'a'
: ID chunkID[2] 116't'
: ID chunkID[3] 97'a'
: long chunkSize 1
: uchar samples[1]
: uchar samples[0] 0


10 sample
---------

:struct WAVRIFFHEADER header
: ID groupID[4] RIFF
: ID groupID[0] 82'R'
: ID groupID[1] 73'I'
: ID groupID[2] 70'F'
: id groupID[3] 70'f'
: long size 46
: ID riffType[4] WAVE
: ID riffType[0] 87'W'
: ID riffType[1] 65'A'
: ID riffType[2] 86'V'
: ID riffType[3] 69'E'
:struct FORMATCHUNk format
: ID chunkID[4] fmt
: ID chunkID[0] 102'f'
: ID chunkID[1] 109'm'
: ID chunkID[2] 116't'
: ID chunkID[3] 32' '
: long chunkSize 16
: short wFormatTag 1
: unsigned shortwChannels 1
: unsigned long dwSamplesPerSec 32000
: unsigned long dwAvgBytesPerSec 32000
: unsigned short wBlockAlign 1
: unsigned short wBitsPerSample 8
:
:struct DATACHUNK data
: ID chunkID[4] data
: ID chunkID[0] 100'd'
: ID chunkID[1] 97'a'
: ID chunkID[2] 116't'
: ID chunkID[3] 97'a'
: long chunkSize 10
: uchar samples[10]
: uchar samples[0] 0
: uchar samples[1] 0
: uchar samples[2] 0
: uchar samples[3] 0
: uchar samples[4] 0
: uchar samples[5] 0
: uchar samples[6] 0
: uchar samples[7] 0
: uchar samples[8] 0
: uchar samples[9] 0






100x100 pixels: 29.3 KB (30,056 bytes)
1x1 pixels: 60 bytes (60 bytes)


resulution 72 pixels/inch
Color Moder: RGB 8 Bit
Depth 24 Bit


- saved in photoshop -



1x1 BMP
-------

:struct BITMAPFILEhEADER bmfg
: CHAR bfType[2] BM
: DWORD bfSize 60
: WORD bfReserved1 0
: WORD bfReserved2 0
: DWORD bfOffBits 54
:
:struct BITMAPinfohEADER bmih
: DWORD biSize 40
: LONG biWidth 1
: LONG biHeight 1
: WORD biPlanes 1
: WORD biBitCount 24
: DWORD biCompression 0
: DWORD biSizeImage 6
: LONG biXPelsPerMeter 2834
: LONG biYPelsPerMeter 2834
: DWORD biClrUsed 0
: DWORD biClrImportant 0
:
:struct BITMApLINE lines[1]
: struct BITMApliNE lines[0]
: struct RGBTRIPPLE colors[1]
: struct RGBTRIPlE colors[0]
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: UBYTE padBytes[1]
: UBYTE padBytes[0] 0
:
:

100x100 BMP
-----------
:
:struct BITMAPFILEhEADER bmfg
: CHAR bfType[2] BM
: DWORD bfSize 30056
: WORD bfReserved1 0
: WORD bfReserved2 0
: DWORD bfOffBits 54
:
:struct BITMAPinfohEADER bmih
: DWORD biSize 40
: LONG biWidth 10
: LONG biHeight 10
: WORD biPlanes 1
: WORD biBitCount 24
: DWORD biCompression 0
: DWORD biSizeImage 30002
: LONG biXPelsPerMeter 2834
: LONG biYPelsPerMeter 2834
: DWORD biClrUsed 0
: DWORD biClrImportant 0
:
:struct BITMApLINE lines[1]
: struct BITMApliNE lines[0]
: struct RGBTRIPPLE colors[100]
: struct RGBTRIPlE colors[0]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
:
: struct RGBTRIPlE colors[99]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
:
: struct BITMApliNE lines[99]
: struct RGBTRIPPLE colors[100]
: struct RGBTRIPlE colors[0]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
: ...
: struct RGBTRIPlE colors[99]

#FFFFFF
: UBYTE rgbBlUE 255
: UBYTE rgbGreen 255
: UBYTE rgbRed 255
:
:
 
T

Tony Quinn

I would like to be able to blend music in photoshop by mixing layers of
wav files. I can take two recordings of someone singing the same song,
and blend them together in photoshop. An example could be taking a
robot voice that sings a song, and then blending it with my voice while
I am singing. To create a more realistic robot. This is one of the
techniques they are using to make music in holywood.

It may be ... using audio editing software not bloody photoshop -
pillock
 
C

***** charles

Default User said:
Please don't top-post. Your replies belong following or interspersed
with properly trimmed quotes. See the majority of other posts in the
newsgroup, or:
<http://www.caliburn.nl/topposting.html>

I understand the "rules" perfectly. I thought that since the message
was soooo long and my response was so short, why should I have
to scroll all the way to the bottom to see it. I think that is just a
waiste of my and others time. And I didn't expect a quality response.

later.....
 
C

Christopher Benson-Manica

***** charles said:
I understand the "rules" perfectly. I thought that since the message
was soooo long and my response was so short, why should I have
to scroll all the way to the bottom to see it. I think that is just a
waiste of my and others time. And I didn't expect a quality response.

You could have just trimmed the quoted text appropriately.
 
C

CBFalconer

***** charles said:
I understand the "rules" perfectly. I thought that since the message
was soooo long and my response was so short, why should I have
to scroll all the way to the bottom to see it. I think that is just a
waiste of my and others time. And I didn't expect a quality response.

Then why didn't you treat it properly and trim the portion which
did not apply to your reply. Then you can post properly at the
bottom, and the whole thing makes sense.

--
Some informative links:
http://www.geocities.com/nnqweb/
http://www.catb.org/~esr/faqs/smart-questions.html
http://www.caliburn.nl/topposting.html
http://www.netmeister.org/news/learn2quote.html
 
D

Default User

***** charles said:
I understand the "rules" perfectly.

Apparently not.
I thought that since the message
was soooo long and my response was so short, why should I have
to scroll all the way to the bottom to see it. I think that is just a
waiste of my and others time. And I didn't expect a quality response.

Read what I posted again. See the part about "properly trimmed quotes"?
You didn't trim anything, then used that netiquette violation to
justify a further one.



Brian (bad form, innit)
 
S

Skarmander

Convert WAV To BMP And Back
A novel, yet fairly pointless idea. Use a sound editor. Those do come with
appropriate visualisation aids.

You could conceivably think up a translation of sound data to image data in
such a way that the image editor's operations ultimately do something
useful. There's little point to doing so, however, since almost any useful
operation you can imagine this way can be done by professional sound editing
software (possibly using a custom filter).

More to the point, however: this is comp.lang.c, and there isn't a C
question in there anywhere. You could implement a conversion algorithm in C,
and if you do and have any questions about doing so, you could post here.

S.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

I can see the music! 2
Adding adressing of IPv6 to program 1
WAV to BMP & Back! 6
Loading BMP problem. 7
bmp//array questions 3
Newbie read image help 6
Convert to Hex Problem 11
Problem Reading Bmp's .. 14

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,023
Latest member
websitedesig25

Latest Threads

Top