Localhost Recording Studio
io.github.jooray.localhoststudio
Juraj🏴💛🌘 juraj@tamersofentropy.net Make full songs from a style and lyrics, offline, on your phone.
Write a style and some lyrics, press record, and your phone makes the whole song. Everything runs on the device. You don't need an account, and after the model download you don't need the internet either. The first model is YuE2-3B. It takes a style such as "fast punk rock, screaming male vocal" plus lyrics with [Verse] and [Chorus] tags and renders a full stereo song. You can extend a song from any section, reuse a prompt for a new take, and rename songs in the catalogue. It can also cover a recording. Pick an audio file, and the app writes down its melody and chords, then sings a new song from that score in your style and with your words. A Style control sets how much your style pulls against the original tune. The original sound and voice are not kept. On a phone it is slow: expect a few minutes for every 10 seconds of music. Jobs run in the background and pick up again if Android closes the app. The same app runs on macOS and Linux, where it is much faster. The app is free software under the MIT licence. Each model brings its own licence, which you accept before downloading. YuE2-3B is CC BY-NC 4.0, so songs made with it are for non-commercial use.
First release: Oct 16, 2026, 4 total releases.
Most recent release: Oct 19, 2026.
Appears in 1 app stack.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Oct 19, 2026 0.4.9A fix for covers and songs that failed on the Mac. **Mac: "Another thread owns Lyra GPU execution"** Changing the precision (for example from 8-bit to BF16) could make the next songs fail right after loading, with this error. The same could happen after the engine unloaded the model. It came down to which thread the engine used for each job, so it struck some setups often and others never. All model work now runs on one thread, and the songs record normally after a precision change. If you have songs that failed this way, record them again. **Failed songs say so**
More…
The song list now shows FAILED instead of STOPPED for a song that ended with an error. The error itself is at the top of the song's page. APK signing certificate SHA-256: `79750fb49349ec3729be5a3e825507a15e47c6d987e854ae91d5d50a20b3a24d` - Oct 19, 2026 0.4.6Finding your way around the studio got easier. **Back goes to your songs** The app still opens in the studio, but the list of all songs now sits behind it. Swipe back (or tap ‹ ALL in the top left on a phone) to get to the list. Back from the list leaves the app. **Starting a new song** The list starts with the next catalogue number as an empty sleeve, "New entry". Tap it to write the next song.
More…
In the studio, the words under the plot now always belong to one song: - When you play or pick a song, you see its own style and lyrics, labelled "AS RECORDED". NEW opens the draft for the next song. REUSE (or touching the words) starts a draft from this song's words. - In the draft, labelled "NEXT · LRS-0xx", you write and RECORD. CLEAR blanks the sheet, with an undo. Your draft is kept when you switch to listening, so NEW brings it back. **Mac** If the model files on disk would make Record fail, the app now opens setup at start instead of failing later. APK signing certificate SHA-256: `79750fb49349ec3729be5a3e825507a15e47c6d987e854ae91d5d50a20b3a24d` - Oct 18, 2026 0.4.5Two fixes, one for the Mac and one for Android. **Mac setup** You don't need to install uv yourself anymore. If the app can't find it, it downloads its own copy (a pinned uv release, checksum checked) into its data folder and uses it from there. Nothing is installed system-wide. In 0.4.4 the model download also left the files in a layout that mlx-Yue refuses to load, so setup finished and then Record failed with "Converted directory has missing or unexpected files". Setup now arranges the folder the way mlx-Yue wants it and runs mlx-Yue's own check before you get to Record. If you already went through setup in 0.4.4, the app opens the setup screen when it starts. Press the button there: it moves your existing files into place and downloads only what's missing (mostly the 4.3 GB bf16 file), so you don't start over. A fresh Mac download is now about 10.5 GB, because mlx-Yue wants both AR precisions on disk.
More…
**Android** Songs now play through Android's Media3 player instead of libmpv. libmpv loaded code from memory, and that's what GrapheneOS flagged as "App wants DCL via memory". libmpv is gone from the APK, so the warning should no longer show up. The APK is also about 6 MB smaller. APK signing certificate SHA-256: `79750fb49349ec3729be5a3e825507a15e47c6d987e854ae91d5d50a20b3a24d` - Oct 16, 2026 0.4.4First public build. Localhost Recording Studio makes full songs from a style and lyrics on your own phone or computer. After the model download it works offline. **Android** (arm64, Android 14+): install the APK. On first start the app downloads the model (about 3.5 GB) and shows its licence before anything downloads. Generation runs on the CPU in the background and is slow: expect several minutes for every 10 seconds of music. **macOS** (Apple Silicon): unzip and right-click, then Open the first time, because the app is not notarized. The engine runs on MLX. The first-run engine setup needs [uv](https://docs.astral.sh/uv/) and downloads about 11 GB of weights. That setup flow is new and has had little testing outside the developer's machine, so please report problems. **Linux**: build from source, see the README. What's in this build: - Catalogue numbers for every song, a polar plot of its waveform, and names you can edit
More…
- Extend a song from any section, re-render with another seed, reuse a prompt for a new take - Queue several takes and walk away - One model so far, YuE2-3B by M-A-P. Its weights are CC BY-NC 4.0, so songs made with it are for non-commercial use. The app itself is MIT. APK signing certificate SHA-256: `79750fb49349ec3729be5a3e825507a15e47c6d987e854ae91d5d50a20b3a24d`