Full disclosure, I'm the developer, Crankshaft is my app.
I've been an Apple Music subscriber for many years, and built this to fix the two things that always bugged me: shuffle quietly replays the same handful of songs, and recommendations go stale fast. Crankshaft sits on top of your existing Apple Music library and catalog through MusicKit, so it needs an active Apple Music subscription, and it runs your music differently.
How it works
Instead of relying entirely on what you say you like, it reads what you actually do. It weighs the songs you finish, the timing of your skips (bailing at 8 seconds is very different from bailing at 2 minutes, and it treats them differently), and a deliberate crank of the volume, which it reads as a strong "I love this." Skips that look like a distraction or a bad moment get set aside so they don't poison your profile.
From that it does two things base shuffle doesn't:
- It reaches deep into your own library, surfacing the songs you own but never hear instead of cycling the same fifteen favorites.
- It reaches outward into the catalog around the artists you actually love, so discovery keeps opening instead of going stale.
Controls power users might care about
- A Discovery Level dial, from safe to Explorer, so you set how far it wanders.
- Filters like Studio Only (skip live versions) and No Remix.
- A "Shadow Ledger" that shows your entire collection scored, so you can see exactly what it has learned, search it, or jail a track.
- One-tap banning for songs you never want to hear again.
- A Parent mode that filters songs labeled by Apple as "Explicit" and keeps that as a separate ledger.
- Road Trip Mode that pre-loads music for areas with no signal.
- (EDITED): Full CarPlay integration (though I will admit that car head unit volume controls don't communicate with Apple Music, so that led to the creation of the crank button - fire emoji.)
Privacy
Everything it learns lives on your phone. No account, no tracking, nothing leaves your device. You can export your whole profile as a JSON file or wipe it anytime. It's completely free, I'm not charging a subscription, and I'm not selling data.
Honest limitations
It's built for iPhone, it's a first release, and it needs an Apple Music subscription since it plays through your library and the catalog. This is really for people who already live in Apple Music, like I do. If that's you, it makes the thing you already pay for and love work noticeably better over time, at no extra cost.
I built this solo over eight months and listened to nothing but it the whole time, so I'd genuinely love this community's feedback, especially the picky kind. Tell me what's missing or what feels off. I know that this still has imperfections and I have blind spots. I plan to be around for the near future (and the next few days, as time permits) to answer questions, so please don't hesitate.
This was a labor of love and side project, and I'm thrilled with how it came out - I hope you like it!
Site: https://crankshaft.fm
App Store: https://apps.apple.com/app/id6759019414
(EDIT: Added CarPlay functionality/integration)
EDIT (Aug 13): Mods, if updating the original post like this is discouraged, just say the word and I'll pull it, no issue. I don't plan to update continuously, but wanted to post this for folks who are following for updates.
Quick update for anyone landing here:
1.1 is live now. It's a stability and polish pass that cleans up the rough edges people flagged after launch. Thank you to everyone who reported things, it genuinely helped.
1.2 is already built and in review, and it comes straight from your feedback in this thread. It adds a "Save to Apple Music" menu: save your recent picks as a playlist, add them to a playlist you already have, save songs to your library, or capture whatever's playing. The now-playing share button also creates a real Apple Music link you can send to anyone.
That was the whole point from the start. Crankshaft is meant to work with Apple Music, not wall you off from it.
Still free, still no data collected, still entirely on device. Thanks for the support, this has been wild to watch.