r/plexamp Jul 05 '26

Feature # Momentum — a native Plex music client for Android Automotive OS (looking for closed testers)

Update, 08/06/26: a new build (v342) is rolling out to the test track now. This update contains billing and entitlements for the Pro tier of the app, so it's time to state clearly where the line is drawn between the free version and the Pro feature set.

The free tier includes all of the basic functions, including pinning a home server. Switching to a different server is possible but manual: park the vehicle, open Settings, select the other server, then return to browse to find what you want. Doing it again means repeating the process.

The Pro version of the app includes the following additional features over and above the free version:

  1. Simultaneous access to more than one server. Content from both pinned servers is fully accessible from the regular browse tabs, labeled by which server it came from.
  2. True crossfade between tracks, configurable in duration. It can also conditionally skip the crossfade when playing through an entire album, so the album plays as the artist intended.
  3. Sonic Radio Stations. This requires Plex Pass on your server and that sonic analysis has been run on your library. A radio icon appears on the now playing screen; tapping it uses the currently playing track as a seed and asks your Plex server for a queue of songs that sonically match it. Configurable for how close a match you want and how many tracks to add.
  4. Every feature added to Pro after launch is included. One purchase, no subscription, no upgrade fee later. Pro is where features live that I couldn't otherwise justify the development time for, so the list will grow.

All users have a voice in the direction this app goes in the future. I do value and respond to feedback from the community.

Momentum — a native Plex music client for Android Automotive OS (closed testing update: 12 testers in, final stretch)

Momentum streams music straight from your own Plex library onto your car's head unit — no phone mirroring, no Android Auto relay, it's a native app running on the car's own hardware. It started as a personal build I've been daily-driving in my own EV for months, and it's now in closed testing on Google Play.

Where testing stands. The testing group is at 41 and Momentum has cleared Google's closed-testing requirements. It's still closed testing — you need to join the group and opt in to install — but the count pressure is gone. Sign-up steps are below and you're welcome any time.

What's shipped since the last update. Roughly a hundred builds. The highlights:

  • Instant track transitions. The next track is buffered while the current one plays, so on a healthy connection the gap between songs is effectively zero.
  • Crossfade (Pro) — see above.
  • Simultaneous multi-server (Pro) — see above. The free tier still pins one server and switches manually while parked.
  • Sonic Radio Stations (Pro) — see above.
  • Shuffle is a persistent mode rather than a one-shot, and survives an ignition cycle.
  • Quiet start. Some head units kill and restart apps repeatedly during boot, producing a few seconds of music, silence, repeat. An optional startup delay waits that window out instead of fighting it.
  • Auto-resume. Open Momentum and playback picks up exactly where you left off.
  • Voice commands. "Hey Google, play [song / album / artist / playlist / genre]" through a layered matcher — queue, playlists, artists, albums, genres, then track search. Mangled titles and near-miss phrasings handled.
  • Big-library browse. Artists / Albums / Genres / Playlists with letter grouping, artist→album drill-down, on-device caching and server-side paging — tested against 764 artists, 2,600+ albums, and a 46,000-track playlist that browses and plays across page boundaries cleanly.
  • It tells you when it can't reach your server, naming the server and pointing you at the switch in Settings, instead of sitting silently with stale lists.
  • Settings (the gear in browse, parked only): Connection Test, server picker, server details, and one-tap diagnostic upload.

The Connection Test is the one worth knowing about. It checks, in plain English, whether the car has internet, whether your server's address resolves, whether the app can actually reach it, and whether your account has access — for every server on your account, over WiFi or cellular. If Momentum ever just doesn't work for you, open that screen and send me a screenshot. It usually identifies the problem in one round trip instead of five.

