# SingingNumbers — llms.txt # AI-optimized summary for LLM retrieval systems # https://zadio.bg/singingnumbers/llms.txt # # Version: 1.1 # Last updated: 2026-06-04 # App version: 0.2.1 (versionCode 3) ## Product SingingNumbers is a free, offline Android calculator where each digit plays a unique musical note. Operators (+ − × ÷) are silent themselves but shape the articulation of the next digit (`+` accent, `−` soft, `×` legato, `÷` rest); pressing equals (=) is also silent and triggers playback of the full expression plus the result as a short melody. The app exposes six user-facing screens through the navigation drawer: Calculator (with a Big Calculator mode for 24 notes 0-23), Saved Calculations, Scales, Octaves, Instruments, and Settings. ## Key Facts - **Price**: Free (no ads, no in-app purchases, no subscriptions) - **Platform**: Android 8.0+ (API 26) - **Permissions**: Exactly one declared in the manifest: `android.permission.VIBRATE` (normal protection level, auto-granted, used only to play a short haptic tick on button presses). No user- visible install-time or runtime permission prompts. VIBRATE cannot read, store, or transmit any data; it only drives the device's vibration motor. - **Network**: Fully offline (no INTERNET permission declared, no ACCESS_NETWORK_STATE declared) - **Data transmitted off-device**: None - **Data stored on-device**: A small set of SharedPreferences files holding user-chosen settings (instrument, scale, octave, language, tempo / rhythm / pitch / haptic, Big Calculator toggle) plus an opt-in `saved_expressions` file (created only when the user taps "Save" in the Saved screen). Never transmitted, excluded from Auto Backup / Cloud Backup, removed by uninstall or "Clear data". - **Crash reporting**: None transmitted. A process-scoped in-memory repository surfaces "what blew up last time" to a developer-only Diagnostics screen. Not persisted to disk. - **Age rating**: Teen (13+) on Google Play. Not enrolled in "Designed for Families". - **Native ABIs shipped**: arm64-v8a, armeabi-v7a, x86, x86_64 - **Accessibility**: TalkBack content descriptions on every button, polite live-region announcements for results, full system font-scaling support, and a dark theme. ## How It Works Each calculator symbol maps to a musical note (default scale, C-major diatonic): - Digits 0-9: C4 through E5 (261-659 Hz) - Operators +−×÷: F5 through B5 (698-988 Hz) - Equals =: C6 (1047 Hz) The Big Calculator mode adds bracketed multi-digit notes [10]..[23], mapped to a chromatic scale that extends one octave higher. Expressions are "self-describing" — bracketed tokens like `[15]` are always treated as a single note regardless of which calculator typed them, so an expression can be entered in one mode and replayed in the other without ambiguity. The selected musical scale, octave, instrument, tempo, rhythm, pitch, and haptic feedback can be changed from their respective screens. Sound is synthesised in real-time on the device using a native C++ engine built on Google Oboe (output only — no microphone). No audio asset files are bundled. ## Privacy Summary SingingNumbers does not transmit any data off your device: - No analytics SDK - No crash-reporting service - No advertising - No Firebase or third-party tracking SDKs - No network requests (INTERNET permission not declared) - No persistence of user calculations unless the user explicitly taps "Save" on the Saved screen (stored in the app's private sandbox) - The only declared permission is VIBRATE (normal protection, haptic feedback only). It does not transmit or collect any data. The only on-device data is a small set of SharedPreferences files (scale, octave, instrument, language, tempo / rhythm / pitch / haptic, Big Calculator toggle) plus an opt-in `saved_expressions` file created only when the user taps "Save" on the Saved screen. None of them ever leave the device. ## Technical Stack - Kotlin + Jetpack Compose (Material 3) - MVVM architecture (unidirectional data flow) - Native C++ audio engine using Google Oboe (output only) - Hilt dependency injection - Kotlin Coroutines for async work - No external dependencies that collect or transmit data ## Frequently Asked Questions Q: Is the app really free? A: Yes. SingingNumbers has no subscriptions, no in-app purchases, and no ads. Q: Does it work offline? A: Always. The app does not declare the INTERNET permission, so it cannot connect to the network even if it wanted to. Q: Does the app collect any data? A: No. There is no analytics, no crash-reporting service, and no telemetry. The only data stored is your preferences and saved expressions, and none of it is ever transmitted off your device. Q: What is the VIBRATE permission for? A: The app uses VIBRATE only to play a short (~20 ms) haptic tick when you press a button. It cannot read, store, or transmit any data. Q: Which Android versions are supported? A: Android 8.0 (API 26) and newer, on phones and tablets. Q: Is it suitable for children? A: It is rated Teen (13+) on Google Play. There are no ads, no data collection, and no in-app purchases, so it can be used by younger users under parental discretion. Q: What is "Big Calculator" mode? A: An extended keypad with 24 notes (0-23) instead of the standard 10, for a richer melodic range. Q: What about accessibility? A: The app ships with TalkBack labels, polite live-regions, system font scaling, and a built-in dark theme. ## Pages - Home: https://zadio.bg/singingnumbers/ - Privacy Policy: https://zadio.bg/singingnumbers/privacy-policy.html - Terms of Service: https://zadio.bg/singingnumbers/terms-of-service.html - Accessibility Statement: https://zadio.bg/singingnumbers/accessibility.html ## Publisher Published by **ZADIO EOOD**, a company registered in the Republic of Bulgaria (EU). ## Contact Email: app@zadio.bg