Lila Player is a free, open-source desktop app for Windows, macOS and Linux that turns any audio file into a slowed and reverb lofi version, offline, with a WAV export.
- Download the latest release for Windows, macOS or Linux
- Open the web app if you would rather not install anything
| Platform | Files |
|---|---|
| Windows x86_64 | .exe installer, .msi |
| macOS Apple Silicon | .dmg |
| macOS Intel | .dmg |
| Linux x86_64 | .deb, .rpm, .AppImage |
The AppImage is much larger than the other Linux packages because it bundles its own runtime. Binaries are unsigned, so see Installation help for the first-run steps on macOS and Windows.
| Control | What it does | Range |
|---|---|---|
| Speed and pitch | Slows down or speeds up the track. Pitch follows speed, so a slower track also sounds lower. | 0.65x to 1.35x, in steps of 0.05 |
| Reverb | Crossfades between the dry track and a convolution reverb. 0 is fully dry, 100 is fully wet. | 0 to 100 |
| Vinyl crackle | Layers generated vinyl surface noise underneath, hiss and pops. | 0 to 100 |
| Volume | Output level, with headroom above 100 % for quiet tracks. | 0 to 110 % |
| Tone | Bass lifts the low end, Warmth rolls off the top, Drive adds soft saturation, Wobble adds tape flutter. | 0 to 100 % each, under Advanced |
| Loop | Repeats the whole track. | On or off |
| Loop section | Repeats only the part between the A and B markers. The intro before A plays once. | Advanced, Loop section: Start, End, Clear |
| Waveform | Draws the track and seeks to wherever you click. | Click to seek |
| WAV export | Renders your current speed, reverb, tone and volume settings to a WAV file. | Vinyl crackle is not included in the export |
| Aura | Soft colour fields behind the player swell slowly with the music, rate-limited so they never flash. Off under reduced motion. | Light and dark palettes |
| Theme | Light or dark. Follows your device until you switch, then remembered between launches. | Button at the bottom right |
| Media keys | Play and pause from your keyboard or system media controls. | Play, pause |
| Open a file | The Open audio button, a drag and drop anywhere on the window, or Ctrl+O (Cmd+O on macOS). | MP3, WAV, FLAC, OGG, M4A, AAC, AIFF, OPUS, WEBM, WMA |
| Keyboard | Space plays and pauses, arrows seek 5 seconds, L toggles loop, [ and ] set the loop start and end. Scroll over a slider to nudge it a step, five with Shift. | Ctrl+E (Cmd+E) exports |
- Open Lila Player and click Open audio, or drop an audio file anywhere on the window. The waveform appears once the file is decoded.
- Drag Speed below
1.00xto slow the track down. It opens at0.85x, which is a common starting point for slowed and reverb. - Raise Reverb to add space. The slider crossfades between the dry track and the reverb, so
0leaves the track dry and100is fully wet. - Raise Vinyl if you want vinyl crackle under the track.
- Set Volume. It goes up to
110%if the source is quiet. - Press play. Click anywhere on the waveform to seek, and use the loop button to repeat the whole track.
- To repeat one section instead of the whole track, open Advanced. Under Loop section, move the playhead to where the section starts and press Set on the Start row, then move it to the end and press Set on the End row. Lila plays the intro once, then loops A to B. Clear goes back to looping the whole track.
- Press Export to render a WAV with your current speed, reverb, tone and volume settings. The file is saved as
<your file>-lofi.wav, without the original extension.
Lila Player does all of its work on your own machine. Your file is read from disk, decoded into memory, processed there, and the WAV export is rendered locally. Nothing is uploaded, there is no account, and the desktop app needs no network connection to play or export audio.
The web app at ph33nx.github.io/lila-player works the same way. The page loads once, then every file you open is decoded and processed in your browser. Your audio is never sent to a server.
Yes. Lila Player is free to download and free to use. There is no account, no subscription, no trial and no ads. The source code is MIT licensed, so you can read it, change it and redistribute it.
Yes. All audio processing happens on your device. Once the desktop app is installed it never needs a network connection to open a file, slow it down, add reverb or export a WAV.
Any audio file your system can decode. That normally covers MP3, WAV, M4A and AAC everywhere, plus formats like FLAC and OGG depending on your operating system. Decoding is handled by the audio decoder built into the system webview, so the exact list varies by platform.
Yes. The Export button renders your current speed, reverb, tone and volume settings to an uncompressed WAV file. The render runs offline in a single pass rather than in real time, so it finishes faster than the length of the track. Vinyl crackle is a playback layer and is not included in the export.
Yes. Speed and pitch move together, so slowing a track also lowers its pitch. That is the sound most slowed and reverb edits use. Lila Player does not currently offer pitch-preserving time stretching.
Code signing certificates from Apple and Microsoft are a recurring yearly cost, and Lila Player is an unpaid open source project, so the released binaries are unsigned. macOS and Windows will warn you the first time you open the app. The Installation help section lists the exact steps for each platform, and you can always build from source instead.
Yes. The same player runs in your browser at https://ph33nx.github.io/lila-player/, with the same controls and the same WAV export. It processes audio in the browser and does not upload your files.
Lila Player runs on your own machine instead of on someone else's server. There is nothing to upload and nothing to wait in a queue for, no account to create, no watermark, and no cap on file size or track length beyond your own memory. The export is an uncompressed WAV rather than a re-encoded download. Because the source is MIT licensed you can read exactly what the app does to your audio.
macOS: "Lila Player is damaged and can't be opened"
macOS quarantines unsigned apps downloaded from the internet. To fix:
xattr -d com.apple.quarantine /Applications/Lila\ Player.appThen open Lila Player again.
Windows: "Windows protected your PC" (SmartScreen)
Windows SmartScreen blocks unsigned apps. To run anyway:
- Click "More info"
- Click "Run anyway"
If "Run anyway" doesn't appear: Right-click the installer → Properties → check "Unblock" → Apply.
Linux: AppImage won't run
Make it executable first:
chmod +x Lila.Player-*.AppImage
./Lila.Player-*.AppImageContributor docs: docs/index.md
-
Node.js (v20+ LTS recommended, v24 LTS latest)
node --version npm --version
Download from nodejs.org if not installed.
-
Rust
macOS and Linux:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows (PowerShell):
winget install --id Rustlang.Rustup rustup default stable-msvc
Verify:
rustc --version cargo --version
Debian and Ubuntu:
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential curl wget file \
libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-devFedora:
sudo dnf install gcc make pkg-config openssl-devel webkit2gtk4.1-devel gtk3-devel librsvg2-develArch and Manjaro:
sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl appmenu-gtk-module libappindicator-gtk3 librsvggit clone https://github.com/ph33nx/lila-player
cd lila-player
npm install
npm run tauri devBuild the desktop app with npm run tauri build.
| Command | Description |
|---|---|
npm run dev |
Start the Next.js dev server on port 3123 |
npm run tauri dev |
Start the Tauri app in dev mode |
npm run tauri build |
Build the production desktop app |
npm run build |
Build the static web export into out/ |
npm run lint |
Run ESLint |
npm run format |
Format code with Prettier |
npm run typecheck |
Run TypeScript type checking |
npm run test:unit |
Run the Vitest unit suite |
npm run test:e2e |
Run the Playwright e2e suite (build first) |
npm run verify |
Typecheck, lint, unit tests and build |
npm run screenshots |
Capture the UI state matrix, or -- --readme to regenerate the README images |
npm run deps:check |
Check for dependency updates |
npm run deps:upgrade |
Upgrade to latest minor versions |
npm run deps:latest |
Upgrade to latest versions, including major |
- Frontend: Next.js 15, React 19, Tailwind CSS
- Desktop shell: Tauri 2, Rust
- Audio: Web Audio API, with
OfflineAudioContextfor the WAV export - UI: Radix UI, Motion
MIT. See LICENSE.

