Analyze a piano recording's BPM, structure and stems
I used Gemini to write a Loooom skill, installed it in Claude Code, and got a full audio analysis report on a 37-second piano recording of Espresso. Task: I used Gemini to write a Loooom skill, installed it in Claude Code, and got a full audio analysis report on a 37-second piano recording of Espresso. Turns out AIs teaching AIs new senses is a surprisingly powerful pattern. I've never created a skill on Loooom through the web UI before. I always did it by editing the catalog repo directly. So last night I tried it the "normal" way — describe what you want, let an AI write it, publish it, and see what happens. The result was genuinely impressive. I'm still thinking about what it could be used for. The Setup I play piano badly. I've been messing around with Sabrina Carpenter's Espresso on an MPK Mini, and I had a 37-second SoundCloud clip of me fumbling through it: → Listen on SoundCloud I wanted to see if I could teach Claude Code to analyze audio — identify BPM, structure, frequency brackets, stems. Not because I needed this to be perfect, but because I wanted to see how far you could get with a well-written skill and no special plugins. I went to loooom.xyz/s/mager/how-to-identify-parts-of-a-song, used Gemini to draft the skill description and instructions, and hit publish. What Claude Did With It Inside Claude Code, I just asked: It loaded the skill automatically, asked for an audio source, and I pointed it at a local MP3 file. It didn't have ffmpeg or librosa installed — so it installed them. Mid-session. No fuss. Then it ran a Python PCM analysis pipeline and produced this: ListenIdentifyParts — Analysis Report Structure Timeline: Stems identified: Kick, Bass/Sub, Lead Vocal, Guitar/Keys, Hi-Hat, Overhead/Air. Here's what it actually looked like in the terminal: From a 37-second amateur piano recording. No tags, no metadata, no prior knowledge besides the filename. What's Wild About This The skill was written by Gemini. Published by me via a web form. Loaded by Claude Code. Then Claude installed its own dependencies, wrote its own analysis pipeline, and produced a publication-quality report. Three different AIs — one wrote the instructions, one executed them, one (arguably) composed the source material. I was mostly just the person who pointed at the file. That's not a workflow I planned. It just... emerged. What Could This Actually Be Used For? I'm still working through it. Some possibilities: Music education — "here's my practice recording, what sections need work?" Production feedback — fast structural analysis before a mix session Podcast editing — identify energy drops, silence zones, segment boundaries Sample digging — find the chorus in a long track, map the beat grid None of these require perfect accuracy. They require useful signal fast. And that's what it delivered. The Real Insight I built this mostly to test skill creation via the UI. But what I got back was a reminder that the value of a skill isn't the code — it's the framing. The skill told Claude what to look for, what format to report in, what to do when tools are missing. The analysis itself was Claude improvising with standard Unix tools. That's the Loooom pattern at its best: a skill teaches the agent a new way to see. In this case, a way to hear. The skill is live at loooom.xyz/s/mager/how-to-identify-parts-of-a-song if you want to try it. My terrible 37-second piano cover that started all this — espresso taste on SoundCloud. On this page; tools: Claude Code. Human role: The original post does not say how a person stayed involved.; limitations: The workflow relies on Claude Code having permission to install system-level dependencies like ffmpeg and librosa mid-session. The BPM estimation showed a discrepancy (~91 vs ~104), indicating potential accuracy issues with onset detection on amateur recordings. The skill's effectiveness depends on the quality of the initial Gemini-generated instructions..
Tools
Published on Agent Work Atlas:
Overview
I used Gemini to write a Loooom skill, installed it in Claude Code, and got a full audio analysis report on a 37-second piano recording of Espresso.
Workflow
I used Gemini to write a Loooom skill, installed it in Claude Code, and got a full audio analysis report on a 37-second piano recording of Espresso. Turns out AIs teaching AIs new senses is a surprisingly powerful pattern. I've never created a skill on Loooom through the web UI before. I always did it by editing the catalog repo directly. So last night I tried it the "normal" way — describe what you want, let an AI write it, publish it, and see what happens. The result was genuinely impressive. I'm still thinking about what it could be used for. The Setup I play piano badly. I've been messing around with Sabrina Carpenter's Espresso on an MPK Mini, and I had a 37-second SoundCloud clip of me fumbling through it: → Listen on SoundCloud I wanted to see if I could teach Claude Code to analyze audio — identify BPM, structure, frequency brackets, stems. Not because I needed this to be perfect, but because I wanted to see how far you could get with a well-written skill and no special plugins. I went to loooom.xyz/s/mager/how-to-identify-parts-of-a-song, used Gemini to draft the skill description and instructions, and hit publish. What Claude Did With It Inside Claude Code, I just asked: It loaded the skill automatically, asked for an audio source, and I pointed it at a local MP3 file. It didn't have ffmpeg or librosa installed — so it installed them. Mid-session. No fuss. Then it ran a Python PCM analysis pipeline and produced this: ListenIdentifyParts — Analysis Report Structure Timeline: Stems identified: Kick, Bass/Sub, Lead Vocal, Guitar/Keys, Hi-Hat, Overhead/Air. Here's what it actually looked like in the terminal: From a 37-second amateur piano recording. No tags, no metadata, no prior knowledge besides the filename. What's Wild About This The skill was written by Gemini. Published by me via a web form. Loaded by Claude Code. Then Claude installed its own dependencies, wrote its own analysis pipeline, and produced a publication-quality report. Three different AIs — one wrote the instructions, one executed them, one (arguably) composed the source material. I was mostly just the person who pointed at the file. That's not a workflow I planned. It just... emerged. What Could This Actually Be Used For? I'm still working through it. Some possibilities: Music education — "here's my practice recording, what sections need work?" Production feedback — fast structural analysis before a mix session Podcast editing — identify energy drops, silence zones, segment boundaries Sample digging — find the chorus in a long track, map the beat grid None of these require perfect accuracy. They require useful signal fast. And that's what it delivered. The Real Insight I built this mostly to test skill creation via the UI. But what I got back was a reminder that the value of a skill isn't the code — it's the framing. The skill told Claude what to look for, what format to report in, what to do when tools are missing. The analysis itself was Claude improvising with standard Unix tools. That's the Loooom pattern at its best: a skill teaches the agent a new way to see. In this case, a way to hear. The skill is live at loooom.xyz/s/mager/how-to-identify-parts-of-a-song if you want to try it. My terrible 37-second piano cover that started all this — espresso taste on SoundCloud. On this page
Reported result
The system produced a structured report including BPM (~91 estimated vs ~104 canonical), meter, key, and a timeline of sections (Intro, Verse, Chorus, Outro). It identified stems such as Kick, Bass/Sub, and Lead Vocal. The author noted the output was 'publication-quality' despite the amateur source material, though no formal accuracy metrics were provided.
Human role
The original post does not say how a person stayed involved.
Limitations
The workflow relies on Claude Code having permission to install system-level dependencies like ffmpeg and librosa mid-session. The BPM estimation showed a discrepancy (~91 vs ~104), indicating potential accuracy issues with onset detection on amateur recordings. The skill's effectiveness depends on the quality of the initial Gemini-generated instructions.
Try it
I want to replicate the audio analysis workflow described in the case. First, use Gemini to draft a Loooom skill description and instructions for identifying song parts (BPM, structure, stems). Publish this skill to loooom.xyz. Then, in Claude Code, load the skill and provide a local MP3 file [replaceable input: path to audio file]. Ensure Claude Code has permission to install ffmpeg and librosa if missing. Run the analysis and generate a report with a structure timeline and stem identification. Before finalizing, verify the BPM against a known reference if available. Output the report in a clear, tabular format. If the skill fails to load or dependencies cannot be installed, stop and report the error. Do not proceed with batch processing until one sample is verified.
Source reports are not independently verified. Publication date is the catalog publication date, not the original article date.