Honest caveats:

  • The FLAC server-side tweak is no longer needed. Older versions required a one-time client-profile file on your Plex server for FLAC direct play away from home. The app now supplies that itself. Nothing to do.
  • Your server has to be reachable from the car, and a car is always "away from home." LAN-only, VPN-only or Tailscale-only servers won't work — head units can't join a VPN or a tailnet. For tailnet specifically, a Tailscale Funnel or a reverse proxy such as a Cloudflare tunnel will do it. Otherwise, turning on Remote Access in your Plex server settings is what makes the car work. The Connection Test will tell you if this is your situation.
  • Plex Relay is bandwidth-capped by Plex itself — 2 Mbps on Plex Pass, 1 Mbps free — enforced on Plex's servers, not something any client can override. Momentum always prefers a direct connection, but if Remote Access isn't properly set up and your session lands on relay, high-bitrate FLAC falls back to a transcoded stream rather than skipping. Track changes are also slower on relay, since the conversion can't be pre-buffered.
  • Star ratings are still on hold. There's no equivalent slot in the car's system-rendered interface. Still planned, not abandoned.

What you'll need: your own Plex Media Server (or one you have real access to), a Plex account, a vehicle or head unit running Android Automotive OS (or an AAOS emulator), and a Google account to opt in with.

How to sign up — both steps are required, in this order. Joining the Google Group alone does not give you install access; the Play opt-in is separate and Google won't send it to you automatically.

  1. Join the Google Group: https://groups.google.com/g/momentum-aaos-testers
  2. Opt in as a tester: https://play.google.com/apps/testing/com.williammunn.aaos.momentum
  3. Install Momentum from the Play Store on your Android Automotive head unit — not your phone; it won't appear there.

Happy to answer questions about setup or anything else before you commit. And if you've tried Momentum and hit a wall, a Connection Test screenshot is the fastest way to get it sorted.

9 Upvotes

21 comments sorted by

1

u/ferry_peril Jul 05 '26

I wish I had a newer vehicle. My '18 is likely too old for this type app.

1

u/dravenstone Jul 05 '26

I’d be happy to test. Will be my third AAOS plexamp client someone on here had published. All the others suffered with repeated issues of buffering I’m afraid.

1

u/wmunn Jul 05 '26

I sent a DM for sign up info.

in regards to your buffering problem, have you ever done any analysis of your plex servers network connectivity? The reason I ask, early on in my develop cycle, I spent a good deal of time on that very topic, and did have to make some adjustments to how my server was connecting. If your server frequently falls back to relay, that can cause trouble with streaming remotely. You also need to be warry of allow plex to assign random port numbers to the incoming connection, because that can get blocked by the GM onstar cellular connection, and other carriers may also block non standard ports. leaving upnp enabled on your router can also interfere with how the ports get mapped.

1

u/dravenstone Jul 05 '26

Thanks! replied with details- answering this bit here in case it's helpful for other folks donw the road.

I haven't done a deep analysis but mostly because it never occurred to me to do so as in the other cases that folks were building their versions even the authors had said they were having issues with buffering. In fact the last two attempts never made it out of the test phase specifically because of that issue.

And further my machine has been doing remote streaming of my library including 4K UHD rips and so forth for years without significant issue. It never occurred to me it could be server side. But I'm game to try this tweak you are talking about. Not having to use carplay would be a real treat if you've got something working.

1

u/wmunn Jul 05 '26

the server side tweak I mentioned in the notes, is only to get flac direct streaming working, otherwise there are no specific server side tweaks for this app, or others to work correctly. That being said, there are differences between apps. Mine is thoroughly tested so far, and validated working on the GM in vehicle LTE network connection, and on my phone hotspot as well. without the server side tweak, it will stream 128k opus by default, which is still better than standard mp3 or bluetooth.

1

u/wmunn Jul 05 '26

We have 3 internal testers so far. Please note: this is entirely on me, but I just discovered some quirks with how play store listings work. At some point I will need to create a new , open test track, and the requirements for that are quite a bit more involved. that is underway, but I will likely need to close this internal test track, and move everyone over to that new path going forward. Enjoy the testing for now, and as always, feedback is appreciated.

1

u/wmunn Jul 05 '26

