Offline v1 · iOS · bundle ID com.tunescribe.app
This checklist covers GitHub Pages (privacy/support), EAS production build, TestFlight, and App Store Connect.
eas login) with access to project 65481381-34ca-4b69-85cb-197823bf7b57 (owner wizard10fun)cd mobile
npm run typecheck
npm test
# or from repo root:
npm run preflight:ios
This gates MusicXML export/parse, quantize, transpose, OSMD system breaks, orientation helpers, MIDI bytes, and production app.config.js ATS / identity.
Templates live in this repo:
| Page | Source |
|---|---|
| Privacy | docs/legal/privacy.md |
| Support | docs/legal/support.md |
support@tunescribe.app in both files with your real contact email.mcmahonjosh/TuneScribe). Prefer branch main (or merge offline_mode first).main (or your default), folder: /docsdocs/_config.yml so Markdown renders as pages (included in repo).Confirm live URLs (adjust username/repo if different):
Verified for App Store builds when EAS_BUILD_PROFILE=production (set in mobile/eas.json):
NSAllowsArbitraryLoads / cleartext trafficwithIosDevHttp pluginexpo-dev-client plugin in the generated configITSAppUsesNonExemptEncryption: falseassets/models/**1.0.0; iOS build number via EAS remote (appVersionSource: "remote", autoIncrement: true)Dev profile still allows LAN HTTP for Metro / hotspot testing.
# Prefer a native Windows clone of the repo if UNC paths misbehave:
# cd C:\dev\TuneScribe\mobile
pushd \\wsl.localhost\Ubuntu\home\jhm359\TuneScribe\mobile
eas build --profile production --platform ios
eas submit --platform ios --latest
# Always run preflight first
npm run preflight:ios
cd mobile
eas build --profile production --platform ios
eas submit --platform ios --latest
Edit mobile/eas.json → submit.production.ios and set:
"ios": {
"ascAppId": "YOUR_NUMERIC_APP_STORE_CONNECT_APP_ID"
}
Find Apple ID (App) under App Store Connect → App Information (numeric, not the bundle ID).
You can also pass Apple credentials interactively on first eas submit.
| Area | Checks |
|---|---|
| Record | Piano + vocal; sheet / chords / both; short clip completes |
| Sheet | Grand staff (treble+bass); measures not crushed |
| Preview | Play Notes / sheet Play works after new transcription |
| Projects | New recording does not overwrite previous; list/delete |
| Transpose | Pick exported .musicxml from Files; transpose; preview + grand staff |
| Offline | Airplane mode after production build (not Metro) |
| Permissions | Mic prompt copy accurate; deny path shows alert |
Typical requirements:
Suggested shots: Projects list, Record, Processing, Project sheet (grand staff), Transpose.
| Field | Text |
|---|---|
| Name | TuneScribe |
| Subtitle | On-device piano & vocal to sheet |
| Keywords | piano, transcription, sheet music, midi, musicxml, offline |
| Description | See below |
| Promotional text | Record piano or voice. Get sheet music and MIDI on your device—no account, no upload. |
Description:
TuneScribe turns piano and vocal performances into sheet music and MIDI entirely on your device.
• Record with your microphone
• Transcribe to MusicXML, MIDI, and chord progressions offline
• Preview notes and view grand-staff sheet music
• Transpose MusicXML files to a new key
• No account required — your recordings stay on your phone
Offline v1 focuses on recording and MusicXML transpose. PDF scanning is not included.
TuneScribe transcribes piano/vocal audio on-device. Microphone is used only for recording.
There is no login. All processing runs offline after install. Demo: open Record, grant mic,
record a short melody, wait for processing, open the project to view sheet music.
Transpose: export MusicXML from a project, use the Transpose tab to pick the file.
cd mobile
eas build --profile production --platform ios
eas submit --platform ios --latest
npx tsc --noEmit