Change a notebook song
jj_update_songUpdates selected fields of one notebook song, erases values set to null, and sets complete playlist membership or publish status. Omit fields to leave them unchanged.
Instructions
Changes some fields of one song of the calling account's notebook. Only the fields you pass move; a field set to null erases its value. key is the DISPLAYED key ("G", "Am"). playlistIds is the complete target membership, so it is idempotent. publish: true puts the song on the account's public profile and requires publishDeclaration the first time, plus a public username; publish: false removes it and has no conditions. Publishing is a deliberate act by the account holder: never publish unless they asked. To rewrite lyrics, chords or structure, use jj_create_song with the song's id instead.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"songId": "<songId>"
},
"name": "jj_update_song"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bpm | No | Tempo; null erases it. | |
| key | No | Displayed key ("G", "Am"); null erases it. | |
| capo | No | Capo fret; null erases it. | |
| title | No | New title. | |
| artist | No | New artist; null erases it. | |
| songId | Yes | Stable notebook song id, as returned by jj_list_songs or jj_get_song. | |
| ifMatch | No | The `updatedAt` you last read for this object. When set, the write is refused with a conflict error if anything changed it since (another device, or the Jam Jam app). Without it, last writer wins. Use it whenever you read, decided, then write. | |
| publish | No | true publishes on the public profile, false un-publishes. Ask the person first. | |
| playlistIds | No | COMPLETE target state of playlist membership, not a delta: the song joins the playlists listed and LEAVES every other one. [] removes it from all of them. Omit to leave memberships untouched. | |
| publishDeclaration | No | Rights declaration, required ONCE per object the first time it is published. "created": the account holder wrote it. "imported_no_known_restriction": a cover they know of no restriction on. "arrangement": their own arrangement. This is a statement made by the person, not by you: ask them which one applies, never pick one on their behalf. |