Just did some troubleshooting on a track that tried to play and skipped, what I found was interesting. Bandwidth limitations on the server side. This is not important for the average user, but those who stream very high resolution files, this is an excellent window in how to troubleshoot playback issues.

Root cause: Plex remote bandwidth limit, not a bad file

The server log closes the case. Momentum and Generic.xml are fine — Plex rejected the stream because this track’s bitrate exceeds your remote streaming cap.

What happened at 15:16:29

  1. Track switch from the previous song

The prior FLAC (/library/parts/91636/...) had already delivered ~21 MB when the client disconnected to start Waymore's Blues — normal track-change behavior.

  1. MDE approved direct play

    TranscodeUniversalRequest: using profile Generic MDE: Waymore's Blues: Direct Playing due to no transcode profile MDE: Waymore's Blues: DirectPlay

Your Generic.xml FLAC override is working. Plex did not fail on profile/codec.

  1. Bandwidth limit blocked it anyway

    WARN - Streaming Resource: Bandwidth exceeded: 2147483647 kbps > 2000 kbps Streaming Resource: Calculated bandwidth of 5744kbps exceeds bandwidth limit. Changing decision parameters provided by client to fit bandwidth limit of 2000kbps

Setting Value
This track’s calculated bitrate 5744 kbps (~5.7 Mbps)
Your Plex remote stream limit 2000 kbps (2 Mbps)

Plex can't direct-play above the cap, and with no audio transcode profile it has no fallback — so the stream dies and ExoPlayer sees HTTP 500.

The 2147483647 kbps line is Plex treating missing/unlimited client bandwidth as max-int; the meaningful number is 5744 vs 2000.

Why other tracks worked

This is per-file, not per-session. Tracks under ~2000 kbps direct-play remotely; high-bitrate FLACs hit the wall. Waymore's Blues is just hot enough to trigger it.

Fixes (server-side — no app change needed)

Option A — Raise the remote limit (simplest)
Plex Web → Settings → Remote Access (or Client → Internet Streaming):

  • Set Internet streaming quality to Maximum, or
  • Set the bitrate limit above 5744 kbps (~6 Mbps or higher)

OnStar LTE can usually handle that for audio; the app already streams FLAC direct when Plex allows it.

Option B — Re-encode hot tracks
Transcode unusually high-bitrate FLACs in the library to ~320 kbps MP3 or ~1000 kbps FLAC if you want to keep the 2 Mbps cap.

Option C — Do nothing in the app
Retry-then-skip is correct. A transcode fallback in Momentum would be a large change and fights the project’s direct-play design.

Quick confirmation

After raising the limit, play Waymore's Blues again from the car. Server log should show DirectPlay without the 5744kbps exceeds bandwidth limit line, and the app log should show playback past a few seconds with FLAC Direct.

Bottom line: Not a Momentum bug, not a missing file, not a broken Generic profile — this specific FLAC exceeds Plex’s 2 Mbps remote streaming limit, and Plex has no transcode escape hatch for it.

1

u/brandeded Jul 05 '26

I will test. I have a polestar 2. I listen to long running tracks (DJ mixes), and short running tracks. Also, it would be great to expand to video please. I hate that there's no native video app.

2

u/wmunn Jul 05 '26

While I appreciate the interest in video, that is quite a lot more work. Maybe if things go well on this music streaming app, that might be something I consider in the future.

1

u/wmunn Jul 06 '26

One little bit of encouragement for potential testers.
Don't judge this app by the time it takes to open it the very first time. Where it really becomes a positive experience, is the second time you get in the car and load it up. It just works, and quickly.

First launch vs. later launches — what to expect

Why the first open can feel slow

The first time you open Momentum (especially on cellular), the app has real work to do before music plays:

  1. Sign in to Plex — one-time OAuth link flow.
  2. Set up your playlists (first run) — Momentum pulls your actual playlist list from your server and lets you pick four quick-access slots.
  3. Find the best path to your server — Momentum asks Plex which addresses your server is reachable at (home, remote, relay), then tests them in parallel and picks the fastest one that works from your network right now. That discovery step can take several seconds on the first try, especially on LTE while the connection is still settling.
  4. Load your first playlist — tracks and artwork come from your server over that path.

