def rgb2psychorgb(rgbgun):
    """Returns a converted RGB gun
    
    arguments
    rgbgun    -- a (R,G,B) or (R,G,B,A) tuple containing values between 0
               and 255; other values (e.g. 'red' or hex values) may be
               passed as well, but will be returned as they were
    returns
    psyrgb    -- a (R,G,B) tuple containing values between -1 and 1; or
               rgbgun when passed rgbgun was not a tuple or a list
    """
    if type(rgbgun) not in [tuple, list]:
        return rgbgun
    psyrgb = []
    for val in rgbgun:
        psyrgb.append(val / 127.5 - 1)
    return tuple(psyrgb[0:3])
