regular stereo L and R channels are encoded independently
middle/side (M/S) joint stereo L+R and L-R are encoded in place of L and R
intensity joint stereo high frequencies are encoded mono with some stereo imaging info
M/S + intensity joint stereo a combination of M/S for low freqs and intensity for high freqs
when the player says "joint stereo" which one is it?
One of the last three. :-)
I realize madplay doesn't tell you, mostly because libmad doesn't return this information in a way that's easily recognized.
For Layer III (only), when frame.mode == MAD_MODE_JOINT_STEREO, the frame.mode_ext bits have the following meaning:
0x1 intensity stereo 0x2 M/S stereo
either or both of these will be set in joint stereo mode.
I might be convinced to put this information in frame.flags in a way that's compatible with all layers; madplay could then also more easily show it.
-rob