I have always assumed I am tone deaf because I have no memory for music. Although I can harmonize, or sing a long with a song or others, I cannot reproduce it if I am not hearing it currently or within a short interval. I can also hear myself when I am off key. I took a test on my phone and could clearly distinguish between notes and whether one note was played higher or lower without guessing, but I had a little problem when it came to whether the sound was sweeping up or down (perhaps because I was doing it over my phone at a lower volume.) Is there a way I can train my ears and voice? Or am I helpless because my brain is unable to memorize music?
From what you say, it's clear that your ears or voice are not the problem. If you can sing along properly to a song, it means you're absolutely not tone-deaf. And harmonizing with a song is something that not nearly everybody can do, so you're not lacking anything there.
To improve your ability to memorize music, your first and foremost option is to learn to read sheet music, and start practicing your singing with written music. Not being able to memorize music may be caused by the fact that you can't relate the sounds you hear to any theoretical/abstract concepts. Once you are familiar with notes and what they represent, you will start intuitively relating the music you hear to notes. That makes memorizing it a lot easier.
What kind of music are you singing? If you have an emotional connection to the music (i.e. you like it), remembering it should usually become a lot easier. If you are able to sing and memorize pieces you really enjoy, you have a starting point. When you have learnt a bunch of enjoyable songs, you will have something to associate new pieces to, and learning other (perhaps less enjoyable) pieces becomes easier, as you can relate them to previous experience ("oh, this passage reminds me of that awesome crescendo in 'Afraid to shoot strangers'!") .
Your voice and ears will evolve when just singing different melodies. But take care to not strain or damage your voice. I would definitely recommend a vocal coach. He/she will be able to give suitable instruction for whatever level you're at. If you can't go to a coach, there are a lot of great instruction videos on e.g. youtube, that teaches methods for singing in a healthy and natural (and fun!) way. Probably there's a lot of different preferences out there, but I like this guy: http://www.youtube.com/user/EricArceneaux
Best of luck!
What you need is basic ear training.
Get a keyboard or find one as an app on a smartphone. Even a Fisher Price toy keyboard or xylophone will do, anything where you can play notes, and see what you are playing. Then play a note, any note. Play the next note up. How well can you hear the difference? If its hard to tell the difference, play the first note again, then two notes up. Repeat until you find an interval you can easily hear. Then try the same thing going down. Now you’ve got a baseline for what you can do already, and you just need to expand on it.
Now you can try singing those notes. If you’ve got a keyboard or an app, you should be able to move up and down the keyboard until you find something in a range you can match while singing. Once you can sing the notes while playing them, play just the first note, then guess where the second is by singing it without playing. Then check yourself. If you were right, repeat with a different pair of notes. If you were wrong, figure out if you were high or low. Sing the wrong note again, and use the keyboard to find the closest note. It may not be an exact match for any of the keys, because there is a lot space between notes.
Once you can match this large interval, try with a smaller interval, just one note less. This should be where you were struggling to hear a difference before. Once you can hear this one, try again with a smaller interval. This will get you used to thinking about whether notes are up and down from each other, as well as getting better at matching it.
1) Search online for “ear training exercises”. There’s a lot of information out there, and some games that basically do the same thing I recommended, but that might be more fun and varied, and have a steadier rate of increase in difficulty than something you are making up.
2) See if you can find other people who want to learn to sing. Working with other musicians is a great way to improve you listening skills as well as your ability to make music.
3) Once you’ve got intervals down of single notes, you can start learning to recognize chords, when several notes are played at once.
4) If you are serious about learning to sing, even just basics, you might want to find a teacher. Look around until you find someone who looks at your problems as either an exciting challenge, or who has working with severely musically challenged adults before. If you go through a music school, make sure you talk with the actual voice teacher before starting, and make sure you can take a sample lesson or two before committing to more.
5) For the suggestion to learn to read music, if you improve your ability to recognize intervals and match notes, and you still absolutely can’t memorize music, reading music might help. But if you see two notes on a page, and have no clue what they might sound like, or how much space is between them, reading music will be very, very difficult.
I can't give you tips, because i am not a musician I only can tell you a story this might help. One of my daughters is not naturally musical, the other is. When she was six she could not sing a song in pitch, I think she even didn't hear that she was not in pitch. Later we changed school and they do a lot of music (singing, recorder, violin, marimba) and little by little she learned how to sing. And even on the violin she is mostly in pitch (with the help of stickers though). In the beginning her violin play was a torture. I think practice together with maybe learning an instrument helps.