Create a stack of waveform images from audio data.
        Return path to created image file.

def waveform_stack(mediafiles, xy_size, output=None, label_style=None, 
        center_color=None, outer_color=None, bg_color=None):
    """ Create a stack of waveform images from audio data.
        Return path to created image file.
    """
    img_files = []
    output = output or os.path.abspath(os.path.dirname(os.path.commonprefix(mediafiles)))
    if os.path.isdir(output):
        output = os.path.join(output, "waveforms.jpg")
    cmd = [config.CMD_IM_MONTAGE] + shlex.split(label_style or WAVE_LABEL_STYLE)
    cmd += ["-tile", "1x%d" % len(mediafiles), "-geometry", "%dx%d" % xy_size, "-label", "%t"]

    try:
        tempdir = tempfile.mktemp(__name__)
        os.makedirs(tempdir) 

        for mediafile in sorted(mediafiles):
            img_files.append(waveform_image(mediafile, xy_size, tempdir, center_color, outer_color, bg_color))

        cmd.extend(img_files)
        cmd.append(output)
        subprocess.check_call(cmd, stdout=open(os.devnull, "wb"), stderr=subprocess.STDOUT)
    finally:
        if os.path.isdir(tempdir):
            shutil.rmtree(tempdir, ignore_errors=True)

    return output