Java amplitude processing
There are a number of ways to do this, but I like this way:

// very rough pseudocode
step_size = 9000000 / width_of_window;  // 9000000 or however many points
for each pixel in width of window
  figure out what portion of the audio stream this x value corresponds to
  take step_size shorts corresponding to position in audio stream
  find the minimum and maximum values in that portion of the stream
  draw a vertical line at the current x value with position and length corresponding
      to the min and max values you found


So basically you're displaying the min and max values of successive portions of the stream in each column of your draw box, or canvas, or whatever you're using.