  Envelope detection techniques have applications in areas like medicine, sound
classification and synthesis, seismology and speech recognition. Nevertheless,
a general approach to digital envelope detection of signals with rich spectral
content doesn't exist, as most methods involve manual intervention, in the form
of filter design, smoothing, and other specific design choices, based on prior
knowledge of the signals under investigation. To address this problem, we
propose an algorithm that uses intrinsic characteristics of a signal to
estimate its envelope, eliminating the necessity of parameter tuning. The
approach here described draws inspiration from geometric concepts to estimate
the temporal envelope of an arbitrary signal; specifically, a new measure of
discrete curvature is used to obtain the average radius of curvature of a
discrete wave, that will serve as a threshold to identify the waves samples
that are part of the envelope. The algorithm compares favourably with classic
envelope detection techniques based on smoothing, filtering and the Hilbert
Transform, besides being physically plausible. We provide visualizations of the
envelope extracted via the algorithm for various real-world signals, with very
diverse characteristics, such as voice, spoken and sang, and pitched and
non-pitched musical instruments, and discuss some approaches to assess the
quality of the obtained envelopes. A Python module implementing the algorithm
was made available via the Python Package Index; interactive visualizations of
envelopes for a diverse range of digital waves, as well as the source code for
the Python implementation, are available online.
