Exsoldier:
You sir, are correct on both parts. Its the buzzer that makes the electricity do a big sine wave. I havent tried it 100% with the arduino yet tho. So im not 100% sure its gonna be a big problem.
So you want to tell whether the signal is flapping between high/low at some frequency, or a steady low.
The way I'd do this is to poll the signal value fairly frequently, for example once each time through loop(). Define a variable that holds the value of millis() when the input was seen to be high. Each time you poll the input, if the input is high then update this variable to the current value of millis(); if it's low, leave the variable alone.
Periodically, for example once each time through loop(), subtract the value of this variable from current value of millis(). In effect this tells you how much time has elapsed since the last high was seen. If this is substantially longer than the longest pulse you expect to get, it indicates that the input has stopped pulsing and is now a steady low so the alarm is now 'off'.