3.7V to 5V step up not providing enough current
If the device crashes when you turn up the volume there is probably an issue with the supply voltage to the micro-controller. 

At max you will draw at least 1.8 amp at the 5 V side (the USB 2.0 spec is 500 mA, but often this is exceeded in actual implementations), this comes from the 3x 3 watt you can deliver to the speaker, not including leds (0.2-0.6A if driven at 10mA for each colour). Implying an even higher draw on the 3.7 volt side. The current draw will probably cause a decrease of the voltage on both the 5 volt and 3.7 volt side depending on the C rating of the battery, unfortunately this is not given for the battery, but I found a similar battery and it has a discharge rate of maximum 2C this is equivalent of 1 Amp (2*capacity) draw maximum. 

There might also be too little decoupling of the Arduino, remember that the 5V pin bypasses the on board regulator and goes straight to the chip. Your 5V rail is probably also coupled to the same rail as the speaker and the speaker will create noise on your power rail.

Try adding more caps near the Arduino to keep it from getting brownouts, you might also want to get a multi cell LiPo battery and regulate down the voltage in stead of boosting it.

When powered from the 5V on the USB the power will go trough the on board regulator and the chip will probably not experience brownouts. In addition the USB you are using is able to supply more power that the USB 2.0 spec so do not expect this to work on any USB plug.

Probing the power rails with an oscilloscope will probably help you get to the source quickly as the multi-meter is too slow to detect the spikes and drops in voltage. 

Also have you done a power calculation on your system? I will presume that you will run out of battery pretty quickly if you are playing music and blinking LEDs with the 500 mAh capacity battery.