title: Sound - what is raw sound data?
body: <p>I have code that decodes an MP3 and populates an array with all the 'values'.
  My question is: what are those values? Are they frequencies? Are they amplitudes? 
  This is the code:</p>
  
  <pre><code>File file = new File(song.getFilepath());
                  if (file.exists()) {
                      AudioInputStream in = AudioSystem.getAudioInputStream(file);
                      AudioInputStream din = null;
                      AudioFormat baseFormat = in.getFormat();
                      AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
                              baseFormat.getSampleRate(),
                              16,
                              baseFormat.getChannels(),
                              baseFormat.getChannels() * 2,
                              baseFormat.getSampleRate(),
                              false);
                      din = AudioSystem.getAudioInputStream(decodedFormat, in);
                      ByteArrayOutputStream out = new ByteArrayOutputStream();
                      byte[] data = new byte[4096];
                      SourceDataLine line = getLine(decodedFormat);
  
                      int nBytesRead = 0, nBytesWritten = 0;
                      while (nBytesRead != -1) {
                          nBytesRead = din.read(data, 0, data.length);
                          if (nBytesRead != -1) {
                              nBytesWritten = line.write(data, 0, nBytesRead);
                              out.write(data, 0, nBytesRead);
                          }
                      }
                      byte[] audio = out.toByteArray();
                      System.err.println(audio.length);
                      for (byte b : audio) {
                          System.err.println(b);
                      }
                  }
  </code></pre>
  
  <p>I get about 40,000,000 numbers (length of byte array) for a 3 minute song, but I have no idea what they are?</p>