WAV to BMP & Back!

Discussion in 'C++' started by CoreyWhite@gmail.com, Aug 24, 2006.

  1. Guest

    Convert WAV To BMP And Back

    On RentaCoder one of the 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 representation that looks like a graphical
    wav file. I expect a colorful psychedelic mess.

    What I suggest is a simple command line interface that has all the
    fields for the headers as boxes for input. The number of colors in the
    image, the height and width, etc. And all the fields for the type of
    sound on the other. And then the user gets to make a manual switch.

    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, minus the size of the headers (which change depending on the
    size of the headers fields).


    Here is some data...

    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 -

    The content of the files doesn't matter it is all 1s and 0s, the
    headers determine the size. We could do another experiment just like
    this with a wav file, and see how the size of the file relates to the
    wav files headers.


    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. And obviously we
    could also take real life images or abstract or and see what they
    "sound like".
    , Aug 24, 2006
    #1
    1. Advertising

  2. Howard Guest

    <> wrote in message
    news:...
    > Convert WAV To BMP And Back
    >


    All that sounds like an interesting idea, but there's no C++ language
    question here. Perhaps someone in comp.graphics (or comp.dsp?) might be
    able to assist in that. Or, a Google search for "photoshop format" or
    something. I assume it's a proprietary format, but you might find
    information somewhere that will let you convert the header portion from one
    format to the other. Not here, though. This forum is specifically for
    discussing C++ language issues.

    -Howard
    Howard, Aug 24, 2006
    #2
    1. Advertising

  3. Guest

    Incase you are interested, here is the dissasembled output of two BMP
    files from 010 Edit, a Hex Editor. With C++ you can go in their and
    convert a BMP to a WAV by understanding outputs like these. And I'm
    looking for coders I can hire to do the job.

    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
    :
    :


    Howard wrote:
    > <> wrote in message
    > news:...
    > > Convert WAV To BMP And Back
    > >

    >
    > All that sounds like an interesting idea, but there's no C++ language
    > question here. Perhaps someone in comp.graphics (or comp.dsp?) might be
    > able to assist in that. Or, a Google search for "photoshop format" or
    > something. I assume it's a proprietary format, but you might find
    > information somewhere that will let you convert the header portion from one
    > format to the other. Not here, though. This forum is specifically for
    > discussing C++ language issues.
    >
    > -Howard
    , Aug 24, 2006
    #3
  4. red floyd Guest

    red floyd, Aug 24, 2006
    #4
  5. Guest

    red floyd wrote:
    > wrote:
    > > [top posted, off topic reply redacted]

    >
    > What part of off-topic do you not understand?
    >
    > see http://www.parashift.com/c -faq-lite/how-to-post.html#faq-5.9
    >
    > Also, please don't top post.
    >
    > see http://www.parashift.com/c -faq-lite/how-to-post.html#faq-5.4


    You got to follow up on these things.. And here are some dissasembled
    WAV files for those of you who are interested in coding converters.

    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
    , Aug 24, 2006
    #5
  6. Jim Langston Guest

    <> wrote in message
    news:...
    >
    > red floyd wrote:
    >> wrote:
    >> > [top posted, off topic reply redacted]

    >>
    >> What part of off-topic do you not understand?
    >>
    >> see http://www.parashift.com/c -faq-lite/how-to-post.html#faq-5.9
    >>
    >> Also, please don't top post.
    >>
    >> see http://www.parashift.com/c -faq-lite/how-to-post.html#faq-5.4

    >
    > You got to follow up on these things.. And here are some dissasembled
    > WAV files for those of you who are interested in coding converters.
    >
    > 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
    > --------


    <snipped stuff no one here is interested in>

    This is *off topic*. Try some other newsgroup where it's actually on topic.
    Please.
    Jim Langston, Aug 24, 2006
    #6
  7. Jerry Coffin Guest

    In article <>,
    says...
    > Convert WAV To BMP And Back


    First and foremost, you're completely off-topic here.

    Second, you're utterly insane. To mix audio files in any useful way, you
    need to use software that's written for the job. Photoshop is not, never
    has been, and almost certainly never will be intended for mixing audio
    files.

    What you're asking right now is about equivalent to having heard that
    "microwave ovens are more efficient than gas", so you've decided to
    replace your car's engine with a microwave oven, and we need to tell you
    how big of a microwave to use...

    --
    Later,
    Jerry.

    The universe is a figment of its own imagination.
    Jerry Coffin, Aug 25, 2006
    #7
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Allan Herriman

    Re: VHDL testbench: read BMP Files?

    Allan Herriman, Aug 21, 2003, in forum: VHDL
    Replies:
    1
    Views:
    5,180
    Allan Herriman
    Aug 21, 2003
  2. Martin Thompson

    Re: VHDL testbench: read BMP Files?

    Martin Thompson, Aug 21, 2003, in forum: VHDL
    Replies:
    0
    Views:
    971
    Martin Thompson
    Aug 21, 2003
  3. Harry Simpson

    32 dpp BMP to 24dpp BMP??

    Harry Simpson, Oct 30, 2003, in forum: ASP .Net
    Replies:
    0
    Views:
    344
    Harry Simpson
    Oct 30, 2003
  4. WAV to BMP

    , Aug 24, 2006, in forum: C Programming
    Replies:
    9
    Views:
    461
    Skarmander
    Aug 26, 2006
  5. '2+
    Replies:
    2
    Views:
    489
Loading...

Share This Page