Rather than drawing notes in, try performing the parts live. This works best with a velocity sensitive midi controller, either piano or drum pads, to capture all aspects of the performance.

Below, I'll go over some of the most effective ways to add variety to your productions, making them sound less robotic and more organic. Feel free to try different combinations of these techniques to see how they shape your sound. These methods mostly apply to working inside the box, but further options are available if sounds are reproduced in real physical spaces; using techniques like re-amping, and live mic recording.

Let's face it, repetition is boring. Regardless of what genre of music you write, you don’t want to bore your listeners. Music is all about movement; the better you are at humanizing the elements of your song, the better chance you'll have of moving your audience.

To play most effectively, you'll want to set a low audio buffer size, such as 64 or 128 samples. This will minimize latency and you'll be hearing your performance in near real-time. A latency of below 10ms is what you should be recording with. You may need to turn off other plugins in order to set your buffer size this low without experiencing audio dropouts. Dropouts are caused by the CPU not being able to keep up with processing sound in real-time.

Consider bouncing the session and pulling the file into a new project. You can easily record your parts into this new session, and then pull them back into your old session in order to mix them. Playing parts in adds subtle velocity and timing variations that make your music more interesting. Even if your timing isn't perfect, it can be later corrected manually, or by using quantization.

2. The 80% Rule of Quantization

If you played your part in with a MIDI controller, try quantizing it to 80%, rather than 100%. By avoiding extreme quantization, some of the timing imperfections remain which make music sound more human.

Dance music typically has pretty precise timing, but supporting elements and other genres get can stray from this norm. 16th note quantization is a good place to start, as quantizing to 8th notes may be too drastic. Generally, a good rule of thumb is to quantize to the smallest note used in the arrangement; experiment with the various quantization settings.

If notes were quantized in an undesirable way, or you want more in depth control of the timing, manually move the notes afterwards. Avoid the temptation to snap notes perfectly to the grid; this can really suck the life out of your song. Turning off grid snap, or holding down the DAW-appropriate hotkeys (typically shift, ctrl, or alt) to disable it temporarily can be helpful.

3. Add MIDI Randomization

Whether you're working with an overly quantized, stale MIDI clip, or want to spice up your own creations further, randomizing midi can be a very effective way to add variation. This can be done manually by moving notes slightly off the grid and choosing different velocities for each note. It can also be done automatically through utilities that change the velocity and timing based on the criteria you set.

Ableton has a built in MIDI randomization device; try the 'add some random' preset. Check your DAW's manual to see if it has any built in MIDI utilities. If it doesn't have any, 3rd party utilities are also available. If you’re manually setting a MIDI randomizer, try setting the timing and velocity to around 3-5%; this is a good starting point.

In the drum sampler Battery by Native Instruments, there's a knob called 'humanize' which randomizes the timing of MIDI notes. If set too drastically, the timing may sound jarring compared to other instruments, or the dynamics will become so varied that it makes mixing difficult. MIDI randomization is especially helpful for 16th note hi-hat rolls.

4. Add Resonance Boosts to Samples

Live drums don't sound the same, so why do your samples need to? Using multiple recordings of the same hit would be ideal (round robin sampling), but there's also a way to imitate these differences.

To do this, duplicate the sample you're using onto 2 or 3 drum pads. On each drum pad, add a wide-band resonance boost that differs for each sample. Then, scatter your MIDI notes across the drum pads; this will make it seem like there are various recordings of the same piece of percussion being triggered.