1. Overview
Stemify ("the App", "we", "us") is a music stem separation app for Android. This Privacy Policy describes what information is collected when you use Stemify, how it is used, who it is shared with, and your choices. By using the app, you agree to the practices described here.
Stemify uses third-party services — Google AdMob for advertising, Firebase Analytics for usage insights, and Firebase Crashlytics for crash reporting. These services collect limited device and usage data as described in the sections below.
2. How the app works
Here is the full flow of how Stemify works from the moment you open it:
- Import: You select an audio file (MP3, WAV, FLAC, AAC, OGG) from your device using the system file picker. The file path is read locally — no upload occurs.
- Decoding: The audio is decoded to raw PCM samples entirely in your device's memory using Android's MediaCodec hardware decoder.
- AI model inference: The decoded audio is processed by an on-device ONNX model (HTDemucs by Meta AI) running via ONNX Runtime. The model runs entirely offline on your device's CPU/NPU. Your audio never leaves the device.
- Mixer screen: The separated stems (vocals, drums, bass, other) are loaded into a multi-track mixer. You can independently control each stem's volume, mute, or solo tracks.
- Download: You can export individual stems or all stems as WAV files directly to your device's Music folder.
Banner ads are displayed on the home and processing screens. An interstitial (full-screen) ad may be shown when you tap "Open Mixer" after processing completes, depending on ad availability and frequency caps.
3. What data is collected — summary
4. Your audio files
When you import a song, Stemify reads the audio file directly from your device storage. The file is loaded into RAM, processed entirely on-device, and the resulting stems are written back to your local Music folder. At no point is any audio data transmitted over the internet or stored on any server operated by us or any third party.
The on-device AI model (HTDemucs) is embedded in the app itself. It runs locally using ONNX Runtime and requires no internet connection to function. Even if your device is in airplane mode, Stemify will process your song without any degradation in quality or functionality.
5. Advertising (Google AdMob)
Stemify is free to use and is supported by advertising provided by Google AdMob, a service operated by Google LLC. AdMob displays two types of ads in Stemify:
- Banner ads — displayed at the bottom of the home screen and processing screen while you wait for your song to be processed.
- Interstitial ads — a full-screen ad that may appear when you tap "Open Mixer" after processing completes. These appear at most once per session and only when ad inventory is available.
To serve relevant ads, AdMob may collect and use:
- Your device's advertising ID (a resettable identifier)
- Approximate location (country/region level, derived from IP address)
- Device model, OS version, and app version
- Ad interaction data (impressions, taps)
AdMob may serve personalised ads based on your interests, or contextual ads if you have opted out of personalisation. You can manage your ad preferences at any time:
- On your Android device go to Settings → Privacy → Ads
- Tap "Reset advertising ID" to get a fresh ID
- Enable "Opt out of Ads Personalisation" to receive contextual ads only
AdMob's data practices are governed by the Google Privacy Policy. We do not have access to the data AdMob collects and cannot control its use beyond the settings Google provides.
6. Firebase Analytics
Stemify uses Firebase Analytics (by Google) to collect anonymous usage statistics that help us understand how the app is being used and identify areas for improvement.
Firebase Analytics may collect:
- Screen views and navigation patterns (e.g. which screens are visited)
- Feature usage events (e.g. "processing started", "stems exported")
- Session duration and engagement metrics
- Device type, OS version, app version, and language
- A pseudonymous Firebase Installation ID (not linked to your real identity)
Firebase Analytics data is not linked to your name, email, or any personally identifiable information. We do not collect song names, file contents, or any information about the music you process.
You can opt out of Firebase Analytics data collection on Android by going to Settings → Privacy → Ads → Opt out of Ads Personalisation, or by using a network-level ad blocker. Firebase respects the system-level opt-out signal.
Firebase Analytics data is governed by the Firebase Privacy Policy.
7. Firebase Crashlytics
Stemify uses Firebase Crashlytics to automatically collect crash reports when the app encounters an unexpected error. This helps us identify and fix bugs quickly so the app stays stable for all users.
When a crash occurs, Crashlytics collects:
- The crash stack trace (technical code location of the error)
- Device model, Android version, and app version at the time of the crash
- Whether the app was in the foreground or background
- Approximate time of the crash
- A pseudonymous Crashlytics installation UUID
Crashlytics does not collect your audio files, stem files, song names, or any content you process in the app. Crash reports contain only technical diagnostic information.
Crashlytics data is governed by the Firebase Privacy Policy.
8. Background processing & foreground service
Stem separation is a computationally intensive task that can take 2–10 minutes depending on song length and device hardware. To ensure this process completes reliably — even if you switch to another app or your device tries to reclaim memory — Stemify runs a foreground service during processing.
What this means for you:
- You will see a persistent notification in your status bar while processing is running (required by Android for all foreground services).
- If you press the Home button or switch apps, processing will continue uninterrupted in the background.
- If you swipe the app away from the Recents screen (force-quit it), the foreground service keeps running and the notification remains visible until processing completes.
- When processing finishes, the notification updates to show "Done!" and the service stops automatically.
- You can cancel processing at any time by tapping Cancel in the app or the Cancel action in the notification.
| Property | Stemify foreground service |
|---|---|
| Service type | dataSync — local computation only |
| Continues if app is closed / swiped away | Yes — by design |
| Transmits audio data externally | Never |
| Triggered remotely or on a schedule | No — only when you import a song |
| Stops automatically when done | Yes — always |
| Can be cancelled by user | Yes — in app or via notification |
| Visible notification shown | Yes — required by Android |
9. App permissions
| Permission | Why it's needed |
|---|---|
READ_MEDIA_AUDIO(Android 13+) |
To let you select and import audio files from your device storage. Only grants access to audio files — not photos or documents. |
READ_EXTERNAL_STORAGE(Android 12 and below) |
Same purpose as above, for older Android versions. |
WRITE_EXTERNAL_STORAGE(Android 9 and below) |
To save exported stem WAV files to your Music folder on older Android versions. |
FOREGROUND_SERVICEFOREGROUND_SERVICE_DATA_SYNC |
To keep the stem separation process running even when you navigate away from the app. |
WAKE_LOCK |
To prevent the CPU from sleeping mid-processing, which would corrupt the output audio. |
INTERNET |
Required by AdMob (to serve ads), Firebase Analytics, and Crashlytics. Not used for audio processing. |
POST_NOTIFICATIONS(Android 13+) |
To show the processing progress notification in your status bar. |
10. Third-party services summary
| Service | Purpose | Data collected | Privacy policy |
|---|---|---|---|
| Google AdMob | Banner & interstitial ads | Ad ID, device info, ad interactions | Google Privacy Policy |
| Firebase Analytics | Anonymous usage statistics | Screen views, events, device info (no PII) | Firebase Privacy |
| Firebase Crashlytics | Crash & error reporting | Stack traces, device info, app version | Firebase Privacy |
| Google Play | App distribution & updates | Managed entirely by Google | Google Privacy Policy |
HTDemucs (the AI model used for stem separation) is open-source software by Meta AI. It runs entirely on your device and does not connect to Meta's servers in any way.
11. Children's privacy
Stemify is not directed at children under the age of 13 and does not knowingly collect personal information from children. The app does not have account creation, social features, or any mechanism by which a child could submit personal information to us.
Please note that Google AdMob, Firebase Analytics, and Crashlytics may collect limited device information as described above. If you are a parent or guardian and believe your child has used the app, please contact us and we will work with you to address any concerns.
12. Your rights & choices
- Opt out of ad personalisation: Go to Settings → Privacy → Ads on your Android device and enable "Opt out of Ads Personalisation".
- Reset your advertising ID: Settings → Privacy → Ads → Reset advertising ID.
- Delete stem files: All processed stems are stored on your device. You can delete them at any time via your file manager or from within the app.
- Revoke storage permission: Go to Settings → Apps → Stemify → Permissions and revoke audio/storage access at any time. Note this will prevent you from importing songs.
- Uninstall the app: Uninstalling Stemify removes all locally stored data associated with the app, including cached stems and app preferences.
- Firebase data: To request deletion of Firebase Analytics or Crashlytics data associated with your pseudonymous installation ID, contact us at the email below and we will process your request with Google.
13. Changes to this policy
We may update this Privacy Policy when we add new features, integrate new services, or in response to changes in applicable law. When we make material changes, we will update the "Last updated" date at the top of this page.
We encourage you to review this policy periodically. For significant changes, we will show an in-app notice. Continued use of Stemify after any changes constitutes your acceptance of the updated policy.
14. Contact us
If you have any questions, concerns, or requests regarding this Privacy Policy or your data, please contact us:
We aim to respond to all enquiries within 48 hours.