Although I'd probably be lumped into the "gifted" side of this situation, I wasn't born knowing what <insert note> sounds like...it took years of repetition and various other things, most of which I didn't do intentionally. Here's my suggestions:
1) Record yourself singing and playing something simple. Seriously...If you hate singing, get over yourself and do it anyways, it's the only way to truly develop your pitch recognition and possibly get to the root of the problem.
Try playing a simple major scale SLOWLY (or anything you know pretty well) and sing the notes you play and record this. Listen back to it. Do you seem out-of-tune? Not trying to be mean, but there are tons of ppl out there that believe they are singing in key when they are far from it (I encounter it in students all the time).
If you are in tune, good! Move to step 2. If not, see if your notes sound higher or lower than where the bass is playing and try matching it on the next try. This is something that takes awhile if you're not used to it. You may need the help of someone whose ears you trust if you're uncertain about how "in tune" you are.
2)
Sing the open strings of the bass while you play them (after tuning, of course). Do this every time you pick up the bass. Do this just before you put down the bass. Do this every time you have a little downtime during a rehearsal. It may or may not work for you, but slowly, you might start to remember these pitches. After 4 years in High School Band, the sound of B flat (tuning pitch) is burned into my skull along with the open strings of a Bass guitar and electric guitar.
3) In addition to learning how to play major and minor scales (while singing them),
learn what the following intervals (or jumps) sound like and eventually learn it in all 12 keys (learn how to sing them while playing too):
from the 1st note to the the 4th note of a major/minor scale (and from 4 to 1)
- from the 1st note to the 5th note of a major/minor scale (and from 5 to 1)
- Arpeggios (1st, 3rd, 5th and 8th note of a scale)
4)
Get a slow down program/training device. I recommend the Amazing Slow Downer for PC, or Anytune Pro or Anytune HQ if you have an iPhone/iPad (highly HIGHLY recommended). Start with something really simple, slow it down (I'd say start at around 70% original speed) and LEARN THE MELODY FIRST, THEN THE BASSLINE. Over time this will help you understand why you play certain things over certain chords/melodies. Take it slow and keep with it, it'll start to make sense over time.
5) In my late teens I realised I could remember what key a song I heard was in, no matter how long ago I heard it, so
I started assigning songs I love to a particular note or key to help me quickly recognise the keys of other songs. Maybe this might work for you, maybe not but give it a shot.
Regardless of what techniques you try, don't give up if it takes forever the first couple tries. Be persistent and it will get better.