def dump(lyrics, kcl=True): """Dump data from Lyrics instance to Lyrics3 v2.00 format Args: lyrics (Lyrics): Lyrics instance to dump as Lyrics3 v2.00 data Kwargs: kcl (bool): Include KCL lyrics in addition to LYR lyrics; this allows us to include higher-precision timestamps in a backwards-compatible way. Returns: str. String containing Lyrics3 v2.00 data, including "LYRICSBEGIN" but not including size descriptor and "LYRICS200" string. """ lyrData = timedtext.dump(lyrics, crlf=True) if len(lyrData) >= 10**FIELD_SIZE_LENGTH: raise ValueError, "Lyrics too long" lyrics3Data = (START_TAG + "LYR{{:0{}}}".format(FIELD_SIZE_LENGTH).format(len(lyrData)) + lyrData) if kcl: kclData = timedtext.dump(lyrics, frac=True) if len(kclData) >= 10**FIELD_SIZE_LENGTH: raise ValueError, "Lyrics too long" lyrics3Data += ("KCL{{:0{}}}".format(FIELD_SIZE_LENGTH).format(len(kclData)) + kclData) return lyrics3Data
def LoadLyrics(self, lyrics): self.edit_separator() self.delete('0.0', tk.END) if lyrics is not None: self.insert('0.0', timedtext.dump(lyrics, frac=True)) self.edit_reset() self.edit_modified(False)