Okay... Start off by having a program called 'FinalBig'...
I can't provide a link so google it yourself. It's easy to find.
Also this requires prior knowledge in using FinalBig.
1. Gather your music!
Prepare at least 33 tracks for to suit every faction. Or if you can't find 33 tracks, then you could just have a few tracks that will play in cooperation with the game's default music. Make sure that these are in mp3 format. I haven't tested about other file types, but I think that's going on the coding of the game...
2. Rename your tracks!
Rename the tracks with the following format;
for USA music its: USA_xx.mp3 ;xx indicates the order it will play
for China its: CHI_xx.mp3 ;there are more than 33 music files, that say that campaign music is included.
for GLA music its: GLA_xx.mp3
Go to ZHINI.big and extract Music.ini
from there edit Music.ini, see illustration below.
MusicTrack Game_CHI_01 ; Music Event Filename = CHI_01.mp3 ; The file in the directory of data/audio/tracks End ; ends the code. I haven't really experimented much with it though.
You can change 'Filename' to the exact name of the track, make sure it doesn't have spaces.
3. Wrap things up!
Once you've done renaming the files.
Run FinalBig and place all your renamed music onto the program with the directory of: data\audio\tracks\.mp3
Once you've done changing 'Filenames' for the tracks.
Run FinalBig and place all your music and your edited 'Music.ini'
note: Music ini must be at directory of: data\ini\music.ini
Once you've got all those files in. Then it's time to save it as a .big file. Once saved, place the .big file on your Generals Zero Hour directory.
Play the game and test it out!