vocalcheck.

PRIVACY

Privacy policy

Vocal Check does not create an account. Microphone audio is used only to calculate pitch in this browser’s memory. It is not saved as a recording file or sent to a server.

As of . This description matches the app code and deployment settings on that date.

Operator

Vocal Check is a Still Coding web app operated by JH Kim. This app has no contact form. Write through the GitHub path on the contact page. The portal’s shared notice is the Still Coding privacy policy.

What happens to the microphone

The browser microphone is requested only after you press Turn on microphone. The sound is read with Web Audio’s AnalyserNode. A buffer of about 4096 samples is used by the YIN algorithm to estimate a fundamental frequency, about every 65 milliseconds. A new buffer overwrites the previous one. Nothing is written to a file.

The app asks for echo cancellation, noise suppression, and automatic gain to be off. If the device rejects that, it connects once more with the browser default and says so on screen. The browser or operating system may still process the input.

The app code has no MediaRecorder, upload request, WebSocket, or analytics script. Turning the microphone off, leaving the tab, or closing the page stops the microphone track immediately.

What stays in memory for a moment

  • A few recent frequency numbers, used to steady the on-screen pitch. They are cleared when the sound stops.
  • Time and pitch position for the 12-second graph. These are pitch numbers, not a waveform. Clear, stopping the microphone, leaving the tab, or closing the page removes them.
  • The reference piano tone is synthesized in this browser by piano.js. No recorded piano file is downloaded.

The app does not store the chosen language, and it does not create cookies or localStorage. Only when you change language does this tab briefly put the practice mode, target note, reference frequency, and the last 12 seconds of pitch numbers in the sessionStorage key vocal-check-locale-handoff. The next page deletes that value as soon as it has read it. The address wins, so opening /en/ directly shows English and opening the default address directly shows Korean. Practice is not synced to another browser or device.

What leaves over the network

The pages are static files on Cloudflare Workers. This repository does not enable Workers observability, and there is no server address that receives audio. A request log at Cloudflare may include the URL, time, IP address, and browser information. Retention follows the Cloudflare account, not this app. Those requests do not contain microphone audio.

The typefaces DM Sans and Noto Sans KR are loaded from Google Fonts at fonts.googleapis.com and fonts.gstatic.com. The browser sends ordinary connection details such as IP address and user agent with that font request. Microphone audio is not part of it.

There is no analytics tool or ad script. Korean pages may show a feedback button only after user-feedback.still-coding.cc confirms an invited tester session. English pages do not load that widget. A tester’s own text and a chosen image are the only feedback payload. Microphone audio, automatic screenshots, the page address, and console logs are not sent. Passwords, API keys, customer data, and private codes should not be included. Only the operator can read submissions. A deletion request can be sent from the contact page.

Advertising

There is no ad script, publisher ID, or ads.txt. Ad code will not be added before a publisher account is confirmed. A consent tool for personalized ads in the EEA, the UK, and Switzerland is not included, because personalized ads are not served.

The only pages that could be considered for ads later are the guides: Korean /guide/ and English /en/guide/. Both have data-ad-eligible="true". No ad slot is reserved yet. Changing language does not change that split.

In both languages, the tuner, live measurement, microphone button, target note, keyboard, 12-second graph, help dialog, permission errors, privacy, contact, and unknown addresses are not ad eligible. The tuner removes ad tags if they appear and keeps data-ad-eligible="false". Auto ads are not turned on across the measurement screen.

Permission and deletion

The browser and the device remember microphone permission. The app has no account list, so block or delete the permission in the browser’s site settings. Clear the graph, or turn the microphone off, to drop the 12-second line from memory.

A message sent through GitHub stays on that service. A voice file or a password is not needed to look into a problem.