Music is stored in the assets folder in the .minecraft folder, but it appears that you can probably add sound to the assets folder inside the jar using the same structure (specifically, the sounds for older versions are inside of .minecraft\assets\virtual\legacy, where the various folders found here are recreated in jarfile\assets\minecraft). At least, this is what resource packs do, but I'd assume that the game will also read them from the assets folder inside the jar (note that sounds.json doesn't exist for versions prior to 1.7, which tells the game where to find custom sounds, I haven't tested this and have just reused sounds from other entities when adding my own entities).
Also, if you want to directly modify the jar you have to make a custom version by copying the 1.0.0 folder within versions, then rename the copy to a custom name, including the folder, jar, and json, then open the json and change the version ID to the same name and remove the entire "downloads" section which references client.jar (example of both, with everything shown here to be removed except for the last line, which is the version ID. Nothing else in the file should be modified). This is very important as otherwise the launcher will think the file is corrupt and redownload a clean copy; the same will also happen if you delete the downloads but don't rename it.
it is also possible to modify the .minecraft\assets folder but you must play offline to prevent the launcher from reverting your changes (nearly all files in .minecraft are checked for data integrity on every launch, with the exception of game data files like world saves, configuration settings, and resource/data packs; this is why I highly advise against reinstalling the entire game to fix an issue).