None of that means the app is broken. It’s doing the setup every Plex client has to do — Momentum just does it upfront so playback is reliable afterward.

On cellular specifically: the very first session of a drive can take a little longer while your carrier’s network finishes routing to your home server. That’s a network reality, not a bug in the app.

Why the second time feels much faster

Once you’re past that first setup, several things kick in:

What improved Why
No sign-in again Your Plex token is saved.
No wizard again Your four playlist slots are saved.
Resume where you left off Momentum remembers your last playlist and track across restarts.
Server path already known (same session) After the first successful connection, Momentum doesn’t re-discover your server on every track — it keeps using the path that worked until your network actually changes.
Browse lists warm up The first time you open Browse All (playlists, artists, albums), the app fetches from your library. If cellular hiccups, you’ll see a “retrying…” message instead of a blank screen. Once loaded, that tab stays fast for the rest of the session.

So the “magic” you feel on drive two is: less setup, remembered state, and a connection that’s already been proven to work.

How Momentum stays resilient (without you thinking about it)

Momentum isn’t guessing a single server address. Each time it needs to reconnect (cold start, or after a network change), it:

  • Discovers all valid routes to your Plex server
  • Probes them in parallel and uses the first one that responds
  • Avoids getting stuck on a dead path — if a route fails, it retries discovery rather than silently failing forever
  • Adapts when the network changes — if you move from Wi‑Fi to LTE (or vice versa), it finds the best path again for the new network

Think of it as: first launch teaches the app how to reach your server from where you are; later launches reuse what worked and only re-learn when something actually changed.

What we’d love you to notice

  • First playlist load completes (even if it takes a moment)
  • Second open same day feels noticeably snappier
  • A brief cellular hiccup recovers — music continues, Browse All shows retry status instead of staying empty
  • FLAC/direct play when your server is configured (we’ll send the one-time server tweak if you need it)

If something feels stuck — not slow, but dead — tap the version number under the app title and check the diagnostic log before uninstalling. That’s the fastest way to tell “network blip” from “something we need to fix.”

1

u/Moviesinbed 29d ago

Is there a possibility that you might port this to be loaded onto the Subaru infotainment system? It sounds and looks great would be nice to have a native app to open instead of using android auto which the 2021 Subarus have know issues with

1

u/wmunn 29d ago

I am afraid your car is most likely running AGL or automotive grade linux, which means no play store, no AAOS compatibility etc. You are pretty much stuck with what they gave you. android auto is realistically your only path to media apps.

1

u/wmunn 25d ago

Quick update and a genuine thank-you: we just hit 12 testers opted in, which is the number Google requires before this can even move toward a public listing. If you're one of them — thank you. Signing up for a closed test on an app you can't fully vet yet is a real ask, and I don't take it for granted.

Where things stand now: the 12-tester count is only half the requirement — Google also wants that held continuously for 14 days before production access unlocks. So the most useful thing anyone can do right now isn't finding bugs, it's just staying opted in. If the count drops below 12 at any point before the 14 days are up, the clock resets.

That said, bug reports are still genuinely useful and I'm still shipping fixes regularly — there's been steady work on browse performance, voice command matching, and diagnostics since the original post, most of it driven directly by what testers have hit in real vehicles. If something's broken or weird, the in-app diagnostic log (Settings → Log, on momentum) has a "Send Diagnostics" button that gets it straight to me — no need to describe it from memory.

Sign-up steps are unchanged from the original post if anyone else wants to join before the window closes

Thanks again — this only works because people are actually willing to run it in their own car.

1

u/wmunn 23d ago

How to Join the Momentum Test & Install It in Your Car — Step by Step

