Local WebUI frontend for py-roller and pylrclib.
Project description
Rolling Pebble
Rolling Pebble is a local lyrics workstation for searching, editing, timing, organizing, and publishing LRC lyrics.
It gives you a browser-based interface backed by a local Python server. Your projects, audio, lyrics, runtime environments, and model caches stay on your machine. Auto Timing is powered by py-roller in an isolated runtime so large audio dependencies do not pollute the main app environment.
What It Does
- Import audio and lyrics from local files, LRCLIB, and supported online sources.
- Edit metadata and lyric text in a focused LRC editor.
- Synchronize timestamps manually when you want frame-level control.
- Auto-time lyrics with
py-rollerusing isolated CPU/CUDA runtime profiles. - Review and clean up projects, model caches, runtime environments, and app data.
- Publish prepared lyrics through LRCLIB workflows.
- Use multiple languages through the built-in i18n layer.
Typical Workflow
- Create or import a project with an audio file.
- Import lyrics from LRCLIB, a local file, or the editor.
- Clean up the lyric text and metadata.
- Use the Synchronizer for manual timing, or Auto Timing for py-roller based alignment.
- Review the generated LRC, export it, or publish it through LRCLIB.
Install
Rolling Pebble requires Python 3.10 or newer. Auto Timing additionally needs a Python 3.12 executable available on your system because the isolated py-roller runtime is built on Python 3.12.
Recommended install:
python -m venv rollingpebble-env
. rollingpebble-env/bin/activate
python -m pip install -U pip
python -m pip install rollingpebble
rollingpebble
On Windows PowerShell:
py -m venv rollingpebble-env
.\rollingpebble-env\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install rollingpebble
rollingpebble
Then open:
http://127.0.0.1:6789
First Run
Start Rolling Pebble:
rollingpebble
Then open:
http://127.0.0.1:6789
The default server binds to 127.0.0.1, so it is intended for local use.
Auto Timing
Auto Timing uses py-roller for lyric alignment. Rolling Pebble does not install Torch, Demucs, faster-whisper, or other heavy audio dependencies into the main app environment. Instead, it creates a separate runtime under the app data directory.
To set it up:
- Open Settings -> Auto Timing -> Runtime.
- Choose a runtime profile.
- Click Create Runtime.
- Run Runtime Check after creation completes.
If Python 3.12 is not detected automatically, set:
export LRC_ROLLER_RUNTIME_PYTHON=/path/to/python3.12
The current supported py-roller range is:
py-roller>=0.6.2,<0.8
Storage and Privacy
Rolling Pebble is local-first. It stores data under the user data directory, for example:
~/.local/share/rollingpebble
Inside the app, Settings -> Storage & Cleanup shows project data, model caches, runtime environments, and other app data. Model caches are stored separately from runtime environments so they can be reused across runtime repairs.
Rolling Pebble only contacts external services when you use features that need them, such as LRCLIB lookup/publishing, supported online source import, or model downloads for Auto Timing.
Developer Notes
For source development:
python -m venv .venv
. .venv/bin/activate
python -m pip install -U pip setuptools wheel
python -m pip install -e .
pnpm install
Run the backend and frontend together:
. .venv/bin/activate
rollingpebble dev
Or use two terminals:
# terminal 1
. .venv/bin/activate
rollingpebble serve --reload
# terminal 2
pnpm dev
Release packaging details live in RELEASE.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rollingpebble-0.6.3.tar.gz.
File metadata
- Download URL: rollingpebble-0.6.3.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd5a14edd61f3897fffbfd4d12a253917a3a40513075431fff01cbf320c527fc
|
|
| MD5 |
003ac55e20e36ed625a397918daaf9bc
|
|
| BLAKE2b-256 |
92aca34afa8dbe8941762ea51a48c0d3e5e0e610bd71eef98a0f34ba457c9072
|
Provenance
The following attestation bundles were made for rollingpebble-0.6.3.tar.gz:
Publisher:
python-publish.yml on Harmonese/rollingpebble
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rollingpebble-0.6.3.tar.gz -
Subject digest:
dd5a14edd61f3897fffbfd4d12a253917a3a40513075431fff01cbf320c527fc - Sigstore transparency entry: 1587538090
- Sigstore integration time:
-
Permalink:
Harmonese/rollingpebble@fe4753592263bd7f843311f92c922b14abb3ae5e -
Branch / Tag:
refs/tags/v0.6.3 - Owner: https://github.com/Harmonese
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fe4753592263bd7f843311f92c922b14abb3ae5e -
Trigger Event:
release
-
Statement type:
File details
Details for the file rollingpebble-0.6.3-py3-none-any.whl.
File metadata
- Download URL: rollingpebble-0.6.3-py3-none-any.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
316e60be0a94111f098a220ab4e59190c61e51585e6e25ebfb38b3df71afc6ca
|
|
| MD5 |
f7f1d8828e2729066c098de26d1e30e6
|
|
| BLAKE2b-256 |
fb98f9720a0ec75182e2000a9b8056ee7743e0dce457a43c6f7dc8e2c366d26f
|
Provenance
The following attestation bundles were made for rollingpebble-0.6.3-py3-none-any.whl:
Publisher:
python-publish.yml on Harmonese/rollingpebble
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rollingpebble-0.6.3-py3-none-any.whl -
Subject digest:
316e60be0a94111f098a220ab4e59190c61e51585e6e25ebfb38b3df71afc6ca - Sigstore transparency entry: 1587538163
- Sigstore integration time:
-
Permalink:
Harmonese/rollingpebble@fe4753592263bd7f843311f92c922b14abb3ae5e -
Branch / Tag:
refs/tags/v0.6.3 - Owner: https://github.com/Harmonese
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fe4753592263bd7f843311f92c922b14abb3ae5e -
Trigger Event:
release
-
Statement type: