The difficulty is in the database design. So concentrate on that.
I would probably add a second table to my database called DeliveryOptions.
It would have columns like: UniqueID (autonumber), ProductID (Song ID), SKU, Price, Description
Then on my current page I could filter that table with the Song ID for the song I was displaying and return the different format options. I would use a DW recordset to get those options and populate a list. I would put the description as the text in the list, and the UniqueID as the value.
Then I would either get creative and use the same recordset, or create a second recordset to contain the filtered result from the selected list.
That way in the add to cart button I can update the Price, SKU, and Description fields to come from that lookup recordset filtered from the list populated from the new table.