Primeiro, deve-se notar que alguns tipos de contêiner de imagens (como bmp ) Valores de 3 bytes para representar valores vermelhos, verdes e azuis, outros podem ter valores de 4 bytes para vermelho, verde, azul e canal alfa. Outros podem ter mais.
É assim que usamos computadores para representar informações visuais; isso ocorre porque se você tirasse um instantâneo e traduzisse os valores "brutos" em bytes, a quantidade real de bytes seria bastante substancial (no intervalo GB + para uma imagem de 5 "x7" se o espectro completo for usado). Por isso, usamos algoritmos e técnicas de hardware para enganar nossos cérebros ao pensar que estamos vendo uma representação colorida de uma imagem ao ser apresentada digitalmente.
I read somewhere that sines and cosines have something to do with sound.
O áudio é diferente porque há substancialmente menos informações físicas para o áudio. Som (como a luz), é uma onda (que pode ser facilmente representada por uma função seno / cosseno). Onde a luz é uma onda elétrica, o som é uma onda física. A luz é produzida em um nível atômico e a passagem de elétrons libera fótons; ondas de luz são um pouco mais complexas para se transformar em informação digital bruta do que o som. O som é produzido quando moléculas e átomos se chocam uns com os outros. Essa pressão física é relativamente fácil de passar de uma onda física para uma onda elétrica com ímãs e bobinas (como um microfone funciona). Tomando este sinal elétrico ( +/- V
), podemos transformá-lo em um sinal digital ( 1
/ 0
) para representar a onda sonora física. O áudio bruto ocupa muito menos espaço do que o visual, mas ainda assim muito mais do que o espaço disponível no disco rígido (minha coleção de 50k + de MP3 levaria mais espaço em magnitude se fosse áudio bruto).
Este sinal digital que representa a forma de onda de áudio deve agora ser renderizado para que possa ser usado ou reproduzido, já que se você pegasse os bytes de áudio brutos e os "reproduzisse" com a velocidade da sua CPU, mais do que provavelmente soar como um blip alto ou algum outro som aleatório. Para isso, a forma de onda deve ser amostrada em intervalos uniformes, representando cada intervalo como um número. Esses números são os bytes, o 0-255 que você está alterando, eles representam a forma de onda do áudio e representam coisas como frequência e volume (assumindo um formato de áudio bruto e não um contêiner como mp3
ou aac
).
Como um comentário apontou, essa resposta específica pode ser um pouco complexa (considerando o que você está perguntando e o que precisa ser explicado para uma compreensão suficiente), portanto, se perguntado aqui ou SO, recomendo dar uma olhada em < href="http://manual.audacityteam.org/o/man/digital_audio.html"> Digital Audio Fundamentals
do manual do Audacity. Tem uma boa cartilha sobre o que você está pedindo e pode ir além do que poderia ser razoavelmente explicado através de um desses fóruns.
Eu ficaria feliz em expandir mais (aqui ou em SO) se você tiver dúvidas depois de pesquisar alguma documentação. Espero que possa ajudar.