code: def _set_field(self, fieldname, bytestring, transfunc=None):
          
          if getattr(self, fieldname):  # do not overwrite existing data
              return
          value = bytestring if transfunc is None else transfunc(bytestring)
          if DEBUG:
              stderr('Setting field "%s" to "%s"' % (fieldname, value))
          if fieldname == 'genre' and value.isdigit() and int(value) < len(ID3.ID3V1_GENRES):
              # funky: id3v1 genre hidden in a id3v2 field
              value = ID3.ID3V1_GENRES[int(value)]
          if fieldname in ("track", "disc"):
              if type(value).__name__ in ('str', 'unicode') and '/' in value:
                  current, total = value.split('/')[:2]
                  setattr(self, "%s_total" % fieldname, total)
              else:
                  current = value
              setattr(self, fieldname, current)
          else:
              setattr(self, fieldname, value)
docs: convienience function to set fields of the tinytag by name.
          the payload (bytestring) can be changed using the transfunc