docs: def addGlyph(self, glyphName, unicodes=None, instanceLocation=None, sources=None, note=None):
          """
          Calculate a new glyph and add it to this instance.
          
          *   glyphName:   The name of the glyph
          *   unicodes:   The unicode values for this glyph (optional)
          *   instanceLocation:   Location for this glyph
          *   sources:    List of sources for this glyph.
          *   note:   Note for this glyph.
          """
          self.font.newGlyph(glyphName)
          glyphObject = self.font[glyphName]
          if note is not None:
              glyphObject.note = note
              # why does this not save?
          if unicodes is not None:
              glyphObject.unicodes = unicodes
          if instanceLocation is None:
              instanceLocation = self.locationObject
          glyphMasters = []
          if sources is None:
              # glyph has no special requests, add the default sources
              for sourceName, (source, sourceLocation) in self.sources.items():
                  if glyphName in self.muted['glyphs'].get(sourceName, []):
                      # this glyph in this master was muted, so do not add.
                      continue
                  d = dict(   font=source,
                              location=sourceLocation,
                              glyphName=glyphName)
                  glyphMasters.append(d)
          else:
              # use the glyph sources provided
              # if self.verbose and self.logger:
              #     self.logger.info("\tGlyph %s has special masters %s", glyphName, sources)
              glyphMasters = sources
          # make the glyphs
          try:
              self._calculateGlyph(glyphObject, instanceLocation, glyphMasters)
          except:
              self._failed.append(glyphName)