Skip to content

v2.0.0 — Foundation

Choose a tag to compare

@tino1b2be tino1b2be released this 02 May 14:44
b227f6d

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) plus decodePcm24(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() plus advanced() 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

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.