At First Sight

Sight-Reading Trainer by LunaWorks

Privacy Policy

Effective Date: June 28, 2026

Welcome to At First Sight, a sight-reading trainer application. This Privacy Policy describes how we handle information in connection with your use of the At First Sight mobile application.

This application is published by LunaWorks (Colby Cabrera) ("we", "us", or "our"). We are committed to protecting your privacy and ensuring a transparent user experience.

1. No Personal Information Collection

At First Sight is designed with an offline-first approach.

  • No User Accounts: You are not required to create an account, log in, or register to use the application.
  • No Personal Identifiers: We do not collect, request, or store personal identifiers such as your name, email address, physical address, phone number, or device identifiers (like IMEI or advertising IDs) on any external server.

2. Local Application Data (Local Storage)

To provide you with settings persistence and progress tracking, At First Sight saves specific application data locally on your device. This data is stored using native platform key-value storage mechanisms:

  • Android: SharedPreferences (specifically within "daily_limit_prefs", "practice_stats_prefs", and "theme_prefs")
  • iOS: NSUserDefaults
  • JVM/Desktop: java.util.prefs.Preferences

The specific fields stored locally on your device include:

2.1. Daily Generation Limit Data

Used to track and enforce the daily limit on sheet music generations for free-tier users.

  • Last Sheet Generation Date: A timestamp string representing the day of the last generated sheet.
  • Sheets Generated Today: An integer counter tracking the quantity of sheets generated on the current day.

2.2. Practice Statistics

Used to record and present your training progress, achievements, and statistics.

  • Last Active Date: A date string representing your last active practice session.
  • Streak Count: An integer representing your consecutive days of practice.
  • Total Sheets: The cumulative count of practice sheets generated.
  • Sum of Difficulties: An integer used to compute average difficulty levels.
  • Recent Activities Log: A serialized JSON string containing a list of your recent practice records (e.g., sheet parameters and completion status).

2.3. Theme Settings

Used to retain your visual application preferences.

  • Theme Mode: A string indicating your chosen app theme (System Default, Light Mode, or Dark Mode).

External Data Transfer Disclaimer: None of the local settings, limits, or practice statistics listed above are transmitted to external servers. This data remains strictly sandboxed on your local device.

3. Permissions Requested and Their Purpose

At First Sight requires specific device permissions to operate. Below are details of the permissions declared in our application manifest and how they are used:

3.1. Internet Access (android.permission.INTERNET)

