Phil,
Nearly all midi sequencer software is capable of doing this.
I do this since 1995 with cakewalk (now Sonar)
Cakewalk by the way also records all midi sysx, which means sustain,volume variations used, all aftertouch etc...

Apart from the drums I allways record midi in real time playing which keeps the tracks alive and doesn't sound dead.

So it is worthwhile to have all sysx info in the miditrack at once.

I don't know which FREE sequencer software does exactly that.
But it is pretty important for obvious reasons to have all sysx as well.

Fred
_________________________
Keyboards/Sound Units: Kurzweil 2600S, Roland VR-760, Acces Virus C, Roland G-800, Akai AX60, Minimoog, Machine Drum, Roland R8-M, mediastation x-76