Gareth Gates performed a 17-minute song he had written when he proposed to "Coronation Street" actress Faye Brookes.
The former "Pop Idol" star popped the question at the start of the year by getting down on one knee during a trip to New York City at a friend's high rise apartment.
As well as presenting Faye with a four-carat diamond ring, Gareth also sat down at a grand piano and played the special love song he penned for his partner which was inspired by their life as a couple over the last six years.
Speaking to the new issue of OK! magazine, the "Say It Isn't So" hitmaker said: "It was all about the six years we've spent together and I incorporated bits of songs that mean a lot to us as a couple. I got a bit carried away though - it went on for 17 minutes!"
Faye - who plays Kate Connor in "Corrie" - admits it was a "perfect" proposal and she is looking forward to getting married and spending the rest of her life with Gareth, 34.
The 29-year-old actress said: "We were both crying the whole way through. Once it was finished, Gareth got down on one knee and said, "Will you spend the rest of your life with me?" And of course I said yes straight away.
"It's every girl's dream to find the perfect man for her and then have the perfect engagement, so I feel very lucky.
"To have such a beautiful ring and to share the most brilliant life with my best friend is everything I've ever wanted. He could have but any ring on my finger and I would have said yes."
Gareth and Faye's engagement comes after a brief split last September, however, after a few weeks apart they reconciled.
The singer has admitted the brief break-up was caused by work pressures for both of them.
He said: "There was a lot of strain on our relationship because I was always away with work and Faye's schedule was getting even busier so we decided we needed some breathing space."
Read the full interview in this week's OK! magazine which is out now.