Volume is one way, EQ-carving (filter-carving in this case) really helps.
I tend to think of audio as a sculpture. One thing that really helped me actually came from this forum. EQ out all of the unnecessary frequencies for each individual track. This is not the only way, but can produce some immediate results.
Take a sine-wave sub-bass, for example:
Below 50 Hz and above 1 kHz is unnecessary (play around with that 1 kHz setting). With two digital filters, and the Chebyshev 8n at -2dB mode selected, you can pretty much make a set of brick-wall filters (not limiters) to scoop out space for that track. For the next track, whatever that might be, perform a similar set of actions. Find the frequencies that are unnecessary and trim those out. Repeat for each track. When you’re done, your mix will have more clarity.
Visually, I would describe this as a set of notches cut out of a piece of wood or stone or metal. Notches will guide water to where it needs to go. Or think of it as plumbing. Some people do better with a combination of audio/visual description.
Compression is handy after this, but might not be as necessary, because the space that each sound needs has been created. You may only want to use compression at the end of the mix for an overall sound/volume boost. For example, this is a track I made with no compression until the end of the track and in Reaper to “master” the audio. Full explanation in the post:
Compression can be a crutch if used to correct individual sounds. Personally, I’d rather make the sounds fit together with EQ and volume, then add compression as a “spice” versus it being the main ingredient. Everybody works different