I'm a little confused about what you want to do. I'm guessing (from the code you selected) that you want to change which bg music plays somehow. Can you be more specific about what change you want to make?
One example that I previously mentioned was how I could get background music by world number rather than by area type. The default music selection judgment is by area type.
~Ben
If you wanted to load the bg music based on world number (a value 0-8?), expand the table to have 9 values, and then load the world number in Y and use it as an index into the table.
;01 = ground
;02 = water
;04 = underground
;08 = castle
;10 = cloud
;20 = pipe intro
$90E7: 01 ; World 0, ground music. I assigned music randomly for an example
$90E8: 01 ; World 1
$90E9: 01 ; World 2
$90EA: 02 ; World 3
$90EB: 08 ; World 4
$90EC: 10 ; World 5
$90ED: 10 ; World 6
$90EE: 04 ; World 7
$90EF: 02 ; World 8
$90F0 AD 70 07 - lda $0770 ;Check menu screen
$90F3 F0 09? - beq $90FD ;And skip if menu
$90F5 AC 5F 07 - ldy $075F ;Load World number
$90F8 B9 E7 90 - lda $90E7, y ;grab the corresponding song
$90FB 85 FB - sta $FB ;queue it up
$90FD 60 - rts ;quit
$90FE+ NOP
Expanding your table makes the code start at $90F0 instead of $90ED, so you will have to update all jumps or subroutine calls to $90ED. To avoid this you could stick the table after the code instead.
It might be easier to leave the music code alone and instead go into the level data and change each level's "area type".