v2.0.0 — Foundation
First release of DTMF-Decoder v2 — a ground-up rewrite of the 2015/16 single-jar decoder as a Gradle multi-module Java 17 library.
Artifacts
| Coordinates | Purpose |
|---|---|
com.tino1b2be:goertzel:2.0.0 |
General-purpose Goertzel filter + bank |
com.tino1b2be:dtmf-core:2.0.0 |
DTMF detection, generation, streaming |
com.tino1b2be:dtmf-bom:2.0.0 |
BOM pinning coordinated versions |
Not yet published to Maven Central; planned for a follow-on release.
Public API
- Batch:
DtmfDecoder.decode(double[] | short[] | float[] | int[], DtmfConfig)plusdecodePcm24(int[], DtmfConfig) - Push:
DtmfDetector+onTone(Consumer<DtmfTone>)+process(chunk)overloads - Pull:
DtmfStream implements Iterator<DtmfTone>, AutoCloseable - Generator:
DtmfGenerator.generate(String, DtmfConfig) - Config:
DtmfConfig.forTelephony() | forVoip() | forNoisyAudio()plusadvanced()builder
Tests
225 passing (216 unit + 9 integration), 0 failures. All 21 correctness properties validated by jqwik property tests.
Standards
Conforms to [ITU-T Q.23](docs/standards/T-REC-Q.23-198811-Igit branch -d v2-foundation && git fetch --prune 2>&1 && echo --- && git branch -aPDF-E.pdf) (tone generation) and [ITU-T Q.24](docs/standards/T-REC-Q.24-198811-Igit branch -d v2-foundation && git fetch --prune 2>&1 && echo --- && git branch -aPDF-E.pdf) (detector behaviour including Standard_Twist +4 dB / −8 dB).
Documentation
docs/requirements.md— EARS-format behavioural contractdocs/design.md— architectural rationale and the 21-property test matrix
What's out of scope (planned for follow-ons)
File I/O (WAV/MP3/OGG), CLI, GUI, microphone capture, Android, Maven Central publishing. See docs/requirements.md#out-of-scope.
Migration from v1
The v1 API under com.tino1b2be.dtmfdecoder has been removed without a compatibility shim. See the old source on any commit before efd78a6 if you need it.