<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def normalize_audio_buffer(buf, volume_percentage, sample_width=2):
 """Adjusts the loudness of the audio data in the given buffer. Volume normalization is done by scaling the amplitude of the audio in the buffer by a scale factor of 2^(volume_percentage/100)-1. For example, 50% volume scales the amplitude by a factor of 0.414, and 75% volume scales the amplitude by a factor of 0.681. For now we only sample_width 2. Args: buf: byte string containing audio data to normalize. volume_percentage: volume setting as an integer percentage (1-100). sample_width: size of a single sample in bytes. """

    if sample_width != 2:
        raise Exception('unsupported sample width:', sample_width)
    scale = math.pow(2, 1.0*volume_percentage/100)-1
    # Construct array from bytes based on sample_width, multiply by scale
    # and convert it back to bytes
    arr = array.array('h', buf)
    for idx in range(0, len(arr)):
        arr[idx] = int(arr[idx]*scale)
    buf = arr.tostring()
    return buf