int ShiftTextureUV()
    {
        float numberOfTexturePixelsNeededUpdateFloat = width * (analyzer.GetWaveFormDeltaTimeProcessed() / analyzer.waveFormLengthInSeconds) + pixelFractions;
        int   numberOfTexturePixelsNeededUpdate      = (int)numberOfTexturePixelsNeededUpdateFloat;

        pixelFractions = numberOfTexturePixelsNeededUpdateFloat - numberOfTexturePixelsNeededUpdate;
        // Scroll the texture UV based on the time passed in the last update
        float uvShiftDelta = (float)numberOfTexturePixelsNeededUpdate / (float)width;

        uvShift     += uvShiftDelta;
        image.uvRect = new Rect(uvShift, 0, 1, 1);

        return(numberOfTexturePixelsNeededUpdate);
    }