Skip to content
Martin Poiroux
Language : Français
Projects · CodeCode · Apps · 2026

Aube

An alarm clock that listens to sleep to choose when to ring. The kind of project you write for one precise need and never talk about.

An alarm rings at the set time, and the set time lands one time in two at the bottom of a deep cycle, hence the feeling of having been torn out rather than woken up. This one takes the problem differently: it is given a window of an hour and a half rather than an instant, and it picks the moment when sleep is lightest.

Animated diagram: a night in cycles. In the window before the requested time, the alarm rings at the first light sleep. Move the pointer to change the time.

To know that, it uses nothing but the phone lying next to the bed: the microphone and the accelerometer, that is, noise and movement. The wake-up that follows is gradual, nature sounds and rising light if connected bulbs are there to go along. The same cycle arithmetic works in the other direction, to say what time you should go to bed.

Sleep mode: an ambient sound to fall asleep to, before the alarm listens through the night.

The application is written in React Native, and the data stays on the device. A program entrusted with the sound of a bedroom at night has no reason to send it anywhere; synchronisation, if it ever comes, will be a choice and not a default.

Version 1.1.0, in October 2026, holds to one rule: it rings at the chosen time at the latest. A system alarm is set as a fallback from the start, and set again if the phone restarts; detection can only bring the wake-up forward. Through the night the accelerometer is read twenty times a second and summed up minute by minute; within the window, the alarm rings at the first minute that ranks among the 10% most restless of the night. In the morning, a summary gives the length of the night and an estimate of calm, light and awake phases, drawn from movement. The part that runs at night is a native module in Kotlin.

Private project, no public link