From 2aa5e790a1ec4d74204d4ae3643508b0ac6b0aa4 Mon Sep 17 00:00:00 2001 From: Tom Cooks Date: Thu, 24 Sep 2026 12:43:47 -0400 Subject: Stereo recording with L/R level meters; optional Do Not Disturb while recording (1.2.0-alpha) - WavRecorder: stereo capture with mono fallback, per-channel peak levels - LevelMeterView: two-channel dBFS meter with peak hold and CLIP warning - MainActivity: silence notifications/vibrations via Do Not Disturb - Untrack large sherpa-onnx AAR and built APKs; note in TODO.md --- README.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 8b0e8ce..5aba434 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,10 @@ A minimal Android app that records uncompressed WAV audio and transcribes it on device. -- **Format:** 44.1 kHz, 16-bit, mono, PCM (no compression) +- **Format:** 44.1 kHz, 16-bit PCM (stereo when the device supports it), no compression - **Controls:** one big round button — tap to start recording (timer starts), tap again to stop and save +- **Meters:** live left/right peak level meters with a clip indicator while recording +- **Silence:** optional Do Not Disturb total silence (no notifications, no vibration) while recording - **Saving:** the WAV is written to the public **Downloads** folder as `reccoon-YYYY-MM-DD-HHMMSS-XXXXX.wav`, where `XXXXX` is a persistent 5-digit progressive counter @@ -13,7 +15,7 @@ on device. - **Transcription:** on-device, offline speech recognition with [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx) using multilingual Whisper — works with **English and Italian** -- **Name:** RECCoon · **by** wuhei · **version** 1.1.0-alpha +- **Name:** RECCoon · **by** wuhei · **version** 1.2.0-alpha - **Icon:** raccoon with a microphone ## Requirements @@ -35,18 +37,30 @@ Outputs: - `app/build/outputs/apk/debug/app-debug.apk` - `app/build/outputs/apk/release/app-release.apk` -A prebuilt copy is available at `dist/RECCoon-1.1.0-alpha.apk`. +A prebuilt copy is available at `dist/RECCoon-1.2.0-alpha.apk`. Note that the +sherpa-onnx AAR in `app/libs/` and the APK in `dist/` are **not** tracked in +git because they are large; see `TODO.md`. ## Recording -- `WavRecorder` uses `AudioRecord` (MIC source) to capture 16-bit PCM mono at +- `WavRecorder` uses `AudioRecord` (MIC source) to capture 16-bit PCM at 44100 Hz into a temporary file, then rewrites a correct 44-byte RIFF/WAVE - header when recording stops. + header when recording stops. It uses stereo when available and falls back to + mono, and reports per-channel peak levels to the UI. - `MainActivity` handles the runtime permissions, the timer, and copying the finished file into Downloads. On Android 10+ this uses `MediaStore`; on older versions it writes directly to the public Downloads directory and notifies the media scanner. +## Level meters and silencing + +- `LevelMeterView` draws a two-channel peak meter (dBFS scale) with a decaying + peak hold and a red `CLIP` warning when a sample reaches full scale. +- The **Silence notifications & vibrations while recording** checkbox switches + the phone to Do Not Disturb total silence while recording and restores the + previous setting on stop. It needs the `ACCESS_NOTIFICATION_POLICY` + permission, which the user grants in system settings when first enabled. + ## Library and player - `RecordingsActivity` lists the `reccoon-*.wav` files in Downloads. -- cgit v1.2.3