added GetHasteRate method, made GiveUpSeconds a metric

without haste rate, it's impossible to display an accurate BPM. Give up
time should be controllable.