Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Songwriter Player

mrrepacmrrepac931 downloads

Advanced sidebar audio player for songwriting: waveform, work marker, A-B loop zone, play counters and hotkeys. Playback survives note scrolling and closing the panel.

Add to Obsidian
Songwriter Player screenshot
Songwriter Player screenshot
  • Overview
  • Scorecard
  • Updates17

An advanced sidebar audio player for songwriting.

Obsidian's embedded audio unloads as the note scrolls, and playback cuts off. Songwriter keeps the player in its own side panel: scroll your lyrics as much as you like — the music keeps playing. Playback even survives closing the panel (the sound lives in the plugin, not in the UI).

Читаете по-русски? Есть русская версия README.

Features

  • Right-sidebar panel — opened with the ribbon button (a note icon) or a command.
  • Pickup from the note — the player takes the audio from the note you open (an embed ![[song.mp3]] or a link [[song.mp3]]). If music is already playing, it offers to switch with a small banner instead of interrupting. The mode is configurable: hybrid / always / manual.
  • Track waveform:
    • single click — play from there;
    • double click — set the marker.
  • Marker (⚑) — one point per track: mark the spot you keep coming back to while working on a song. "Play from marker" always starts there (with no marker — from the start). The marker is remembered per file, and the ⚑ button in the track row drops it again — it appears only while there is one to drop.
  • Playlist — open a note holding several audio files and they line up as its playlist; open an audio file and every audio file next to it in the folder does. The list sits under the player (collapsible, remembers its state): the current track is highlighted, each row shows its play count and a ⚑ if the track has a marker, a click switches to it — and keeps playing if something was playing. ⏮ ⏭ walk the list, and the list survives ejecting the track, so you can pick the next one from it. Optionally the playlist plays through on its own.
  • Drag a track out — drag a row (or the loaded track's name) into a note and it drops in as a link; hold Alt while dragging and the file itself goes out instead — to the system file explorer, the desktop, or an audio editor such as REAPER, which only accepts a real file on disk, not the virtual one an ordinary browser drag offers. Alt-dragging into Obsidian itself does nothing — that is the deliberate cost of splitting the two gestures. The native handoff is desktop-only; on mobile there is no such route.
  • Order the playlist — the button in the playlist header sorts it by name, tempo, play count or how recently the file changed; the chosen order is what ⏮ ⏭ walk, and it is remembered. Folder playlists only: a playlist built from a note keeps the order the note itself gives it.
  • Sort a pack of beats — right after its number every playlist row has a small button, and each click steps the track's mark on: new (an empty circle) → in a track (a note) → saved (a bookmark) → dropped (a cross, the row fades) → new again. Clicking it does not play anything. A row's right-click menu sets any mark directly. With the player panel focused (click anywhere in it), bare keys work too: A in a track, S saved, D dropped, F new again — for the loaded track — ↑ ↓ walk the playlist, and ← → seek by the step set in the settings. They are matched by physical key, so any keyboard layout works, and a text field keeps its keys. Under the playlist header a search box narrows the list by name (every word, any order), a filter shows all tracks, new ones or one mark, and a counter says how far the sorting has got (34/97). A gauge button there measures tempo and key of every track that has none yet — one at a time, with progress in a notice; click it again to stop. Dropped tracks can go for good: one from its row's menu, all of them from the filter menu — after a confirmation that also says how many of them notes still link to. They go to the trash set in Obsidian's Files and links settings. There is also a command that steps the loaded track's mark, without a default key. Marks are separate from the marker and are remembered per file.
  • Copy a track into the note you are looking at — the Copy track to current note command, or the same item in a playlist row's right-click menu. The copy lands in the vault's own attachment folder and is embedded in the note as a waveform; the track's marker, counters and measured tempo and key come with it. Playback is not interrupted — filing is not listening. Sending the same track again links the copy that is already there instead of making a twin.
  • Play count and total listened time — next to the track name (▶ 27 · 2h40m). A run only counts once 5 seconds have actually sounded (start-and-stop does not count; pause-and-resume keeps accumulating). Listened time accumulates only while sound is actually playing. Right-click the counter to reset both.
  • Back to the track's note — click the track name (or Alt+D) to jump to the note the track was picked up from: if it is open in a tab, that tab is focused, otherwise the note opens; if the source is unknown, any note linking to the file is used.
  • Unload track — the ⏏ button in the track row (or the Unload track command): the player clears and holds nothing while you work on other things; the hotkeys cannot fire by accident. Load a track again with the "Load audio from the note" button or just by opening a note with audio.
  • Open externally (ported from the Open Audio Externally plugin): a ⧉ button to the right of the track name in the panel — and the same button next to every embedded audio player in notes. Click opens the file in the default app, right-click reveals it in the system explorer. Commands: Open track in default app, Reveal track in system explorer. The embedded-player buttons can be turned off in settings.

The marker is visible right on the waveform (an orange flag) — there are no separate indicators in the panel. Time, buttons and volume share a single line under the waveform.

Hotkeys (defaults)

All commands can be rebound in Settings → Hotkeys. The Russian keyboard layout is duplicated out of the box.

Command Keys
Play from marker (or from start) Alt+X
Stop (double press: the next Alt+X plays from the start, marker intact) Alt+C
Set marker at current position Alt+Z
Play/Pause Alt+P
Open track's note Alt+D
Seek back / forward Alt+, / Alt+.
Previous / next track in the playlist Alt+B / Alt+N
Play slower / faster (one bpm a step, the key stays put) Alt+- / Alt+=
Transpose down / up a semitone (desktop only) Alt+PageDown / Alt+PageUp
Play as recorded again — speed and key Alt+0

On the numeric keypad the four of them sit together, under one hand: Alt+÷ / Alt+× transpose down and up, Alt+− / Alt++ step the tempo.

Without default keys: Clear marker, Load audio from current note, Open player panel, Unload track, Copy track to current note, Open track in default app, Reveal track in system explorer.

Settings

Besides the basics (pickup mode, seek step, start from marker) there is a playlist section (whole folder as a playlist, play the playlist through) and a fine-tuning one: the play-count threshold, the double-stop window, the waveform height, and the embedded-player button.

Data

Markers, counters and sorting marks are stored in the plugin's data.json, keyed by the audio file path; when a file is renamed inside the vault, its data moves along automatically.

The interface follows Obsidian's language (English, or Russian when the app is set to Russian), works on desktop and mobile ("open externally" needs desktop).

Building

npm install
npm run build   # tsc typecheck + esbuild → main.js
npm run dev     # watch mode
npm test        # bundles the real source and drives it against stubs

The tests need no framework: they bundle src/ exactly as it ships, run it with a stub obsidian module, and drive the result — so what is checked is the artifact users install, not a restatement of the logic. The settings suite guards the round trip through data.json, where a field added to the type but forgotten in the migration is written faithfully and then dropped on the next start.

License

GNU AGPL-3.0. Tempo is measured by TempoCNN (model deeptemp_k16, © Hendrik Schreiber), licensed under the AGPL-3.0, so the combined work is too. Key is measured by S-KEY (© Deezer, ICASSP 2025), under the MIT license. Both networks run in plain JavaScript inside the plugin: the weights are converted from the original models by tools/export-models.py into models/, and tests/detect.test.mjs holds the port to the originals' own output.

Transposition is done by Signalsmith Stretch 1.3.2 (© Geraint Luff / Signalsmith Audio), bundled unmodified from npm under the MIT license, which is compatible with the AGPL.

Using the plugin carries no obligations. Distributing a modified version does: the source has to stay available under the same license.


Author: mrrepac · AGPL-3.0

HealthExcellent
ReviewCaution
About
Keep audio playing in a right sidebar while you scroll or close the panel, loading tracks from embeds or links in the open note. Control playback on a waveform: click to seek, drag to loop A‑B, double‑click to set a per-file marker, switch tracks, and record play counts + listened time.
AudioSidebarVisualization
Details
Current version
2.0.0
Last updated
Last month
Created
4 months ago
Updates
17 releases
Downloads
931
Compatible with
Obsidian 1.7.2+
Platforms
Desktop, Mobile
License
AGPL-3.0
Report bugRequest featureReport plugin
Author
mrrepacmrrepacmrrepac
GitHubmrrepac
  1. Community
  2. Plugins
  3. Audio
  4. Songwriter Player

Related plugins

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

ExcaliBrain

An interactive, structured mind-map of your Obsidian vault.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Mermaid Tools

Improved Mermaid.js experience: visual toolbar with common elements and more.

Vertical Tabs

Offer an alternative view that displays open tabs vertically, allowing users to group and organize tabs for a better navigation experience.

Flexplorer

Enhance the file explorer with custom sorting, pinning, and hiding.

Maps

Adds a map layout to bases so you can display notes as an interactive map view.