I will ask our lawyer about this. I know he was working on it, but lawyers get busy. So I’ll check!
I have worked it both way – had the dev send an agreement first and vice versa. Negotiating is another art altogether, and wouldn’t be covered by any contract we’d post here. That is up to you.
Generally you can work on a per/minute rate for music and get paid on milestones as you submit them, or in a couple of chunks, depending on the amount of music needed. Or you can quote it as a project rate. If you are using live musicians, then it gets more complicated, and you have to spell out who is supposed to be paying them, the studio, the contractor etc. If you’re starting out, this probably isn’t a concern.
If it is an indie game, and you are working on it with friends, then simply make an agreement that you get a fair percentage of the revenue (agree on a number), and maybe that you can sell your soundtrack separately. Everyone does it a bit differently.
If it is for one of these ‘cheap’ casual game companies that already have several games out and are obviously paying their coders, artists, producers etc, be sure to charge up front and at a decent rate.
I have clients that I have a standard deal with, which involves 1)my estimate based on the info they gave me, 2)a deposit, usually 50%, and then balance due upon completion of all revisions. Then I have friends who I make indie games with and we come up with create stuff, like rev shares, soundtrack sales etc…even bartering…an artist I make sounds for might end up giving me album cover art later etc…
I can definitely say that an agreement should be created and signed before any work is done, even if it’s not legalese, at least you have managed your expectations and put in writing what everyone is responsible for. It’s a necessary roadmap to have for the development of the project.