I’ve noticed both AirPlay 1 and 2 flaky with respect to stereo pairs, across multiple apps.
@elan, you keep saying airplay is flaky across multiple apps but my experience has been just the opposite of that. Without exaggeration, Plexamp is the only app that I have this problem with. The other apps just work and Plexamp just doesn’t work with airplay for me. You can say airplay is buggy all you want but my experience as a user is that the only app having trouble is Plexamp.
As to the review, I left that review before posting this thread. Originally I wasn’t going to post here based on the responses others had received in their threads about airplay problems but I really want Plexamp to work for me so I decided to post in the hope it would help.
Now about the “brutality”…well, here’s what I said:
There’s a lot to like about Plexamp but it gets a major failure for not working reliably with airplay. Audio drops out frequently and makes for an unpleasant listening experience. This is the only app I’ve had this problem with and it seems to be a widespread issue based on reports from the plex forum.
I stand by those words. If you think that is brutal then so be it but it is simply the truth based on my experience. I used the word “widespread” based on how many threads turned up based on a search.
The other truth is that if airplay were to work reliably my review would go to five stars and I don’t think I’ve ever given a five star review. That’s how much I’d like the app if I could actually use it.
Again, I want to help fix this but obviously the work has to be done at your end. I’m willing to provide whatever info I can to help troubleshoot this and I’m willing to do testing. But, none of that can happen until you take the problem seriously and stop discounting your user’s reports.
I don’t want to argue with you. You say one thing but my experience does not agree with your assessment. So far as I can tell there is no solution to my problem unless you chose to implement airplay2, something you clearly don’t want to do. That’s a shame because if airplay worked, Plexamp would be the closes thing to aperfect audio app I’ve ever used.
This is, and will continue to be, an evergreen issue until it is implemented, Apple deprecates their support, or it is otherwise superseded.
My original request is now almost 3 years old, a span of time which should have produced several cycles of development, testing, bug reports, and other work relating to this.
It is notable that the WWDC sessions relating to AirPlay 2 appear to have been pulled from the official site, at least I can no longer find active links to examples I’ve cited previously. To me, this lends justification to pause advocacy for AirPlay 2, at least until WWDC this year.
That said, the architecture of AirPlay 2 provides for the ability to remove the iOS device from the data path during playback. Plex is in a uniquely optimal position to take advantage of this by pointing the AirPlay 2 speakers at a Plex HLS server to fill the buffers. By only supporting AirPlay 1, the iOS device must keep its network stack persistently active to maintain the data stream during the entire playback function. Even if it weren’t setup to point to the server, preloading entire songs into an AirPlay 2 buffer from the iOS device directly would be much more energy efficient from a bit-per-watt perspective.
Finally, another feature sorely missing is iOS Shortcut functionality. This is tangentially related to AirPlay 2, but should be obviously useful in its own right.
Never posted before. I’m heartened to see active conversations about this topic.
Literally the only reason I came to the forums was because I’m a relatively new PlexAmp user who is:
-
ecstatic about the PlexAmp functionality; the automagical DJ features, etc. seriously, its all amazing
-
extremely frustrated with using PlexAmp on my devices and then connected with my home audio system
So, @elan, add me as a +1 for everything described by other users already
I’ve rebooted everything, rearranged groupings, changed my mesh network, nothing makes it work well.
Similar to others’ experiences, I don’t have these problems with other streaming apps, or at least not as much. Nugs, KCRW, SomaFM don’t create these problems over AirPlay, or when they do, it is infrequent enough that I don’t go looking to contact the devs to ask why the app is so bad at doing such a core function
I’ve been trying to use the direct Sonos support too, not just the Airplay support — but either way it’s been janky. Bluetooth headphones? Great. CarPlay over Bluetooth? Great. But with my ‘real’ speakers at home, not so hot, very hit or miss.
Again, just to be clear, I love (love) the music functionality of this app. And I want to use it all the time, without trying to figure out workarounds
Also, like others, I’m moderately technically savvy: if gathering logs is of any benefit to folks on the dev side, I’m available to try to document steps to repro plus logs to go with it.
Interesting, I hadn’t noticed that things had been pulled. I’ll keep my eyes out for things coming out of WWDC for sure.
You sound like you know what you’re talking about, but this is news to me. When I looked at the samples, it was the casting device itself which had to render ahead dozens of seconds and send that data to the speaker. Only approved apps are allowed to hand off to e.g. HomePod and even though I filled out the form numerous times, I never heard back.
Agreed, but rendering that stream with decode, possible EQ and other potential effects can cause a serious processor spike which I observed even with the 30 seconds ahead, so I limited it to around a dozen seconds with a bit of a hack.
Sorry for all the replies, but even if this were possible, it would lose sweet fades, loudness leveling, EQ and other player features which aren’t server side.
This is not snark, I promise – but how can a lone developers like Marco Arment (Overcast) and Lachlan Charlick (Prism) implement Airplay 2 but Plex can’t figure it out? Airplay 2 was released in June 2018 and Overcast added it 1.5 years later in January 2021.
The 2 second delay of Airplay 1 is the only thing that seriously bugs me about Plexamp. Airplay 2 has been out for nearly 5 years… I’ve read a lot of the threads here about it and the general takeaway always seems to be “We tried, it was hard, so we gave up.”
Those guys could easily be smarter and better programmers than I am, I have a lot of respect for them both.
It could also be that their use cases and requirements were different. Plexamp has a complex audio stream, with overlaps between tracks, and real-time effects (e.g. you can go adjust the EQ at any time). You can edit the play queue and change the upcoming track 20 seconds before the end, which in AirPlay 2’s universe requires flushing that giant buffer and re-rendering it. Same with an EQ adjustment, either wait 10-30 seconds for the change to be audible, or flush the buffer and re-render all that data. I know Overcast has some of those factors too, and perhaps Marco figured out good ways to overcome the issues.
I had the basics of AirPlay 2 working in a couple of days, but never got it to the level of stability across all the different player scenarios I felt was good enough for release, and was able to trivially cause crazy AirPlay 2 behavior to my stereo HomePods trivially in even Apple Music.
I was poised to make AirPlay 2 the standard at our house, but based on this experience and also the fact that, well, it’s closed and very unfriendly to smart home tech which isn’t 100% Apple, that’s the genesis of Plexamp’s multi-zone streaming tech.
AirPlay 2 (and Sonos, for that matter) start with the premise that your network is bad and pre-buffering is key. With AirPlay 2, the mobile device is the “renderer” (with the exception of a few apps which are allowed to run on the HomePod).
The Plexamp design starts with the premise that you have a good network, and that the mobile device is just the controller, not the renderer. The latency is near zero (sometimes better than local playback) so effects like soft pauses and EQ adjustments are instant. It’s also easily controllable via HTTP to e.g. add a zone, or move playback, so it’s very HA friendly.
I think I’d rephrase that as: “It seemed hard, buggy, and philosophically not aligned with where we wanted to go, so we gave up and did something better.”
t seemed hard, buggy, and philosophically not aligned with where we wanted to go, so we gave up and did something better.
I respect that not everyone has the same goals but I do question the use of the word “better” here. It sounds like “better” to you means that it lets you do all the audio manipulation you want but to get that better one needs a set of speakers, a Pi, a DAC and possibly an amp. Once you have spent the additional money to get that “better” solution you need to replicate it in each room and you give up using it with other apps and for home automation control. For me that’s not better, it’s a non-starter. It’s possible I may be missing something here so I’m open to being corrected.
For me, things like EQ are something I’m not going to use on a mobile device. I could be listening in different rooms or the car and so any EQ settings won’t be appropriate across the board.
My own personal design philosophy is “common things should be simple to do; hard things should be doable” (from the POV of the user). For me, airplay would be a common thing and EQ would be a rarity. If I had to trade off the ability to do things like EQ while using airplay I’d gladly do it to get a better airplay experience.
I’m not saying Apple is perfect and everyone else needs to fall in line. But I am saying that being a good airplay citizen is an important thing to users and I think it should be a higher priority for Plex.
for me, would have to disagree with the ‘better’ part. Maybe all this stuff works great in the setup you described up above but it doesn’t work great with the IOS app that is in the Apple store, which has to be what most people are going to use, right?
I’m not discounting all the issues you describe dealing with Airplay2 but the net result is that it does not work as well as other apps in the same space.
Is it possible that these other apps just have lower expectations/functionality and therefore greater reliability? Some of the things you list out definitely seem like the ‘advanced’ class, and while these features are all totally desirable, I think I would rank “works reliably” higher than some of those features – and might lobby for a dumbed down “hey, if you want to use Airplay, then the following X PlexAmp features are disabled cos Airplay totally sucks” – rather than just “oh well Airplay totally sucks ¯_(ツ)_/¯”
What about the documented simple or flexible enhanced buffering is locked behind specially blessed privileges? The only encumbered functionality I’m aware of is CarPlay, which has Plex clearly obtained.
Whatever spike in activity this created would be equivalent to similar work performed currently during real-time playback, and I would argue would actually be more efficient as the device could complete the task faster than real-time and get back to sleep quicker and for longer. This would also negate the argument for needing to ‘hack’ it down to a smaller chunk of work. The same argument applies to streaming vs buffering.
AirPlay 1 is akin to a Discman from the early 90’s, before buffering was available and you needed to be actively cautious where and how the unit was used. AirPlay 2 is like a Discman with buffering.
- These are all secondary, superfluous features which shouldn’t be positioned to trump foundational functionality.
- Build them into the server. It would clearly be preferable to perform processor intensive tasks there, or you could hairpin it through the devices back to the server for those who want them, if the devices are truly necessary for a given feature.
I spent the last couple days streaming from Plexamp on iOS to airplay 2 receivers (mac mini M1, appleTV 4k, nanopi neo “diy” streamer), both in standalone and multiroom modes … I had no issues other than the expected airplay 1 buffering delay … the airplay 1 experience was … fine
(still seems like some of the bad experiences described here are, to some extent, due to the specific hardware and network setup)
similar use case with an airplay 2 streaming app loses much of the delay, is less prone to dropouts (which I didn’t have to begin with), and REDUCES the streaming-related power consumption (probably from cycled vs constant transmit over wireless) … that being said, I think the overall airplay 2 experience is only incrementally better compared to a functioning airplay 1 setup
normally I don’t use airplay at all … I have mostly traditional/non-smart audio gear and lots of computers and Pi-like devices … all run Plexamp natively, and with some additional setup work the Pi’s can support other apps and protocols … initial setup of headless devices can be a challenge for non-technical users, but normal use is intuitive …
small devices like the Pi are easy to spread around the house, but they’re not required for trying out the native Plexamp streaming approach … most computers/tablets/phones will work as endpoints (you will, however, need audio gear with physical inputs)
overall it’s the best setup I’ve used for streaming my music (and as a stodgy grump, I generally don’t even use features such as loudness leveling, fades, or EQ) … excellent user interface, instant response, great sound, fast search, remote control from any Plexamp app with or without a constant connection to the receiver, DJ modes, playlists, sharing, etc.
just wanted to share my experience as a satisfied user of the Plexamp streaming approach
I’m glad someone is getting good airplay results. Yesterday and so far today my results have been good while on Friday it was unusably bad with Plexamp (Prism was rock solid).
I’ve been thinking about something @elan said that might get to the heart of the problem. His assumption is that the network is good which I’m taking to mean reliable. But networks aren’t reliable. One of my favorite definitions of “network” is “a configuration where a computer you never knew existed can keep you from getting work done”. From a design perspective network applications have to be built assuming that problems will happen. It sounds like Plexamp is not built that way. With Wifi, that’s an especially bad assumption.
We have good network equipment. We also have a lot of Wifi devices. Most are generally pretty quiet but you never know how saturated the airwaves will be at any given point in time. I think it is that fundamental design philosophy that makes airplay on Plexamp so brittle. It could be the solution is as simple as larger buffer sizes (didn’t Elan say he had a hack to get away with smaller buffers earlier?).
I’m speculating based on very little data so could be way off the mark but I suspect that a lot of the problem comes from that “network is good” assumption.
in my experience Plexamp is actually less sensitive to varying wifi than other streaming options … it was originally designed for mobile use, and it prefetches entire tracks rather than relying on a small buffer and a steady connection … will let @elan clarify his earlier comments as needed (he might have been referring to specific use cases where a steady network is more important)
You are confused about what I said. I was speaking specifically about our multi-zone streaming solution. As an app, Plexamp is best in class with respect to bad networks (pre-caching, opus transcoding, dynamic buffering).
The only thing I can think of vis a vis AirPlay is that perhaps Plexamp’s pre-caching is clashing with Airplay over a particular bad network. You can try to limit precaching to only next track to see if it makes a difference, or play a downloaded playlist to eliminate any network traffic other than Airplay.
I might be confused, but those both involve streaming data from the mobile device to the target (the app hands chunks of data to the AirPlay system). I saw no way to simply hand off a URL and let the session run on an AirPlay device (this is what Chromecast does).
Thanks for the clarification. And for your further thoughts. Our network should actually be in pretty good shape. There are three access points at strategic points and the network controller shows all the clients have good connections but from moment to moment who knows what happens.
I’ll spend some time with those options you mentioned to see what happens. It may take some time to report back to ensure I’ve got enough sample time to make a reliable report but I’ll let you know.
To be fair, Plexamp does have automatic custom EQ settings depending what device you’re sending audio to. While connected to the device, go to Plexamp settings > Playback > Equalizer. It will show the name of the device, and a toggle Use Custom Preset. My Airpods get no EQ, CarPlay gets a slight bass boost, and Airplay gets no EQ. It’s a great feature.
Unfortunately I don’t think there’s a way to send different EQ settings to different Airplay endpoints. I have 2 Airport Express dedicated as audio endpoints (Wi-Fi is turned off, they’re hardwired). For each of these I have a MiniDSP 2x4 HD tuned to the acoustics of each room. So it goes Airport Express > Toslink > MiniDSP > RCA IN of amplifier.
Good to know! Thanks for the info! Unless we’re casting to the Shield in the family room or in the car, it’s airplay us and that’s probably the vast majority of the usage.