Home / LiveBand Sunday Stream / Privacy Policy
› Legal · Privacy

Privacy policy

LiveBand Sunday Stream collects no personal data. This page documents exactly what the app does with the data on your device and what it doesn't do — verified by codebase audit.

Effective April 14, 2026
Last updated June 16, 2026
App version 2.1.0 (Build 4)

Overview

LiveBand Sunday Stream (“the App”) is developed by GraniteVector Systems, LLC (“we”, “us”, “our”). This policy describes how the App handles your data.

Summary

We do not collect any personal data. The App does not use analytics, advertising, or tracking services. All app data is stored locally on your device unless you choose to enable iCloud sync.

Data We Collect

None. The App does not require an account, login, or registration. We do not collect names, email addresses, phone numbers, location data, device identifiers, or any other personal information.

Data Stored on Your Device

The App stores the following data locally:

  • Songs, lyrics, chord charts, and setlists you create or import
  • Learning progress and practice statistics
  • App preferences and settings
  • Stream configuration (RTMP URLs, SRT settings) if you use streaming features
  • Stream keys and passphrases, stored securely in your device’s Keychain
  • Show Mode PIN (iOS Controller), stored only as a salted SHA-256 hash in your device’s Keychain — we never store the PIN itself, and it is never transmitted
  • Crash diagnostics from Apple’s MetricKit framework, stored locally with file-level encryption and never transmitted to us. Reports older than 7 days are automatically deleted
  • Recent LiveBand AI assistant conversation (the on-device assistant’s recent chat history), stored locally so it persists between sessions and capped to a small number of recent turns. You can clear it at any time

This data stays on your device and is not sent to us or any third party.

iCloud Sync (Optional)

If you enable iCloud sync in the App’s settings, your songs and setlists are synced to your personal iCloud account via Apple’s CloudKit service. This data is managed by Apple under Apple’s Privacy Policy. We do not have access to your iCloud data. You can disable iCloud sync at any time.

Streaming

When you use the App’s livestreaming features (available on macOS), audio and video content is transmitted directly to the streaming destination you configure (for example, YouTube, Facebook, or a custom RTMP/SRT server). This content goes directly from your device to your chosen destination. We do not receive, store, route, or have access to your streamed content. You are responsible for your streaming destination’s privacy practices.

Local Network

The App may use your local network to discover and control audio mixers (via OSC), PTZ cameras (via VISCA-over-IP), MIDI devices, companion camera devices, NDI video sources, tally lights, and other LiveBand Sunday Stream devices for Band Sync. All local network communication stays on your network. No data from these connections is transmitted to us.

Band Sync

When you use Band Sync to synchronize setlist playback and song content with other band members, the App can communicate in two ways:

  • Local (Bluetooth / Wi-Fi): Uses Apple’s MultipeerConnectivity framework to communicate directly between nearby devices. All communication is encrypted and stays between the connected devices. Local sessions use pairing codes for secure connections.
  • Cloud (CloudKit sharing): When local connectivity is unavailable, Band Sync can optionally share session state and song content with anyone you give the session link to, using Apple’s CloudKit sharing (CKShare). The session leader creates the session inside a private area of their own iCloud account (a custom zone of the leader’s private CloudKit database) and shares it through an invite link. Anyone who has that link can open it to read and update the shared session data — song content, setlist playback state, and basic presence (device name and online status) — so you should only share the link with people you trust. The data is not placed in any public, shared-with-everyone, or developer-controlled database, and we never have access to it. When the leader ends the session, the shared session record (and the share itself) is deleted from their iCloud.

No data from Band Sync sessions — local or cloud — is transmitted to us or any third party. Band Sync is optional and requires you to explicitly start a session.

Web Remote Control (macOS)

On macOS, the App includes an optional Web Remote feature that runs a local HTTP server on your device to provide a browser-based control dashboard. This server is accessible only on your local network and requires a per-session authentication token for all API requests. The server does not expose any personal data, and no data from the Web Remote is transmitted outside your local network. The Web Remote is disabled by default and must be explicitly enabled.

