BL-202 · Android alpha

Privacy policy

BL-202 is in closed alpha. This page says what the sign-up form and the alpha app collect, who holds it, how long it is kept and how to have it deleted.

Who holds it

Held by 98kb (github.com/98kb), the owner of the BL-202 alpha. Write to dsfx3d.98kb@gmail.com about anything on this page.

The sign-up form

The form collects your email, Android version, phone model, headphone type and 18-or-over answer. These are used only for the BL-202 alpha: to check your phone can run it and to email you about it.

Until you confirm your email, Supabase, our database provider, holds your answers for up to 24 hours and then deletes them. An unconfirmed signup cannot be completed after that.

Resend, our email provider, receives only your email address, to send you the confirmation link. It gets none of your answers. Emails are not tracked for opens or clicks.

After you confirm, Supabase keeps your answers, when you signed up, whether you are eligible and why, and your join code if you get one. The 18-or-over answer itself is kept only briefly; the eligibility result stays.

If you get an invite, the owner adds your email by hand to the Google Play test for BL-202, so Google Play can let that Google account install the app. Google receives only your email address, not your answers or join code. Your email stays on the test list until the alpha ends or you ask to be removed; Google's own handling of it follows Google's privacy policy.

To stop abuse, a scrambled form of your email and IP address is kept for 25 hours. It cannot be turned back into either.

A cookie lets this browser check, resend or correct your signup for up to 24 hours. Your signup result can stay in this browser until you clear its site data.

Vercel hosts this site and sees standard request information, such as your IP address.

Your sign-up answers are deleted when the alpha ends. You can ask to see or delete them sooner. Copies in the providers' backups and logs are removed on those providers' own schedules.

The alpha app

For the alpha testing program, and only temporarily, using the app requires sending testing telemetry: crash reports, audio performance data and a record of what happens in your visits. It is collected to find and fix what breaks and to see whether testers get a loop going and come back.

Your audio and your loops are never sent.

The app asks you to agree before it opens, and it stays closed until you do. No telemetry is sent before you agree. The telemetry is tied to your join code.

What is collected lists every event and every identifier.

Who processes it

Only the owner reads either one.

The check-in with this site

The app also talks to this site, which the owner runs. When you enter your join code, the app sends the code, a random install identifier and your phone model, and the site stores them in Supabase. A join code works on up to three installs.

After that, each time the app opens online it checks in with the join code and install identifier, to learn whether the app is still open to you and whether telemetry is on. A check-in stores nothing new.

The check-in is not telemetry. It happens before you agree, and it goes on after you withdraw.

What the app never sends

How long it is kept

The telemetry is kept until the owner removes it or the service’s own limit expires, whichever comes first: one year for events at PostHog, 90 days for crash reports at Firebase Crashlytics.

Check-in records in Supabase are kept until the owner removes them.

Withdrawing and deleting

You can withdraw from a setting in the app. Withdrawing stops collection from that install and closes the app until you agree again. It deletes nothing: what was already sent stays until it is removed under the rule above.

You can ask the owner to delete yours. Write to dsfx3d.98kb@gmail.com with your join code.

The owner can also turn telemetry off for an install. From its next check-in that install sends nothing more, and events still waiting on the phone are dropped.

Age

The alpha is for people who are 18 or over. The sign-up form and the app’s agreement both ask you to confirm it.

What is collected

The app can send only the events on this list. Every value is a number, a yes or no, or one word from a fixed list. Track is 1 or 2.

Events made offline wait on the phone and are sent when it next has a network connection, marked with the time they happened.

Identifiers

On every event

Crash reports

A crash report says where in the app the crash happened. It carries the app version, the phone model, your join code, the Crashlytics install identifier, and the state of the phone at that moment, such as its Android version and free memory.

Access and agreement

code_redeemed
No properties. Dated at the time you redeemed the code, and sent only after you agree.
agreement_accepted
agreement_version
agreement_withdrawn, access_blocked
No properties.

Visits

app_opened
first_visit_of_process
app_backgrounded
visit_seconds

Permissions and audio output

mic_permission_result
granted
bluetooth_permission_result
granted, asker (row or fx_edit)
output_route_changed
from, to (output route classes)
bleed_notice_shown
No properties.

Takes and loop control

take_started
track, kind (record or overdub)
take_finished
track, kind, bars, length_ms, closed_by (tap, auto, too_short, too_long, disarmed or xrun)
first_loop_completed
track, seconds_since_agreement. Sent once per install.
track_stopped, track_cleared, undo_used
track
bar_multiplied
track, bars
all_started, all_stopped, session_cleared
No properties.
session_restored
tracks

Audio diagnostics

audio_visit_summary
One per visit: visit_seconds, xruns, render_underruns, stream_errors, round_trip_estimate_ms, callback_p999_ms, callback_max_ms, sample_rate, frames_per_burst, low_latency, too_fast, too_slow, too_busy
tempo_warning_shown
track, warning (too_fast, too_slow or too_busy)
take_closed_by_xrun
track
audio_stream_error
errors (the increase since the last count)
engine_start_failed
cause (native_unavailable, init_failed or stream_failed). At most once per visit.

Failed operations

session_save_failed, session_restore_failed
No properties.
event_cap_reached
cap. An install that passes a daily limit stops sending events for the rest of the day and says so once.

Back to the sign-up form