It's not that it's not doable. It just can be very difficult.
The problem is that the N64 has no "channels". All sounds are queued up on the N64 cpu via some sort of midi-esque sequencer (usually) and then are mixed together and resampled on the RSP coprocessor.
The issue here is to find out how the music player works, find out where the function calls which sets the channel volume (usually some variant of alSeqpSetChlVol - if it exists at all), and patch in where it reads those values with your own.
Method two, is if the standard smashy driver is used, this is even easier. Find out the pointer to "ALSeqPlayer" structure, then go 0x60 bytes past this. At that point there is the "ALChanState" array, which is an array of 16 channels, each of size 16 bytes, with the 9th byte being the volume for that particular channel. However, this data will be overwritten when the instrument banks are loaded in, so it must be rigged to patch this in after.