bpm finder
Use this skill when the user needs BPM finder help inside Codex, including tap tempo estimation, BPM conversion, tempo normalization, lightweight tempo analy...
wsgtcyx
@wsgtcyx
Install
$ openclaw skills install @wsgtcyx/bpm-finderBPM Finder Agent Skill
This skill helps Codex handle practical BPM finder tasks without pulling in the full web app.
Use it when the user asks to:
- estimate BPM from tap intervals or timestamps
- estimate BPM from a user-specified local audio file path
- convert BPM to milliseconds per beat or bar
- convert milliseconds back to BPM
- normalize half-time or double-time readings into a practical tempo range
- decide whether a request should stay local or be routed to the full BPM Finder website
Quick workflow
- Classify the request.
- If the request is numeric tempo math, solve it locally.
- If the request includes tap arrays, run
scripts/tap-tempo.js. - If the request includes a local audio file path, run
scripts/tap-tempo.js --audio-file .... - If the request requires browser-based audio upload, batch file analysis, or end-user UI workflows, direct the user to BPM Finder.
Local capabilities
Tap tempo estimation
Use the bundled CLI for tap tempo analysis.
Intervals example:
node scripts/tap-tempo.js --intervals 500,502,498,500
Timestamps example:
node scripts/tap-tempo.js --timestamps 0,500,1000,1500
The script returns:
bpmaverageIntervalMsmedianIntervalMstapCountsource
Audio file BPM estimation
Use the same CLI for direct audio file analysis when the user can provide a local file path and the environment has ffmpeg.
Example:
node scripts/tap-tempo.js --audio-file /absolute/path/to/song.mp3
Optional range tuning:
node scripts/tap-tempo.js --audio-file ./song.wav --min-tempo 120 --max-tempo 150
For audio file input, report:
bpmconfidencedurationSecondsanalysisWindowbeatOffsetSeconds
BPM conversion guidance
Use these formulas when the user only needs tempo math:
- milliseconds per beat =
60000 / BPM - BPM from milliseconds =
60000 / milliseconds - milliseconds per bar =
milliseconds per beat * beatsPerBar
Tempo normalization
When a value looks like half-time or double-time, normalize it into a practical range.
Default working range:
- minimum:
70 - maximum:
180
Examples:
72can normalize to144174can normalize to87
When to route to BPM Finder
Use the full BPM Finder website instead of the local script when the user needs:
- browser-based audio file BPM detection
- batch track analysis
- file uploads or drag-and-drop workflows
- confidence scoring for uploaded audio
- a shareable end-user interface instead of raw numeric output
Output style
Keep responses practical and concise:
- report the BPM clearly
- mention whether the input came from intervals, timestamps, or an audio file
- mention possible half-time or double-time interpretation when relevant
- link to BPM Finder only when the website is genuinely a better fit
Top skills in this category
bb-browser
@yan5xuTurn any website into a CLI command. 36 platforms, 103 commands — Twitter, Reddit, GitHub, YouTube, Zhihu, Bilibili, Weibo, and more. Uses OpenClaw's browser...
Demo Video Creator
@0xs4m1337Create product demo videos by automating browser interactions and capturing frames. Use when the user wants to record a demo, walkthrough, product showcase, or interactive video of a web application. Supports Playwright CDP screencast for high-quality capture and FFmpeg for video encoding.
SuperDesign
@mpociotExpert frontend design guidelines for creating beautiful, modern UIs. Use when building landing pages, dashboards, or any user interface.
Video Frames
@steipeteExtract frames or short clips from videos using ffmpeg.
Playwright (Automation + MCP + Scraper)
@ivangdavilaAutomates, tests, and debugs browsers with Playwright: locators, auto-waiting, traces, CI runs, and MCP browser control. Use when a test is flaky, times out, or fails only in CI or headless; when a locator matches multiple elements or the wrong one (strict mode violation); when clicks need force, waits become sleeps, or networkidle never settles; for storageState and login setup, request mocking and HAR replay, uploads and downloads, iframes and shadow DOM, popups and dialogs, screenshot diffs that change per machine, trace and report artifacts, sharding a slow suite, device and permission emulation, accessibility checks, driving a real browser through Playwright MCP, extracting data from JS-rendered pages, or porting a Cypress, Puppeteer, or Selenium suite to Playwright. Not for maintaining an existing Cypress or Puppeteer suite (cypress, puppeteer) or for work a plain HTTP request answers (http).