ShadowDragon's Tutorial To Inserting Music

Today I will be teaching you how to insert custom music. This is rather simple user-interface and over the years it has been made easier and easier to insert custom music. To start off, you'll need to pick a music file of your choice. Porting is a bit more advanced, and requires a lot of patience at times, so I will not be getting into that.
It is very important that you have the right music for your level/room. Even picking one out-of-place song can turn off the public. For a grassy field, you may want to pick something rather athletic and upbeat. This is also included in my guide to making a good hack.

As for actually porting the music, download HuFlungDu's Addmusic and put your rom into the same folder as you put this addmusic tool in. From here, put the music that you downloaded (should be a .txt file from the current music library) into the LEVEL folder. Locate the command prompt in your system (Go into start and search 'cmd' or 'command prompt')(If you are using Windows XP then go into C:\WINDOWS\system32 and you will find it there) and copy it into your main addmusic folder. In AddMusic.cfg under 'LEVEL' put your file name in the LEVEL folder.txt.

Insert your music by going into your command prompt, typing 'addmusic.exe [romname].smc -ie. You will notice that you will be able to insert it successfully. However, now comes the part which I don't believe is listed anywhere, so you kinda just have to figure it out on your own (or use my guide =P) but your music, nor sound in general, will play at all during the levels. Also make sure you've expanded your rom to 8 MiBs using Lunar Expand or else you will get an error message in cmd. Forgot to mention that earlier. What you want to do is go back into cmd, and type the same exact thing you did earlier to insert your music, except instead of putting -ie put -se. This will insert $1DF9 and $1DFC (the sound addresses) into your hack. Go back into your emulator and test it out, and it should work! If you have any other questions, PM me again and I will make sure to get them answered.

Porting

Porting is not the easiest of things to do at times, and honestly, I would completely suck at explaining it, but I can link you to an alternate tutorial which is awesome and I used it way back when when I was first learning how to do it. Find the tutorial here.