惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
IT之家
IT之家
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - Franky
I
InfoQ
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网
博客园 - 聂微东
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
D
Docker

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - evanhu1/transposify: Sing along to any Spotify s...
evanhu_ · 2026-06-02 · via Hacker News: Show HN

A macOS menu-bar app that lets you sing along to any Spotify song in your range — shift the key up or down by semitones in real time, pitch without tempo change. It stays out of the way: a small 𝄞 +2 / 𝄞 −3 / 𝄞 0 in the menu bar, and a popup when you click it. Settings are remembered per song.

Transposify popover

Install

You build it on your own Mac with one script. Because it's compiled locally, macOS doesn't quarantine it — no Apple Developer account, no notarization, no "unidentified developer" warning.

git clone https://github.com/evanhu1/transposify.git
cd transposify
./install.sh

That builds the app, ad-hoc-signs it, installs it to /Applications, and launches it. On first launch macOS asks for Microphone access — that's the permission Core Audio uses to capture Spotify's audio; it never touches your real microphone. Click Allow, then look for the 𝄞 in your menu bar.

Requirements: macOS 14.4 or later, the Spotify desktop app, and Apple's command-line tools (xcode-select --install if swift isn't found).

Uninstall:

rm -rf /Applications/Transposify.app && tccutil reset Microphone com.evanhu.transposify

Using it

Click the menu-bar item to open the popup:

  • Now playing — current track + artist.
  • Transpose / value / +, or the slider (±12 semitones). Reset (↺) appears when shifted.
  • Reduce vocals (karaoke) — experimental center-channel cancellation to duck the original lead vocal; works best on stereo tracks.
  • Remember key for this song — on by default; your setting auto-applies when that track plays again. New songs start at the original key.
  • Launch at login — register as a login item via SMAppService.

The menu-bar item (treble clef + signed value) always reflects the current offset, at fixed width so it never shifts. The app auto-adjusts when you switch output devices (e.g. plug in headphones) and engages only while Spotify is playing.

How it works

Spotify's desktop client never exposes its decoded audio — it's DRM-protected, so no injected code (Spicetify etc.) can touch the stream for DSP. The only way to pitch-shift it is to capture Spotify's audio output and process it before your speakers:

Spotify ─► Core Audio process tap (muted-when-tapped) ─► ring buffer
                                                              │
  popup sets semitones ─► [vocal reduce] ─► Rubber Band R3 ◄── source node
                                                  │
                                                  └─► default output device
  • Capture: a Core Audio process tap (AudioHardwareCreateProcessTap, macOS 14.4+) grabs only Spotify's audio — no virtual device, no extension. The tap is created muted-when-tapped, so Spotify's untouched output is silenced and you hear only the processed copy.
  • Transpose: the Rubber Band Library R3 ("finer") engine in real-time mode — a state-of-the-art music pitch shifter, run directly in the audio render callback. Latency is higher than Apple's built-in unit, but that's irrelevant here (you sing along to the output, so there's no monitoring loop). Verified accurate to <0.1%.
  • Pristine passthrough at 0: the pipeline engages only while Spotify is playing and there's something to do (pitch ≠ 0 or karaoke on). At 0 with karaoke off the tap is fully torn down, so Spotify plays untouched — bit-perfect, zero added latency. It also disengages when you pause.
  • Now playing / per-song memory: read from Spotify's PlaybackStateChanged distributed notification (instant, no polling), keyed by track ID.

Diagnostics & tests

swift probe.swift                              # OSStatus of each Core Audio tap call
TRANSPOSIFY_SELFTEST=1 .build/debug/Transposify  # headless engagement state-machine test
TRANSPOSIFY_RBTEST=1   .build/debug/Transposify  # Rubber Band pitch-accuracy check (440Hz +7st)

To build without installing: ./make-app.sh && open Transposify.app.

License

This project is GPLv2-or-later (see LICENSE). It must be — it statically links the Rubber Band Library by Particular Programs Ltd, which is GPLv2+. The Rubber Band source is vendored under Sources/CRubberBand (single-file build, using Apple's vDSP FFT). If you want to ship a closed-source build, obtain a commercial Rubber Band licence from Breakfast Quay.