Woke me up.
Mission accomplished.
A few things you can do though, if you're going to have a dedicated "Set" button, make it display somewhere on the program the currently set time. It makes the user feel a bit more confident (because we really do put alot of confidence in alarm clocks if you think about it.)
Another option is to have the "On" button double as the "Set" button.
Also, one more thing you could do is have it so when the clock is set, have it make a test sound so that the user automatically knows that, if left alone, it will make a sound, because computers are not perfect and once or twice I have had my sound card fuck out on me overnight (both on windows and linux). Help the user identify any potential problems before they go to sleep.