yes, this delay is normal. but you can fix it. Have a google about latency
and all that typo o deal:

the theory behind it is : It takes a computer Computational cycles to produce sound.
So you have to tell your computer how “slow” it is… it will adjust itself and be in more time. This is what they mean with “latency” the buffer of sound your computer generates is “too big” and you can hear it… (everything is lagging behind)

There is also a thing called midi-delay … which is kinda the reverse of all this (not exactly) … but it gives you room to tinker with the midi-side of the story.

Some people are even bothered by midi-jitter. (this is an uneven stream of midi-data, because of computational delays and such) so they buy these machines that turn
sample-data (bit-acurate blablabla) into midi-code…

by combining all of these techniques and some puzzling you should be able to get rock-solid timing between EVERYTHING in a very pro way…

but to be honest…
I usually stuck with the latency and the midi-delay thing and play with it untill i am somewhat satisfied…

Hopes this gives you some background info to google on… because this is NOT the complete story… the whole story is , more complicated / depends a bit on setup.