Required to enable external network communication for the following functions:

  • Sheet Music Rendering: The app uses an embedded WebView to render sheet music. This WebView retrieves the open-source OpenSheetMusicDisplay JavaScript library dynamically from a public Content Delivery Network (CDN) (https://cdn.jsdelivr.net/npm/opensheetmusicdisplay) at runtime. Internet access is required to download this library so that the sheet music can be rendered visually on screen.
  • Subscription and Billing Verification: The app integrates the RevenueCat SDK, which communicates with RevenueCat's secure servers (api.revenuecat.com) to check subscription statuses, process purchases, and verify entitlements.

3.2. Vibration Controls (android.permission.VIBRATE)

Required to interact with the device's haptic feedback engine:

  • Haptic Feedback: The application utilizes Software Mansion's pulsar-kmp library to invoke subtle vibration patterns. This provides sensory haptic feedback when you interact with certain UI controls, such as selecting difficulty levels, adjusting time signatures, choosing key signatures, or interacting with toolbars.

4. Third-Party Services and SDKs

To facilitate premium features and purchases, At First Sight integrates third-party SDKs:

4.1. RevenueCat KMP SDK

We use the RevenueCat SDK to manage in-app subscriptions and purchases for the premium tier "At First Sight Pro".

  • Data Transmitted: The RevenueCat SDK handles transaction processing, subscription verification, and billing receipts.
  • Payment Processing: All financial transactions, billing details, and credit card processing are handled securely by the respective app stores (Google Play Store for Android or Apple App Store for iOS). We do not collect, store, or have access to your payment card details or financial information.
  • Privacy Policy: RevenueCat processes transaction data in compliance with their privacy guidelines. You may review their policy on the RevenueCat official website.

5. Children's Privacy

Because At First Sight does not collect, request, or transmit any personal information or identifiers, the application does not knowingly collect any data from children under the age of 13. It is safe for musicians of all ages.

6. Data Retention and Deletion

All application data (practice statistics, streak counts, and settings) is stored exclusively on your device.

  • We do not host, backup, or retain this data on external databases.
  • You can permanently delete all of this data at any time by uninstalling the application or clearing the application data/cache in your device settings.

7. Changes to This Privacy Policy

We may update this Privacy Policy from time to time. Any updates will be posted to our official documentation. Your continued use of the application after an update constitutes acceptance of the modified Privacy Policy.

8. Contact Information

If you have any questions or feedback regarding this Privacy Policy, please contact us:

Developer/Publisher: LunaWorks (Colby Cabrera)

Support Email: colbycabrera.wd@gmail.com

Project Page: https://colbycabrera.github.io/sight-reading-trainer-app

Terms of Service

Effective Date: June 28, 2026

Please read these Terms of Service ("Terms") carefully before using the At First Sight mobile application.

This application is published by LunaWorks (Colby Cabrera) ("we", "us", or "our"). By accessing or using the application, you agree to be bound by these Terms. If you do not agree to these Terms, please do not download, install, or use the application.

1. Description of Service

At First Sight is a mobile sight-reading trainer application designed to help musicians practice and improve sheet music reading skills. The application generates sheet music exercises according to user preferences and configuration.

2. Acceptable Use Guidelines

By using the application, you agree to the following guidelines:

  • Personal & Educational Use: The application is provided for your personal, non-commercial, and educational music practice.
  • Prohibited Conduct: You agree not to copy, reverse engineer, decompile, modify, or distribute the application source code or binary assets.
  • Fair System Use: You agree not to abuse, automate, or artificially query the sheet music generation capabilities to scrape or hoard generated files or to interfere with the normal usage of the application.

3. Subscriptions and In-App Purchases

At First Sight offers a premium upgrade option under the entitlement "At First Sight Pro" to unlock additional features (such as removing daily sheet generation limits).

3.1. Billing and Payments

  • All transactions, subscription charges, and payments are processed and managed securely by the platform storefront where you downloaded the app (Google Play Store for Android or Apple App Store for iOS) via the RevenueCat integration.
  • By purchasing a subscription, you agree to pay all applicable fees and taxes associated with your account.

3.2. Subscriptions & Renewal

  • Subscriptions are billed on a recurring basis.
  • Your subscription will automatically renew at the end of each billing cycle unless you turn off auto-renew or cancel the subscription at least 24 hours before the end of the current billing cycle.

3.3. Cancellation and Refunds

  • You can manage, change, or cancel your subscription at any time directly through your App Store or Google Play Store account settings.
  • Refunds are subject to the terms and refund policies of the respective store (Google Play Store or Apple App Store). We do not directly handle refunds or payment disputes.

4. Local Data & Service Disclaimers

4.1. Offline-First Storage

At First Sight stores your practice statistics, streak counts, and application settings locally on your device. We do not maintain external cloud-based backups of this progress data. If you uninstall the application, delete application storage, or clear your device cache, your progress data will be permanently deleted and cannot be recovered.

4.2. Network Dependency for Notation Rendering

Sheet music notation rendering within the application requires active internet connectivity to fetch the necessary OpenSheetMusicDisplay library from a Content Delivery Network (CDN). If you are using the app offline, sheet music generation and rendering may fail to load correctly.

5. Disclaimer of Warranties

The application is provided on an "as is" and "as available" basis, without warranties of any kind, either express or implied. To the fullest extent permissible pursuant to applicable law, LunaWorks (Colby Cabrera) disclaims all warranties, express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, and non-infringement. We do not warrant that the application will be uninterrupted, error-free, secure, or free from viruses or other harmful components.

6. Limitation of Liability

To the maximum extent permitted by applicable law, in no event shall LunaWorks (Colby Cabrera) be liable for any direct, indirect, incidental, special, exemplary, punitive, or consequential damages (including, but not limited to, loss of data, loss of profits, business interruption, or educational setbacks) arising out of or in any way connected with the use, performance, or inability to use the application, even if advised of the possibility of such damages.

7. Governing Law

These Terms shall be governed by and construed in accordance with the laws of the jurisdiction in which the developer operates, without regard to its conflict of law principles.

8. Changes to These Terms

We reserve the right, at our sole discretion, to modify or replace these Terms at any time. Your continued use of the application after any such changes constitute your acceptance of the new Terms of Service.

9. Contact Information

If you have any questions or feedback regarding these Terms, please contact us:

Developer/Publisher: LunaWorks (Colby Cabrera)

Support Email: colbycabrera.wd@gmail.com

Project Page: https://colbycabrera.github.io/sight-reading-trainer-app