Web Content Import

When you use the web import feature to fetch song lyrics or chord charts from a URL you provide, the App makes a standard HTTP GET request to that URL. The App does not track which URLs you visit, and no browsing data is sent to us. On macOS, the studio’s WebSource feature can render a URL as a video source — this content is processed locally and never transmitted back to us.

Face-Gesture Scrolling (iOS)

On iOS, the App can use the TrueDepth camera (via ARKit) to detect head tilt for hands-free lyrics scrolling during performances. Facial geometry data is processed entirely on your device in real-time. It is never stored, recorded, or transmitted. This feature is optional and requires your explicit permission.

Backup and Export

When you export a backup (.appbackup), setlist (.lbsetlist), or library (.lblibrary), the App creates a temporary ZIP archive on your device. This file is only shared when you explicitly choose a destination (e.g., Files, AirDrop, email). Temporary backup files older than 24 hours are automatically cleaned up. We never receive backup files.

Lyrics Translation

The App offers optional lyrics translation using Apple’s Translation framework. When you translate lyrics, Apple may process the text on your device (using downloaded language models) or through Apple’s translation servers, depending on the language pair and device capabilities. This processing is handled entirely by Apple under Apple’s Privacy Policy. We do not send lyrics to any non-Apple service. Translation is user-initiated and optional.

On-Device AI

On supported devices (iOS 26 / macOS 26 with compatible hardware), the App uses Apple’s FoundationModels framework (Apple Intelligence) for AI-assisted features such as chord parsing, lyric formatting, the LiveBand AI assistant, and learning practice plans. All AI processing runs entirely on your device. No prompts or data are sent to any AI service, cloud API, or external server. When these features are unavailable, the App uses deterministic processing instead — for example, chord and theory lookups and practice plans work offline without Apple Intelligence.

Voice Input & Speech Recognition

The App offers optional hands-free voice input for the LiveBand AI assistant — for example, spoken chord lookups and music-theory questions. When you tap the microphone control and speak, the App uses Apple’s Speech framework to transcribe your speech to text. Apple’s Speech framework performs this transcription on your device where on-device recognition is available; otherwise the captured audio may be sent to Apple’s servers to be transcribed and returned. This processing is handled entirely by Apple under Apple’s Privacy Policy. We do not receive, store, or have access to your voice audio or transcripts, and we do not send them to any non-Apple service. Voice input is user-initiated, requires your explicit permission, and is optional — the AI assistant works fully with typed input.

MIDI, Timecode & Mixer Control (iOS Controller)

On iOS, the Controller communicates only with audio gear you connect — over USB or your local network. MIDI and MIDI Time Code (MTC) input, MIDI-Learn mapping, and console metering are processed locally to control your mixer and trigger cues. No new analytics or external data collection is involved, and no data from these connections is transmitted to us or any third party.

Third-Party Code

The App includes two third-party open-source libraries: HaishinKit (RTMP/SRT streaming; BSD 3-Clause License) and libsrt (the Secure Reliable Transport protocol library, bundled via HaishinKit; Mozilla Public License 2.0). Neither library collects, transmits, or stores any user data. No other third-party SDKs, analytics services, advertising frameworks, or tracking tools are included. Full license texts are available in the App under Settings → Open Source Licenses.

Permissions

