Unsyncedlyrics formatieren

Ich habe jede Menge Dateien mit gespeichertem UNSYNCEDLYRICS- Feld bei der eine Zeile
Written by: Hans Mustermann
oder
Songwriter: Angelika Mustermann
im Songtext enthalten ist.

Leider ist diese Zeile nicht immer durch eine Leerzeile vom Songtext getrennt (wie ich es gerne hätte).
Ich bräuchte also eine Funktion, die dafür sorgt, dass diese optische Trennung vor und dahinter durch eine Leerzeile eingefügt wird und natürlich nur dann, wenn noch keine solche Zeile vorhanden ist.

Wenn diese Zeile ganz am Anfang oder ganz am Ende des Textes vorkommt, sollte am Anfang oder am Ende des Textes natürlich auch keine Leerzeile eingefügt werden.

Am liebsten wäre mir auch eine Vereinheitlichung dergestalt, dass diese Autorenzeile immer ans Ende angehängt wird.

Das ganze ist für mich etwas zu komplex, um selber eine Lösung zu finden.

Mi folgendem Beispieltext in UNSYNCEDLYRICS
xxx||Ein Lied
mehr Lied 1
Written by: Hans Mustermann
mehr Lied 2
mehr Lied 3
mehr Lied 4
mehr Lied 5
mehr Lied 6
mehr Lied 7

und folgender regexp:
$regexp(%unsyncedlyrics%,(.*)Written by: (.*?\r\n)(.*),$1$3\r\nWritten by: $2)

wird daraus:
xxx||Ein Lied
mehr Lied 1
mehr Lied 2
mehr Lied 3
mehr Lied 4
mehr Lied 5
mehr Lied 6
mehr Lied 7

Written by: Hans Mustermann

Es sollte anschließend ein Leichtes sein, doppelte \r\ndurch einfache zu ersetzen, um überflüssige Leerzeilen zu vernichten.
Und ebenso einfach sollte es sein, ein \r\n am Ende zu löschen.

Danke.
Funktioniert nicht ganz wie gewünscht in allen Fällen (optische Abgrenzung vom Songtext).
Das muss ich mal in Ruhe testen, was genau schief läuft und warum, was ein paar Tage dauern wird.