Repository navigation
v0.4.0
Upgrade notes
- Stems (
render --stems,export-daw) are 24-bit WAV now (16-bit before). Projects from 0.3.0: runmuser migrate <project> --from 0.3.0 --writeto keep their balance under the calibrated instrument levels.
Install and upgrade
- One-line install:
curl -fsSL https://raw.githubusercontent.com/claw-works/muser/main/scripts/install.sh | sh(Windows:irm …/scripts/install.ps1 | iex) downloads the right release, checks it againstSHA256SUMS.txt, installs it under~/.local/share/muser/<version>(%LOCALAPPDATA%\muser\<version>on Windows) and putsmuserandmuser-mcponPATH; Linux without ALSA gets the headless build. muser self-updateupdates to the latest release through the same script (--checkonly looks,--versionpicks one).muser migrate <project> --from 0.3.0converts a project written for an older muser so it sounds the same now: for 0.3.0 projects it shifts thegain_db(andgain_dbautomation) of built-in instrument tracks by their calibration. It lists the changes;--writewrites them back.
Recording and vocals
- Record a voice in
muser view: a "Record a voice" panel records from the playhead (or just the loop range) over the backing in the browser, with a count-in and latency compensation (plus a manual nudge). Every take is saved at once asrecordings/<track>-take-NN.wavand listed inrecordings/takes.json; the take is laid on an audio track (created if needed, replacing what it overlaps) as a pending change — the project file only changes when you press Save. Takes can be swapped in or deleted from the panel.muser takes <project>shows each take's length, level, where the singing actually starts and ends, and whether the project uses it, so an agent can trim and align them (--cleanremoves unused takes). A project'slyricstext is shown next to the recorder, and as karaoke at the bottom of the screen: each line highlights character by character in time with the sung syllables (Chinese characters map one-to-one onto thelyricsyllables, English by word), with the next line below; a Lyrics switch in the transport bar turns it off. - Measure latency in the recorder: with headphones off, muser plays 8 clicks, hears them through the microphone and fills in the latency nudge; the nudge is remembered on that computer.
muser takes <project> --timingmeasures each sung phrase against the guide melody (the track whose notes carrylyric) and says how many milliseconds early or late it is, and whether a constant offset looks like recording latency.- Cut and move audio clips in
muser view: the ✂ button (or C) turns on scissors — click an audio clip to cut it there into two clips with short fades; drag an audio clip to move it (Shift snaps to 1/16 notes); click one to select it and nudge it with ← / → by 10 ms (Shift: a 1/16 note). Edits are pending changes until Save. muser clip split <project> --track vocal --at <beat>/muser clip move … --clip N --to <beat> | --by-ms -70: the view's scissors and nudges for agents, editing only that track's clips in the project file.- Humming lyrics: notes on
choir.*instruments can carry alyric(pinyin or English spelling), or an ABCw:lyric line maps syllables onto the notes in order. Each note sings the syllable's vowel (diphthongs glide within the note, -n / -ng close to a hum), so a line hums with the vowels of its words; consonants are not sung in 0.4. Lyrics go into MIDI exports as lyric events. Sample:samples/v0.4/moon-rising. - Transpose the whole song: a project-level
"transpose": 3(−24 to 24 semitones) shifts every pitched instrument track as it plays — the written notes stay as they are, drums and audio tracks don't move, and chords inanalyzefollow.muser viewhas a Key − / + control for trying keys for a different singer before recording; Save writes it.
Writing music
- A time signature per section:
"sections": { "bridge": { "bars": 4, "time_signature": { "numerator": 7, "denominator": 8 } } }. Chords follow the section's bar length;analyzebar numbers, warnings, MIDI export (a time-signature event at each change),export-dataand the bar lines inmuser viewfollow the meter changes. The drummer still writes 4-beat grooves, and ABC export lays bars out in the project meter (with a note). - Loops that run across sections: a part with
"align": "global"counts its loop from the start of the song instead of restarting at every section, so polymeter layers (7, 13, 17 steps …) keep drifting through the whole form without rewriting them as absolute clips. Consecutive sections that use the same global part become one clip, so long notes sound across section lines, andmuser viewshows it as one continuous block. muser viewdraws parts that are used more than once as rounded blocks, the same shade and the part's name for the same part — like patterns in FL Studio — and its bar lines follow the real bar lengths (they were wrong for meters like 6/8).
Hand-off and export
- Export for a DAW:
muser export-daw <project> -o <folder>(MCPexport_daw) writes everything Ableton Live, Cubase or Logic needs to carry on: a MIDI file of every instrument track (tempo, meter, section markers), 24-bit stems aligned at bar 1, the mix, and IMPORT.md, a guide with the steps for Live, Cubase, Logic, FL Studio, Studio One, Bitwig, REAPER, GarageBand and Pro Tools. - Stems:
muser render <project> --stems <dir>(MCPexport_stems) writes one WAV per unmuted track — with its effects, fader, pan and what it sends to buses (reverb follows the track), sidechains intact, without the master effects — all the same length, for mixing on in a DAW. muser render -o song.mp3writes MP3 directly (320 kbit/s, with title and tempo tags) with manguebyte's encoder.- Section markers in WAV files:
muser render(and stems) write a cue point at the start of every section of theform(verse,chorus,chorus#2…), plus the title and tempo, so DAWs and players can jump by section. - Data for visuals:
muser export-data <project> [-o data.json] [--fps 30](MCPexport_data) writes one JSON with every track's notes in seconds (as rendered), the sections, the automation curves of tracks and master, and with--fpsa per-frame level and low-band envelope — everything the Electric Sheep videos had to scrape by hand.
Better feedback for agents
analyze --audiowarns about sections that are almost silent (average level below −45 dB, or no sound at all) and says what it can see in the project: no notes there, the master volume curve low there, the playing tracks' volume low there, or both stacked (the master curve and track fades together, as in the dreamer songs). Intentional silence can be ignored.
Fixes
- Plugins that print their own log lines (for example Kontakt 8's
[…] [error] PresetSlotManager::selectSlot: slot not found …, once per instance) no longer flood the terminal duringrender,viewand the other commands. Lines that start with a log timestamp go tomuser-plugin.login the temp folder, with one note saying where; muser's own output is unchanged. SetMUSER_PLUGIN_LOG=showto see them again (macOS and Linux). muser viewdrew bar lines a numerator's worth of beats apart, which was wrong for meters like 6/8; the pending-changes panel kept showing "matches the project file" next to a list of changes.
Full Changelog: v0.3.1...v0.4.0