Martin H. Eastburn @ home at Lions' Lair with our computer lionslair at consolidated dot net NRA LOH & Endowment Member NRA Second Amendment Task Force Charter Founder IHMSA and NRA Metallic Silhouette maker & member
One place I worked was too cheap to buy an ultrasonic cleaner, so I would cut the top two inches off a 2 liter pop bottle. Then I dropped fur or five Alka-Seltzer tablets in, added the dirty parts, and filled it with enough water to cover the parts. It didn't get everything, but what little was left was easily removed by a quick swipe with a typewriter brush under running water. It cut about 95% of the time required to do it all by hand.
Don't use mineral spirits in an ultrasound bath; the power level is designed for cavitation in the working fluid, which is intended to be water (small amounts of additives are OK). Just as you should never run the ultrasound with the tank empty. And the power level is high enough to cause local boiling; don't put your fingers in.
Windex (glass cleaner) makes a good ultrasound fluid; low residue after removal/drying, it contains wetting agent and mild (alcohol?) solvent.
Water, small amounts of added alcohol and soap, is a general purpose cleaner. For rust stains, consider using a plastic inner tank and some oxalic acid (this will etch steel or stainless, so never use on ferrous metals). For grease, consider adding a dollop of waterless hand cleaner; it will glom onto greasy things in the crevices and make 'em rinse off. But the fluid turns milky, so you can't watch it happen. Washing soda (dishwasher detergent, OxyClean, it's all the same stuff) is good too.
Vinegar, lye, and dilute ammonia can also be useful additives, but probably not for bicycle parts.