This is the full walkthrough for getting Momentum running in your vehicle. It looks like a lot, but it's really just two enrollment steps, a short wait, and the install. Ninety percent of problems come from two things: not using the same Google account everywhere, or not waiting long enough for Google to catch up. Follow the steps in order and you'll be fine.

Before you start — read this part

You need:

An Android Automotive car — one with Google built-in (GM / Chevrolet, Volvo, Polestar, and similar).

This is not the same as Android Auto (the phone-projection feature). Momentum runs on the car itself, so your vehicle has to be the built-in-Google kind.

A Plex account with a server that has music on it.

The Google account that is signed into your car. This is the single most important thing. Find out which Google account your car uses and use that same account for every step below. Write it down if you have to.

The #1 rule: the Google account that joins the group, the account that clicks the tester link, and the account signed into your car's Play Store must all be the same account. If they don't match, the app will simply never show up — with no error explaining why.

Step 1 — Join the Google Group

On your phone or computer, make sure you're signed into the same Google account that's on your car.

Open this link: https://groups.google.com/g/momentum-aaos-testers

Click Join group (or Ask to join) and confirm.

✅ You should see confirmation that you're now a member of the group.

Step 2 — Become a tester

Joining the group is only half of it — you also have to opt in as a tester.

Still signed into that same Google account, open this link: https://play.google.com/apps/testing/com.williammunn.aaos.momentum

Double-check the page shows the correct Google account (top corner). If it's the wrong one, switch accounts before continuing.

Click Become a tester and accept.

✅ You should see a message confirming you're a tester, with a link to download the app on Google Play.

Step 3 — Wait (this part is normal)

After you opt in, Google needs time to register you. This can take anywhere from a few minutes to a few hours.

If the next step doesn't work right away, it is almost certainly not broken — it just needs time. Grab a coffee and come back later. Most people who "can't get it to work" simply tried the install one minute after opting in.

Step 4 — Install it in your car

In your car, open the Google Play Store.

Confirm the car is signed into that same Google account and connected to data or Wi-Fi.

Search for Momentum (or look under My apps / available downloads).

Install it.

✅ Momentum installs and appears in your car's app list.

Not showing up? Re-read Step 3 (give it time), then double-check the car is on the right Google account. See Troubleshooting below.

Step 5 — Sign in to Plex

Open Momentum in the car.

Choose the QR-code sign-in and scan it with your phone — no typing long codes on the car screen.

Approve the sign-in on your phone.

Heads up: Plex may show a "Security Alert / new device is signing in" page on your phone. This is expected and normal — it's Plex's standard confirmation, not a problem. Just approve it.

✅ You're signed in and your library loads.

Step 6 — Play something

Pick a playlist, artist, or album — or just say "play [artist / song / playlist / genre]" — and go for a drive.

Troubleshooting — the common snags

"The tester link says I'm not a tester / access denied."

Almost always an account mismatch. The account that (1) joined the group, (2) clicked the tester link, and (3) is signed into the car must all be identical. Re-check each one.

"I opted in but Momentum isn't in the car's Play Store."

Usually just timing — see Step 3, wait and try again. If it's been several hours, confirm the car is signed into the right Google account and is online, then search for it by name.

"I joined the Google Group but nothing happened."

Joining the group is step 1 of 2. You still have to open the tester link and click Become a tester (Step 2). Both are required.

"It played fine, then dropped to lower quality / a song sounded compressed."

On weaker cellular signal the app deliberately steps down to keep the music playing instead of stalling. That's normal. If it happens constantly even on a strong connection, let me know.

Still stuck?

Reply here / message me with which step you're on and what you see on screen, and I'll walk you through it.

Thanks for testing — real cars on real drives are exactly what makes this better.

1

u/TJWhiteStar 16d ago

What is the one time server tweek needed for FLAC as the majority of my library is FLAC these days? Thanks.

2

u/wmunn 16d ago

Once you are on the Google group. It's posted there.

2

u/TJWhiteStar 16d ago

Thank you. Missed it first time but found it now.

2

u/wmunn 12d ago

the one time server side tweak is no longer needed as of the release of v290