Yet my mixes sound very quiet even at the loudest points, especially on soundcloud.
I usually use Traktor for recording, and use a 4D mixer (all channels peaking no more than +6 as advised the manual). The Traktor output level is at -10db.
I’m not expecting a loud file, but when listening to one of my recorded sessions the volume needs to be turned up quite a bit, even though the recording meter is just below the red.
If you are leaving headroom in your mixes (which is a good thing) you are going to have a few db of unused bandwidth in your recorded audio file. The easiest way to fix this is to normalize the track to 0db in an audio editor. What this means is that the highest peak in the audio file will max out at 0db pushing the entire mix up to the audio threshold.
If you are still finding that the mix is not loud enough, you may have an errant peak at some point in the file that is throwing off the normalization. This happens most frequently when mixing vinyl where there may be a nearly inaudible pop or click in the vinyl that is causing an audio spike. This can be a little harder to correct but the way I do it is in Logic pro, they have a function of the audio editor called search peak. This will show you the loudest point in the file which you can then manually correct either by automation or editing the file. What I wouldn’t do is send the file through a limiter because the tracks you are playing have most likely been mastered and limited fairly heavily and further limiting is going to really reduce the audio quality.
It is also not too terrible to do light RMS Normalization rather than Peak Normalization. If you go overboard, then you lose a lot of frequency response (see the Loudness War), but the default in Sound Forge for Music is RMS to -16, which I find leaves plenty of frequency response while still boosting the volume to where it sounds like a good level to me.