The App may request the following device permissions. All are optional — the App works fully for Library, Setlists, Learn, and practice features without any permissions granted.

  • Camera — Live video production and multi-camera switching (macOS); face-gesture lyrics scrolling (iOS via TrueDepth/ARKit)
  • Microphone — Live audio mixing, monitoring, broadcast encoding, and real-time audio analysis (macOS); voice input for the LiveBand AI assistant (iOS)
  • Speech Recognition — Transcribing your spoken questions to the LiveBand AI assistant, via Apple’s Speech framework (on-device where available; otherwise processed by Apple — see “Voice Input & Speech Recognition” above)
  • Screen Recording — Capturing windows and displays as video sources for live production (macOS)
  • Local Network — Discovering and controlling audio mixers (OSC), PTZ cameras (VISCA), NDI sources, companion devices, tally lights, and MIDI devices on your network
  • Face ID / TrueDepth Camera — Hands-free face-gesture lyrics scrolling during performances (iOS only; data is never stored or transmitted)
  • Bluetooth / Peer-to-Peer Wi-Fi — Band Sync uses Bluetooth and peer-to-peer Wi-Fi to synchronize setlist playback and song content with other band members’ devices (optional; all communication is encrypted and stays between connected devices). Cloud mode is an optional alternative transport that uses Apple’s CloudKit sharing (CKShare) from the leader’s own iCloud account, joined by invite link (anyone who has the link can join) — see “Band Sync” above
  • Notifications — Optional Learn-tab practice reminders (local notifications scheduled on your device; permission requested only when you turn reminders on) and iCloud sync updates (requested only when you enable iCloud sync). No reminder or notification content is sent to us or any third party
  • Accessibility — Global keyboard shortcuts for studio controls (macOS only; e.g., scene switching, fade to black)

Children’s Privacy

The App does not collect personal data from any user, including children under 13.

Changes to This Policy

We may update this policy. Changes will be posted here with a revised effective date.

Contact

If you have questions about this privacy policy, visit granitevectorsystems.com/contact and select “LiveBand Sunday Stream — app support” from the dropdown.


App Privacy Answer Matrix

Last audited: 2026-07-09  ·  App version: 2.1.0 (Build 4)  ·  Bundle ID: ThatalHome.LiveBandSundayStream

This document provides verified answers for the App Store Connect privacy questionnaire, based on a full codebase audit.

Overall Privacy Posture

QuestionAnswerEvidence
Does this app track users?NoNo IDFA, no ATTrackingManager, no AppTrackingTransparency imports found.
Does this app use third-party analytics?NoNo Firebase, Crashlytics, Amplitude, Mixpanel, Sentry, or any analytics SDK present.
Does this app collect data linked to user identity?NoNo user accounts, no login, no email collection, no remote user profiles.
Does this app use advertising SDKs?NoNo ad frameworks or advertising identifiers.
Does this app transmit data to developer servers?NoNo URLSession calls to any developer-controlled backend. All network activity is user-initiated (RTMP/SRT streaming to user-configured destinations, OSC to user’s mixer, local LAN web remote).
Does this app use iCloud?Yes (optional)CloudKit sync is user-controlled. Data stored in the user’s personal iCloud account, managed by Apple.

Privacy Nutrition Label — Category Answers

CategoryCollect?Verification
Contact InfoNoNo fields for name, email, phone, or address. No user account system.
Health & FitnessNoNo HealthKit, no health-related data types.
Financial InfoNoNo payment processing, no financial data. No in-app purchases in v2.1.0.
LocationNoNo CoreLocation, no CLLocationManager, no GPS or geofence usage.
Sensitive InfoNoNo biometric data collection. TrueDepth camera (ARKit) processes head tilt in real-time; never stored or transmitted.
ContactsNoNo Contacts framework, no address book access.
User ContentNoSongs, setlists, lyrics, charts, recordings stored locally. Optional iCloud sync stored in user’s iCloud (Apple-managed).
Browsing HistoryNoNo web browsing functionality. WebSource (macOS) renders user-configured URLs without tracking.
Search HistoryNoLibrary and Learn search are on-device only. Stored locally via UserDefaults.
IdentifiersNoNo device ID, no IDFA, no vendor identifier collection.
PurchasesNoNo in-app purchases or subscriptions in v2.1.0.
Usage DataNoStreamTelemetryManager tracks stream health locally for UI display only — never transmitted.
DiagnosticsNoCrashReporter uses Apple MetricKit. Payloads saved to local disk only — no remote transmission.
Other DataNoNo other data categories collected.

Network Activity Audit

