Your problem is in this line:
player.y += velocity;
which fails to take into account that velocity is "distance divided by time".
You're correctly modelling acceleration:
v = u + a * t // v = current velocity, a = acceleration, t = time
but not distance, which for small enough delta
is:
delta_s = v * delta_t
You need to multiply velocity
by delta
before adding it to to the position.