Patrick Fanella517 downloadsA precise metronome and chromatic tuner inside Obsidian.
Metronome + Tuner is an Obsidian plugin that adds a metronome and a chromatic tuner in a side view, so you can practise with your notes open. It works in Obsidian 1.7.2 or later on desktop and mobile. The current release is 1.3.0, and the plugin is listed in Obsidian's community plugins.
The tuner asks for microphone access only after you select Use microphone. It analyses the audio on your device and does not record, store, send or play it. Whether the microphone is available depends on your device, operating system and the Obsidian mobile app.
Download main.js, manifest.json and styles.css from a release and copy them into:
<vault>/.obsidian/plugins/metronome-tuner/
Restart Obsidian, then enable Metronome + Tuner under Settings → Community plugins.
Select the ribbon icon or run the Open command to open the Tempo & tune view.
Startup defaults live under Settings → Metronome + Tuner: language (auto by default), tempo (120 BPM), time signature (4/4), accent (on), volume, click sound (woodblock) and the A4 reference (440 Hz). Obsidian saves them in the plugin's data.json in your vault.
Node.js 24 or later is required.
npm install
npm run dev # watch the source and write main.js at the repository root
npm run build # production main.js
Other scripts:
| Script | What it does |
|---|---|
npm run lint |
ESLint, including the Obsidian plugin rules. |
npm test |
Vitest unit tests. |
npm run typecheck |
TypeScript type check. |
npm run build:clean |
Remove any existing main.js, then build. |
npm run check |
Lint, tests, type check and a clean build. |
npm run verify:release -- x.y.z |
check, then validate the version metadata and built files for that tag. |
x.y.z version in package.json, manifest.json and versions.json (npm version updates the last two).npm run verify:release -- x.y.z.x.y.z, without a v prefix.main.js, manifest.json and styles.css. Check the draft, then publish it.| Path | Contents |
|---|---|
src/main.ts |
Plugin entry, commands and ribbon icon. |
src/view.ts |
The Tempo & tune view. |
src/metronome/ |
Scheduler, click synth, tap tempo and sound presets. |
src/tuner/ |
YIN pitch detector, note maths and the tuner controller. |
src/audio/ |
Shared audio runtime. |
src/settings.ts, src/settingsParsing.ts |
Settings tab and validation. |
src/i18n.ts, src/i18n/ |
Translations and locale detection. |
styles.css |
View styles. |
tests/ |
Vitest tests. |
Report bugs and request features in GitHub issues. Send code as pull requests on GitHub against main. CI runs npm run check (lint, tests, type check and a clean build) on every pull request. For anything else, email [email protected].