ComponentPurposeData DestinationDeveloper Collection?
RTMPBroadcasterLivestream outputUser-configured RTMP/RTMPS serverNo
SRTBroadcasterLivestream outputUser-configured SRT endpointNo
StudioWebRemoteLAN remote controlLocal network only (HTTP server on device, token-authenticated)No
HostConnectionManagerMixer control (OSC)User’s X32/M32 mixer on local networkNo
DeviceScannerNetwork discoveryLocal network broadcast (Bonjour/mDNS)No
MIDINetworkControllerMIDI over networkLocal network MIDI devicesNo
CloudKit (iCloud sync)Optional data syncUser’s personal iCloud account (Apple-managed)No
AIImportEngineAI chord/lyric parsingOn-device only (FoundationModels)No
LiveBandAIConversationLiveBand AI assistant + practice-plan generationOn-device only (FoundationModels / Apple Intelligence; deterministic fallback)No
ChartDialectClassifier / StructureInferenceEngineImport dialect detection + structure inferenceOn-device only (deterministic, no network)No
EarTrainingEngine / LearningProgressStoreEar training, adaptive difficulty, gamificationOn-device only (progress in local JSON + optional personal iCloud KVS)No
HostConnectionManager (Yamaha metering)RCP mtrstart/mtr channel meteringUser’s Yamaha console on local networkNo
MTCDecoder / MIDI inputMIDI Time Code + MIDI-LearnLocal MIDI devices (USB / local-network MIDI)No
CloudPresetManagerMixer preset storageLocal only (on-device; no network / no CloudKit)No
VideoMixingEngineVideo compositingLocal only (no network)No
CompanionCameraSender/ReceiveriOS companion cameraLocal network peer-to-peer (NWConnection)No
TallyLightServiceTally light broadcastLocal network UDP broadcastNo
PTZCameraManagerPTZ camera controlUser’s PTZ camera on local network (VISCA-over-IP)No
APNs (push notifications)CloudKit sync triggersApple Push Notification service (Apple-managed)No
MetricKit (CrashReporter)On-device crash diagnosticsLocal disk only — Apple delivers payloads to app, no developer serverNo
WirelessMicMonitorWireless mic statusLocal network monitoringNo
NDISenderManagerNDI video output (LAN)Local network only (raw BGRA frames via NDI protocol)No
BandSyncManagerBand Sync (setlist + content sync between devices)Local peer-to-peer (MultipeerConnectivity, Bluetooth/Wi-Fi) or CloudKit sharing (CKShare) from the leader’s own iCloudNo
CKShareBandSyncTransportBand Sync cloud transportCloudKit sharing (CKShare): records live in a custom zone of the leader’s private CloudKit database, accessible to anyone who has the share link — not the public database, never a developer-controlled serverNo
WorshipPlannerEngineAI setlist generationOn-device only (algorithmic + optional FoundationModels)No
WebImportServiceFetch song/chord HTML for importUser-provided URL (GET with browser User-Agent)No
WebSource (macOS studio)Render user-configured URL as video sourceLocal rendering only (WKWebView, no data sent back)No
FaceScrollManager (iOS)ARKit head-tilt for hands-free lyrics scrollOn-device only (real-time ARKit face geometry, never stored or transmitted)No
SecurityBookmarkManagerPersist sandbox file access across launchesLocal disk only (Application Support plist)No
BackupManagerExport/import .appbackup, .lbsetlist, .lblibraryLocal disk (temp directory ZIP, user-initiated file transfer only)No

No component transmits data to any developer-controlled server.

On-Device Data Storage Audit

All data is stored locally on the user’s device (or the user’s personal iCloud account if sync is enabled). No data reaches developer-controlled servers.

