Privacy Policy
Ling Ling Suite ("Ling Ling") is an open-source desktop program that club music librarians use to manage sheet music. It is maintained by Suikann and runs on your own computer. This policy explains what data Ling Ling uses, where it sends it, where it keeps it, and how to delete it. The Traditional Chinese version is the primary text; if the two differ, the Chinese version prevails.
At a glance
- Ling Ling has no server. The maintainer receives none of your data, and the program has no ads, tracking or usage statistics.
- Ling Ling goes online only when you use a feature that needs it, and only to two places: Google, and the club's HuaXia website.
- Data from Google travels only between your computer and Google. The one exception is distribution: once a club officer confirms it, sheet music and instrumentation are sent from your computer to HuaXia.
- Sign-in credentials are kept in the operating system's secure storage, never in an ordinary file, and are never handed to anyone.
- Log files stay on your computer and contain no sign-in credentials, passwords or personal data of HuaXia members.
Terms used in this policy
- Catalog: where the club keeps its sheet music. It consists of folders in Google Drive (holding the music files) and a Google spreadsheet, the catalog spreadsheet, that records pieces, instrumentation and so on. Both belong to a Google account the club shares, the catalog account.
- Group: one piece, or one movement of it, in Ling Ling, together with its score and parts.
- Instrumentation: which voices a piece needs and how many players each. A section is a family of voices, such as winds or bowed strings.
- Archiving: sending sorted sheet music to the catalog. Reverting an archive: undoing one archive. Writing back instrumentation: writing the instrumentation in Ling Ling to the catalog spreadsheet.
- Distributing: putting sheet music and instrumentation on the club's HuaXia for members to use. After a file is uploaded it must be registered to a voice before members can see it.
- Retracting: taking down the sheet music one distribution put up. Recalling: taking down all sheet music of a piece after its concert is over; pieces the club wants to leave up can be marked to keep.
- Officer: a club member with administrative rights on HuaXia. Only officers can distribute, retract and recall.
Where Ling Ling connects
Ling Ling connects only to these two places, and only when you use the related features:
- Google: to sign in, and to read and write the catalog.
- The club's HuaXia: the website of the HuaXia Chinese Orchestra Club, with its data on Supabase. Ling Ling signs in there with Discord to distribute, retract and recall.
When you only split, rotate, rename or compress PDFs, Ling Ling does not go online at all, and it never connects to a server run by the maintainer or any other third party.
During sign-in, Ling Ling opens a port on your computer for local use only (127.0.0.1) and waits for the browser to send back the sign-in result once; other computers cannot reach this port.
Google data
Requested permissions
https://www.googleapis.com/auth/drive: see, edit, create and delete files in your Google Drive.https://www.googleapis.com/auth/spreadsheets: see, edit, create and delete your Google Sheets spreadsheets.
Most music in the catalog is uploaded by music librarians directly in the Drive website, and Ling Ling needs to organize those files, so it needs a permission covering the whole Drive; it only reads and writes the items listed in the next section.
Every permission on the consent screen must be checked; if any is left unchecked, Ling Ling does not keep the sign-in. We recommend signing in with the catalog account rather than a personal account.
What the permissions are used for
- Catalog spreadsheet: reading and writing composers, pieces, editions, movements, parts, instrumentation, performance history, durations, section mappings and club settings, plus the records described below; creating a new catalog spreadsheet; adding or deleting pieces, movements and similar entries.
- Catalog folders: creating folders; listing, uploading, downloading, renaming and moving music files. When a file is replaced or an archive is reverted, the old file is moved to the Drive trash.
- Reverting an archive: restoring a file to its pre-archive content from the old versions Drive keeps automatically. During the restore, that old version is temporarily set to be kept forever; the setting is cleared afterwards.
- Choosing the catalog folder: starting from "My Drive", listing the names of the folders in each level you expand.
- Account email: reading the signed-in account's email address, to show it in Catalog Settings and pre-fill it at the next sign-in.
Records written to the catalog spreadsheet
Ling Ling keeps records of its actions in the catalog spreadsheet. Anyone who can open the catalog spreadsheet can see them.
- Writing back instrumentation, archiving and reverting an archive: the time, the signed-in account's email address, and what changed.
- Archive records also include the file's full path on your computer. The path may contain your computer's user name and folder names, for example
C:\Users\your-name\Desktop\…. - Distributing, retracting, recalling and marking to keep: see Distribution log below.
Data kept on your computer
- Preferences: the email address of the last sign-in, the IDs of the catalog spreadsheet and catalog folder, the distribution platform from the club settings, and a summary that reminds you which pieces to recall (titles, HuaXia piece IDs and concert end times).
- Project files (
.llproj, saved where you choose): which catalog piece and HuaXia piece each group matches, a copy of its instrumentation, the title, composer and duration for a HuaXia piece to be created, and the HuaXia voices you picked by hand. Project files contain no sign-in information. - Files downloaded from the catalog: saved back to their original location, or to a folder you choose. Temporary files used during a download are deleted when it ends.
Sharing and limited use
- Data from Google is never sent outside Google, with one exception, HuaXia:
- Distributing: after an officer confirms with "Publish" in Ling Ling's distribution preview, Ling Ling sends the group's instrumentation (voices, headcounts, sections), the title, composer and duration of a piece being created, and the selected score and parts from your computer to the club's HuaXia. This data may originally come from the catalog.
- Retracting and recalling: Ling Ling uses the distribution log in the catalog spreadsheet to decide what to delete on HuaXia.
- Ling Ling does not sell or rent data from Google, does not use it for advertising, and does not use it to train artificial intelligence or machine learning models. The maintainer cannot see this data.
- Ling Ling's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy and the Google Workspace API User Data and Developer Policy, including the Limited Use requirements.
Sign-in credentials and secure storage
After you sign in, Ling Ling uses tokens to act on your account; it never needs your password.
- After you sign in to Google, Ling Ling keeps only the refresh token, in the operating system's secure storage: Credential Manager on Windows, or the Secret Service (for example GNOME Keyring or KWallet) on Linux. The entry is named
LingLingSuite Google. - After an officer signs in to HuaXia, the HuaXia token is kept in the same place, in an entry named
LingLingSuite HuaXia. - Access tokens, which are what actually reach the data, exist only in the running program and are never written to a file.
- If the computer has no secure storage or writing to it fails, Ling Ling does not keep the sign-in, explains why in Catalog Settings, and you sign in again at the next start. Ling Ling never falls back to an ordinary file.
- Tokens are sent only back to the service that issued them (Google or HuaXia). They are never handed to anyone and never written to the log files.
- Older versions of Ling Ling stored the Google token in an ordinary file,
google_token.json. The current version deletes that file at every start without reading it.
HuaXia and Discord
Ling Ling uses HuaXia only when an officer distributes, retracts or recalls.
Signing in
- You sign in with your own Discord account. Ling Ling opens the Discord sign-in page in your browser through HuaXia's sign-in service; your password is entered only on Discord's website, and Ling Ling never sees it.
- After sign-in, Ling Ling receives a HuaXia token and your Discord account name. The name is used to show who is signed in and is written to the distribution log; Ling Ling does not store it on your computer.
- Ling Ling then asks HuaXia whether you are an officer. If you are not, Ling Ling reads the status of your own account (for example awaiting approval or disabled) to explain why, then signs out and keeps no token.
Reading
- Ling Ling reads pieces, voices, scores, concerts, which concerts each piece is attached to, and the list of files Ling Ling has uploaded, for matching and previews. When distributing it reads only this semester's concerts; when recalling it reads all concerts a piece is attached to, of any semester.
- Before retracting, Ling Ling only checks whether a voice has anyone assigned, not who. Ling Ling does not read the member list or other members' data.
Writing and deleting
- Distributing: once an officer confirms, Ling Ling creates pieces on HuaXia (title, composer, duration), creates or updates voices (name, headcount, section), uploads the score and part PDFs and registers them to voices, then attaches concerts. Scores Ling Ling distributed earlier that this distribution replaces are unregistered and their files deleted.
- Retracting: unregisters the score and parts one distribution registered. Voices that distribution created that have no one assigned and no scores placed by others are deleted too, as are files it uploaded that no registration uses any more. Old files that distribution replaced do not come back, and headcounts, sections and concerts are not reverted.
- Recalling: unregisters every score of the piece on HuaXia, including ones others placed through the HuaXia website, then deletes files no registration uses any more. Voices, pieces, concerts and assignments are kept.
- Cleaning up leftover files: before distributing and recalling, deletes files Ling Ling uploaded earlier that no registration uses, such as ones left by an interrupted distribution. Files uploaded through the HuaXia website are not affected.
These writes and deletions go directly from your computer to HuaXia without passing through any other server. They are made as you and follow HuaXia's own permission rules, so non-officers cannot make them.
Distribution log
Every distribution, retraction, recall and marking to keep adds a record to the "發譜紀錄" (distribution log) sheet of the catalog spreadsheet; retracting and recalling decide what to delete from this log. Each record contains:
- the time, and the operator's Discord account name
- the group, the matched HuaXia piece and voice IDs, and the piece title
- the pieces and voices created, and the headcounts and sections before and after the change
- which files were uploaded, registered, unregistered or deleted (recorded as file paths on HuaXia)
- the concerts attached (name and end time)
- why anything did not complete
Data on HuaXia is managed by HuaXia's maintainers under HuaXia's own rules; Discord sign-in is covered by Discord's privacy policy.
Log files and other local files
Ling Ling keeps its local data in the user data folder, and never uploads it:
- Windows:
%APPDATA%\LingLingSuite\ - Linux:
~/.config/LingLingSuite/(or$XDG_CONFIG_HOME/LingLingSuite/)
The folder holds:
- Log files (
logs/): one file per day, kept for 30 days, recording catalog read and write failures and actions such as archiving, reverting an archive, clearing local copies, downloading, distributing, retracting, recalling and cleaning up leftover files. Each entry contains only the time, action, piece title, file or group name, path (a local path or a file path on HuaXia), error category and raw error message; anything in the error message that looks like a token or password is replaced with***. Help > Open Log Folder opens it. - Other files: preferences, undo and redo history, the workspace (split output), backups made before rotating PDFs, the temporary folder (compressed files and copies of the files a distribution uploads, deleted when done), and a lock file that prevents two copies of Ling Ling from running at once.
Deleting data and revoking access
- Signing out of Google: press "Sign Out" in Catalog Settings to delete the Google token kept on this computer. To make Google revoke Ling Ling's access as well, remove Ling Ling Suite under Third-party apps & services in your Google Account.
- Signing out of HuaXia: press "Sign Out of HuaXia" to end this computer's HuaXia session and delete the HuaXia token kept on it.
- Deleting local data: sign out first, then delete the user data folder above to remove all data Ling Ling keeps on this computer, except project files and files saved in locations you chose.
- Data in the catalog and on HuaXia: the catalog spreadsheet and the files in Drive belong to the catalog account; manage and delete them in Google Drive. Manage data on HuaXia in HuaXia. Officers can also delete sheet music Ling Ling distributed to HuaXia with Ling Ling's Retract or Recall.
Changes to this policy
When this policy changes, this page and the effective date above are updated together; every revision can be found in the change history on GitHub.
Contact
For questions about this policy or how Ling Ling handles data, please open an issue on GitHub Issues; for questions you would rather not post publicly, email bozu950622@gmail.com.