In your room your mix sounds fantastic, but in the car or on a mates stereo it sounds pretty rough.
Typically the music is being recorded and mixed in a small or medium sized room with soundwaves bouncing all over the place. This results in frequencies cancelling each other out, making it difficult to hear what’s actually going on.
The only way to control them is to have no walls or to use heavy, high density material to absorb these soundwaves.
Don't waste time on marketing and myths. Egg cartons, carpet, mattresses and light foam are not going to do what you need. They may give you an instant win on the high frequencies, but will not help with the bulk of your issues in the low and mid frequencies.
Another disappointing theory is putting a solid plastic or wood partition up, kinda like a dressing room or office cubicle.. This is simply making the room smaller. I have never heard this idea deliver the intended results.
Again, what you really need to do is remove some walls, to let the sound waves simply travel into the distance and never reflect back… or you need to absorb the energy out of them before and after hitting the walls, so they are all or almost all gone by the time they make it back to the source.
If knocking down your walls is not an option, or even if it is, and it will introduce outside noise, then you may need to try the more reasonable option of adding some acoustic treatment to your room.
Simply hang 4 high density panels like these
around your studio, put them at the first reflection points or across the corners. They will absorb a big chunk of the low and mid reflections, and by default they will take care of a lot of your high frequency issues too! Plus they are a lot better looking than carpet, blankets and egg crates on the walls!
Depending on where you live, you can get me to bring over a set to assess your needs, and hear the results first hand and help make sure you put them in the most efficient locations around your room.