I've just bought a bass from a heavy smoker and I'm having trouble getting rid of the smell. It's bad enough to make me not want to play the instrument. What can I do to get rid of the odour?
Light it on fire and then buy another bass! Seriously though, what I've found has worked in the past is to immediately discard the case and buy a new one. But then, set the case aside. Hang the guitar in a room that gets OK air flow (i.e. not in a closet or closed off bedroom). Clean it often with a microfiber cloth dipped in very (very!) hot water, and a drop of detergent. Wipe down well with a second cloth that's barely moistened with hot water, and repeat as needed over the next 6 months or so. Even with a lot of elbow grease and some good airflow the smell will be somewhat permanent, but you can definitely make it less offensive.
Used car dealers use an Ozone Machine to remove cigarette odors from used cars. Might be worth renting one and putting it in a closet with the bass for a couple of days after you've cleaned it the best you can.
Ozone is a very powerful oxidizer - if you go that route, I would be very careful with the dose and check regularly. It could easily cause damage to the finish or metal parts on your bass if overdone. But yeah, it's great at oxidizing the contamination that is causing the smell too! Another good avenue if you want to go that route is just plain old unfiltered UV from sunshine. Again though, it can just as quickly damage your finish.
Seal it up in a big cardboard box with a hand full of loose dryer sheets for a few days. I've seen this work with electronics, just make sure its a dryer sheet with a scent you like!
Thanks for all your suggestions and pointers. I got a recommendation from a guitarist that polishing the body, applying lemon oil to the fretboard, and replacing the strings will get rid of all odours. Any thoughts on that suggestion?