I can see the music!

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

  1. Guest

    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
    :
    :
     
    , Aug 24, 2006
    #1
    1. Advertising

  2. Howard Guest

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


    So, which part of "Off-Topic" did you not understand?
     
    Howard, Aug 24, 2006
    #2
    1. Advertising

  3. red floyd Guest

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

    >
    > So, which part of "Off-Topic" did you not understand?
    >

    Glad you liked my reply to Corey, Howard. :)
     
    red floyd, Aug 24, 2006
    #3
    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. Mike Chan

    Music

    Mike Chan, Aug 19, 2003, in forum: ASP .Net
    Replies:
    1
    Views:
    567
    Jurjen de Groot
    Aug 20, 2003
  2. Flip
    Replies:
    3
    Views:
    1,009
    Tony Morris
    Feb 9, 2004
  3. Steve Kershaw
    Replies:
    1
    Views:
    396
    Brennan Stehling
    Sep 26, 2006
  4. Replies:
    2
    Views:
    128
    Sebastian Hungerecker
    Feb 2, 2008
  5. Justin Wyllie
    Replies:
    5
    Views:
    265
    Peter Pan
    Jan 11, 2005
Loading...

Share This Page