def compressedListTransform(compressedList, timeStep, timeThreshold=None):
    """
    Isolates the unique values in compressedList and converts them to time
    
    timeThreshold can be set to ignore values that are not long enough, adding
    their content to whatever came before (prevents fragmenting data too much).
    """
    returnDict = {}
    countDict = {}
    lastGoodLabel = None
    for label, start, end in compressedList:
        countDict.setdefault(label, 0)
        returnDict.setdefault(label, [])
        startTime = start * timeStep
        endTime = end * timeStep
        tmpDuration = (end - start) * timeStep
        if timeThreshold is not None and tmpDuration < timeThreshold:
            if lastGoodLabel is not None and returnDict[lastGoodLabel] != []:
                returnDict[lastGoodLabel][-1][1] = endTime
                continue
        if label == lastGoodLabel:
            returnDict[label][-1][1] = endTime
        else:
            returnDict[label].append([startTime, endTime, str(countDict[
                label])])
            countDict[label] += 1
            lastGoodLabel = label
    return returnDict
