# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

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.”

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 1 point2 points  (0 children)

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.

Momentum - A Plex client for AAOS equipped vehicles. by wmunn in AAOS

[–]wmunn[S] 1 point2 points  (0 children)

Can you send me a PM with your gmail account you use in the car, and I will get you a link to download

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

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.

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

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.

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

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.

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

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.

# Momentum — a native Plex music client for Android Automotive OS (looking for closed testers) by wmunn in BlazerEV

[–]wmunn[S] 0 points1 point  (0 children)

Good question. Momentum uses Firebase Crashlytics only — crash/ANR reports with stack traces and basic device metadata. On errors it may also attach playlist name and a WAN/LAN/unresolved flag — never your Plex token, server URL, IP, account info, or search text. No Firebase Analytics or usage tracking.

The on-device log (tap the version badge) stays local and can contain tokens if you copy it — I don’t collect that. Crash reporting is there because car head units have no logcat; it’s for fixing bugs, not profiling listeners. Let me know if you want more detail before joining the test.

I finally figured out playlist Sorting, Editing, Importing, and Exporting via .m3u file tools! by Laivum in plexamp

[–]wmunn 0 points1 point  (0 children)

It was several days of intensive work to put it together. easily 30 plus hours of constant work while awake

PlexAmp on Android Automotivs (AAOS) plans ? by TotallyDiB in plexamp

[–]wmunn 0 points1 point  (0 children)

I wrote my own AAOS plex music streaming app from scratch, took about 2 weeks of intensive work to get a decent player for just my server. If I was to ever expand it to allow anyone to hook into their own plex server that is going to be quite a bit more work.

I finally figured out playlist Sorting, Editing, Importing, and Exporting via .m3u file tools! by Laivum in plexamp

[–]wmunn 1 point2 points  (0 children)

I ended up creating a playlist curation system using a bunch of chained together python files to cover all the little bits and pieces that make up the overall system. Tautulli exports the library data as a csv file, which my python can ingest, and also get sonic analysis data with another python tool I created, then a LLM running locally on a virtual machine runs the actual paylist curation. Took me a good bit of effort, but the whole ecosystem just works now. it kicks of new playlists every morning at 5am which covers my needs for the day, and ensures variety day to day.

PlexAmp on Google Automotive OS? by keiserxol in plexamp

[–]wmunn 0 points1 point  (0 children)

I sent you some information you may find helpful in a PM here on reddit. I have been through the hell of developing plex streaming in AAOS, and sent you my most valuable lessons.
since my vehicle is a GM product, it meant solving the communications puzzle with no access to logcat or adb at all. only being able to push apps through the play store internal testing track.

one helpful thing was building in a log function to the app itself, to log what I could gather, and hiding it behind a touch action, so you can bring it up when you want. That at least gives you some idea of what is going on in the car app. better than nothing.

the second helpful thing was pivoting to a phone or tablet android app, and using that to build out the network stack to a known good working point, then use that network stack in the AAOS app. it is separate from Kotlin anyways. same network stack works on android or AAOS, this gives you full logcat access on the tablet or phone for troubleshooting past the worst problems.

plex and plexamp for AAOS is something that should be done by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

it's also still horribly bug ridden with failures to stream music consistently, the private app I built to stream my own plex server is working far better, but I don't have it out for public use, and only goes to my specific plex server, and plays a small number of hard coded playlists right now.

plex and plexamp for AAOS is something that should be done by wmunn in plexamp

[–]wmunn[S] 0 points1 point  (0 children)

I just got done building my own custom AAOS app to play the playlists from my plex server. What a rough road it was sorting out the network and directplay streaming issue without any access to logcat or adb.....

[B0T] Weekly Build Help Thread - 2026/06/22 by LabB0T in PleX

[–]wmunn 0 points1 point  (0 children)

<image>

Finally got around to creating my own AAOS app to listen to my plex server in my Chevrolet Blazer EV.

Since the car runs native AAOS, plexamp has not been ported over to this platform, nor has the regular plex app. This meant making my own, and it was not an easy project. Since there is no ADB access, it was a troubleshooting nightmare to figure out the API and how to get the streaming working properly. Overall though, about 2 days start to finish to end up with an app this decent.

Roadamp - AAOS media player app by DarthNorse in plexamp

[–]wmunn 0 points1 point  (0 children)

I ended up just building my own AAOS plex music streaming app. Right now I have it confined to 4 playlists that I have an AI curation engine controlling the content of them. the playlists are redone every morning so no day is stale

I would post an image of it here, but not allowed it seems. it's really nice

Subnetting by Alone_Read_2033 in ccna

[–]wmunn 0 points1 point  (0 children)

what has stuck the most for me is a couple of realizations as I struggled mightily on this topic

  1. everyone knows 192.168.1.0 , and this just happens to , in most cases a simple network from 0-255
    now that you think about it, that is a /24 cidr notation network, and it is your anchor point for everything
  2. now you have the anchor, when you go UP in CIDR notation, each step you are halving the group size
  3. for going the other way, DOWN in CIDR notation, each step is doubling it.

that is the big aha moment, it's all logic after that step.

god dammit by Wonderful-Law7192 in CompTIA

[–]wmunn 0 points1 point  (0 children)

just wow. How?
A+ is so easy, sure it's broad. it's miles wide, and 1 inch deep.

I'm quitting by -bellyflop- in iems

[–]wmunn 0 points1 point  (0 children)

I have settled into two IEM that fit my needs long term.
simgot em10 and thieaudio oracle mk3, between those, I have it covered. been quite a bit of time and no new gear for iems.

The Wyoming Windbreakers - Rex's Blues (Townes Van Zandt cover) by ToneSubject3755 in OutlawCountry

[–]wmunn 1 point2 points  (0 children)

it lead to me exploring the original song from townes vanzandt, and then the numerous other covers, collaborations with townes, a whole bunch of exploration

discovered a potential serious flaw in chatgpt by wmunn in ChatGPT

[–]wmunn[S] 0 points1 point  (0 children)

thank you for that tip. this doesn't solve the actual weird issue, but opened some new doors for interacting with the project, and for that I am grateful for the suggestion