While it may not fit with your translation, you asked whether frei is just used as in freedom:
You'll mostly use other words for "free of charge", but frei (as in Freibier) may also be used in German instead of kostenlos, even though not as often as in English. You also find this in related contexts, like "Lieferung frei Haus", "Frei parken" (does not mean you can park anywhere (; ) and so on.
Depending on context, however, umsonst does not only mean free or kostenlos, it can also mean vergebens or vergeblich (which aren't translations for free). This is why many people prefer kostenlos over umsonst when indicating that something is free of charge, something you should be aware of.
Specific for your purpose, the others already gave great answers - both umsonst and geschenkt sound good in my opinion. On the other hand, the ambiguity of umsonst between kostenlos and vergeblich may be made on purpose, especially in lyrics.