Storage LocationData StoredSensitive?Component
Keychain (com.livebandsundaystream.streamkey)RTMP stream key, SRT passphrase, iOS stream keyYES — encrypted by OS KeychainKeychainStreamKeyStore
Keychain (Show Mode PIN)Salted SHA-256 hash of the iOS Controller Show-Mode PIN (never the PIN itself)YES — encrypted by OS Keychain; hash-only, on-deviceShowModePINStore
UserDefaults / @AppStorage (~95+ keys)UI preferences, layout, studio settingsNO — no PII or auth tokensVarious (studio*, learn* prefixed)
~/Documents/Songs (JSON), Setlists (JSON), learning progressNO (user content)LibraryViewModel, LearningProgressStore
~/Documents/CrashReports/MetricKit diagnostic payloads (JSON), file-level encrypted, auto-deleted after 7 daysNO — system diagnostics onlyCrashReporter
~/Movies/ (macOS)Broadcast recordings (.mov, HEVC+AAC)NO (user content)ProgramRecorder, ISORecordManager
~/Application Support/LiveBandSundayStream/Security-scoped bookmarks, scene manager dataNOSecurityBookmarkManager, SceneManager
Temp directoryZIP archives during export (.appbackup), auto-cleaned after 24 hoursNO — cleared after user downloadsBackupManager
NSUbiquitousKeyValueStore (iCloud)Songs, setlists, learning progress (JSON)NO — user’s personal iCloudSDSong, LearningProgressStore

PrivacyInfo.xcprivacy Verification

KeyValueStatus
NSPrivacyTrackingfalseCorrect
NSPrivacyCollectedDataTypes[] (empty)Correct — no data collected
NSPrivacyAccessedAPITypesUserDefaults (CA92.1), Disk Space (E174.1), System Boot Time (35F9.1), File Timestamp (DDA9.1)Correct — all declared with valid reasons

Info.plist Permission Strings

Usage-description strings are defined per-SDK in the target’s INFOPLIST_KEY_* build settings (single source of truth, platform-aware) and merged into the built Info.plist via GENERATE_INFOPLIST_FILE.

KeyDescriptionRequired For
NSCameraUsageDescriptionCamera accessLive video production / multi-camera (macOS); face-gesture lyrics scrolling + PTZ preview (iOS)
NSMicrophoneUsageDescriptionMicrophone accessLive audio mixing/monitoring/encoding/RTA (macOS); voice input for the LiveBand AI assistant (iOS)
NSSpeechRecognitionUsageDescriptionSpeech recognitionHands-free chord/theory voice queries in the LiveBand AI assistant (iOS, Apple Speech framework)
NSScreenCaptureUsageDescriptionScreen recordingWindow/display capture as studio sources (macOS)
NSLocalNetworkUsageDescriptionLocal networkMixer control (OSC), PTZ (VISCA), NDI, companion devices, Band Sync (iOS + macOS)
NSFaceIDUsageDescriptionTrueDepth cameraHands-free face-gesture lyrics scrolling (iOS, ARKit)
NSBonjourServicesBonjourNetwork device discovery

Encryption (ITSAppUsesNonExemptEncryption)

KeyValueRationale
ITSAppUsesNonExemptEncryptionfalseAll encryption is exempt: RTMPS uses OS-provided TLS (exempt), SRT uses libsrt AES (auth/data integrity, exempt under TSU exception), Keychain uses Apple Security framework (exempt), HaishinKit MD5 is for RTMP auth handshake only (exempt).

Third-Party SDK Audit

DependencyPurposePrivacy Impact
HaishinKit.swift (Vendor/)RTMP/RTMPS/SRT streaming (BSD 3-Clause)No analytics, no tracking. MD5 used for RTMP auth handshake only.
libsrt (bundled via HaishinKit)Secure Reliable Transport protocol (MPL 2.0)No analytics, no tracking, no data collection.

No other third-party SDKs, analytics frameworks, or ad networks are included in the project. (License texts surface in-app under Settings → Open Source Licenses.)

Note: A PrivacyInfo.xcprivacy has been added to the HaishinKit target declaring no tracking, no collected data types, and no required-reasons APIs (audit confirmed none are used). The HaishinKit Package.swift bundles this manifest as a resource.

› Questions?

Got privacy questions?

Reach out through our support form. Select "LiveBand Sunday Stream — app support" from the topic dropdown.

Contact us