code: def decodeOSC(data):
      
      table = {"i":readInt, "f":readFloat, "s":readString, "b":readBlob}
      decoded = []
      address,  rest = readString(data)
      typetags = ""
  
      if address == "#bundle":
          time, rest = readLong(rest)
  #       decoded.append(address)
  #       decoded.append(time)
          while len(rest)>0:
              length, rest = readInt(rest)
              decoded.append(decodeOSC(rest[:length]))
              rest = rest[length:]
  
      elif len(rest) > 0:
          typetags, rest = readString(rest)
          decoded.append(address)
          decoded.append(typetags)
          if typetags[0] == ",":
              for tag in typetags[1:]:
                  value, rest = table[tag](rest)
                  decoded.append(value)
          else:
              print "Oops, typetag lacks the magic ,"
  
      return decoded
docs: Converts a typetagged OSC message to a Python list.