AmpliPro Streamer first impressions

My post below got wrecked because, “An error occurred: Sorry, new users can only put 2 links in a post.” I suggest increasing or removing that. It’s messes up my post, it’s annoying to fix, and it doesn’t stop spammers anyway. You’ll have to enjoy my post without most links, because I’m not adding them back!

Today I received 2x AmpliPro Streamer 4. I took notes and here is how my experience went:

  1. First thing I noticed is that the rack ears do not align with the face of the equipment. This doesn’t look great next to other equipment, which is flush with the ears. Here’s another shot straight down. I understand your ears are integrated into the enclosure, allowing you to have ventilation slots rather than removable rack ears. However, it would look much better to somehow make it flush. I might be able to shim it, but I worry that will push the screw out too far and conflict with my MA trim kit / screw cover (I can’t link).
  2. Next, you have dead links all over. On the GitHub page (I can’t link) the quickstart, developing, web app, and other docs links are broken. I can find the pages, but it’s time consuming. The link to the new guide is broken on the old guide thread (I can’t link). Your “meet the team” page (I can’t link) has a broken video link. All these cobwebs don’t make a good look!
  3. The first thing I did was visit the IP and click around the web UI. Minor, but IMO the escape key should be like clicking the X. I know the browser’s back can do it, but when there’s an X I expect escape to work.
  4. Clicking once on a stream selects it, but why? Is there any functionality that uses that selection? Clicking again opens the player tab. Why does it take 2 clicks?
  5. Creating a Spotify device is dead simple, that’s great. It showed up in Spotify Connect, but I noticed spaces get turned into -, eg Living-Room. Ideally they would keep their spaces (they do when using LMS, below).
  6. Renaming a Spotify stream causes it to disappear from Spotify Connect until I remove the stream and add it again.
  7. I added 3 Spotify streams to each of my 2 streamers, but the Spotify mobile app only showed 4 of the devices. Where are the other 2?!
  8. I removed 1 of the streams from the Amplipi web UI, but it didn’t disappear from Spotify. What is going on?!
  9. I rebooted both streamers and waited a while, then only 1 device showed in Spotify. Damn.
  10. I waited a long time (15+ minutes) and checked my Spotify app every once in a while to see what devices showed up. I’ve seen 0, 1, 3, and 5 devices, but never all 6. This is really disappointing, as I was hoping to use the Spotify app as my interface, as that’s what my family is already used to. I know you use librespot so it may not be your fault, but is this behavior common? Is there a fix?
  11. Next I wanted to try LMS. You guys mentioned in another thread here that one of the streamers could run an LMS server? I don’t see an option for that.
  12. AmpliPro isn’t on LMS’ Players & Controllers page (I can’t link).
  13. I started an LMS server on a PC. I added the Spotify plugin to LMS. I used the Amplipi web app to configure the streams to use my LMS server IP. I could see the players in LMS (I can’t link) but the web UI still said, “Error: Could Not Find LMS Server” and “Make sure your lms player is connected to this source”. It should not show this when it is actually connected, but also IIUC this is a poor error message because the stream IS the “player” in LMS terminology. It should say “server” not “player”. Also you should refer to streams consistently as a “stream” rather than other words like “source”. Anyway, it worked correctly once I removed the stream and added it again.
  14. Sometimes I see “Amplipi” capitalization and other times “AmpliPi”. I also see AmpliPro, then I’m not sure what to things!
  15. I edited one of my streams to have a port number. Later I edited it to clear the port number field. This consistently causes this crash (I can’t link, you’ll have to repro to get the stacktrace).
  16. I noticed an LMS stream had an encoding problem (I can’t link) Émilie Rachel appeared as Émilie Rachel.
  17. I used the LMS UI to play multiple Spotify streams. This did not cause my Spotify mobile or desktop app to stop playing. How can this be? Normally when a second device plays Spotify, the first stops. Does LMS’ use of undocumented APIs bypass Spotify’s normal behavior?
  18. Using LMS I didn’t see anything in Spotify Connect. I found a setting in LMS to enable that for each player (stream). I put both streamers into LMS mode with 4 streams on each, all Spotify Connect enabled, and I saw 8 streams. I restarted the Spotify app and I still see 8 streams. 30 minutes later, still 8. LMS’ Spotty plugin seems to be much more reliable than Amplipi’s librespot, which is unusable.

Sorry if that was long but I hope the feedback helps!

I have 4 goals for my 2 AmpliPro streamers:

Goal 1: I want to use the Spotify app to play music on my 6 zones individually using 2 streamers (3 zones each). I can do that using Amplipi, but the devices don’t show correctly in Spotify. I can do the same using LMS and the devices show, but I have to run my own LMS server. I would much rather one of the streamers run the LMS server. Is that possible?

Goal 2: I want to be able to play music synchronized on multiple zones. The mutli-zone playback I care most about is 2 or 3 zones on a single streamer. It would be nice to also be able to synchronize all 6 zones across both streamers, but I could live without that.

Ideally I define a Spotify device that is multiple streams (on that same streamer). That would allow me to have eg Kitchen, Living Room, and Kitchen+Living Room Spotify devices. That would be perfect! It doesn’t seem possible with Amplipi or LMS, but it seems technically feasible. What do you think?

LMS has a feature to synchronize multiple players, but this does not do what I want. I want both individual players and the ability to have a “composite” player that synchronizes multiple players. The LMS synchronize feature permanently syncs the players, ruining individual use. I asked the Spotty dev here (I can’t link, search for michaelherger/Spotty-Plugin/issues/132).

Edit: The “Group Players” plugin allows LMS to do this! Super cool.

If LMS can’t do it, can Amplipro implement it? If so, for that to be usable Amplipro would need to fix devices not showing up on Spotify Connect. I noticed LMS’ Spotty has a checkbox “Monitor the connection of the Spotty Connect helper with the Spotify servers. This can be useful if your Spotty Connect enabled devices regularly disappear from the Spotify apps”, though I did not need to use that.

Goal 3: I need to be able to initiate shuffled playback of a specific Spotify playlist via API. I haven’t looked into this yet. Do I need the AmpliPi or LMS API?

Edit: Seems I want the LMS API. Pretty easy, eg:

17:cd:c4:ee:a4:94 playlist play https://open.spotify.com/playlist/0HRDBYGshYB4fUd29WVPDy

Goal 4: I need to be able to send audio to the streamers to play on all or specific zones. I haven’t looked into this yet. Is this API published? Does it work in LMS mode?

Edit: The AmpliPro announce API is garbled, the description is split by code blocks. I’d post a link, but.

Why doesn’t this work? It is not a good error message.

$ curl -X POST "http://10.0.99.237/api/announce" -d '{"media":"https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3"}'
{"detail":[{"loc":["body"],"msg":"value is not a valid dict","type":"type_error.dict"}]}

With a content type header it gives a slightly different bad error message:

$ curl -X POST "http://10.0.99.237/api/announce" -H "Content-Type: application/json" -d '{"media":"https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3"}'
{"detail":[{"loc":["body",0],"msg":"Expecting value: line 1 column 1 (char 0)","type":"value_error.jsondecode","ctx":{"msg":"Expecting value","doc":"'{media:https://www.nasa.gov/mp3/640149main_Computers%20are%20in%20Control.mp3}'","pos":0,"lineno":1,"colno":1}}]}

Overall the streamers are really neat. I hope we can figure out a way to achieve all my goals!

TL;DR: my goals 1, 2, 3 have been achieved! I just need help getting the announce API to work.

Hey @Nate !

If you navigate to http://amplipi.local/doc (or one of the IPs, both work) and click the “Try” button on the Announce example, you should get a result box back that has a curl tab. Can you try that particular curl incantation and let me know if that works for you? One helpful tip for curl is that you can use --json instead of -d/--data + a json content type header (that flag was added in 7.82.0.)

As far as the rest of your feedback goes, we’ve used it to synthesize 6 Github issues, #873, and 876-879. Check them out and let us know if you feel like we haven’t addressed some things that you feel are priorities for you. We really really appreciate the feedback - it drives our development efforts (not just saying that) and ultimately creates a better product for everyone. So seriously, thanks for the thorough feedback and watch our GitHub and updater for our improvements :sunglasses:

edit: we’ve also bumped the new user link limit to 10 (thanks @linknum23 !)

I see the try button and curl tab, thanks. It works! The error when there is no Content-Type could be improved.

How can I run an LMS server on one of the 2 streamers? That would save me some trouble!

Hi @Nate,
Yes - its actually a built in feature on the box. From the home page, click on the gear icon and then go to configuration, and enable LMS mode. This will start up 4 clients attached to the 4 sources, it will also spin up an LMS server. You can reach it by going to the boxes IP : 9000.
Hope that helps!
Jason

Ahh, I thought there would be a separate option to run or not run the LMS server, but I guess an empty server doesn’t much resources. It works nicely, cheers! I disabled all plugins and automatic updates on the unused server.

I’m waiting on cables, so all my testing so far is actually without hearing the output. :expressionless: I should have the cables by Friday!

Great! Happy to hear its working.
I would suggest thinking of LMS mode more like an automatic configuration script. When you put the unit in LMS mode, it runs a script that essentially does the following:

  • creates and activates 4 new LMS streams
  • creates and starts an instance of an LMS server

If you want to run the sever on a box, then putting it in LMS mode is the way to go. If you only want to run LMS clients on the box, then you may not want to put it in LMS mode. Instead, you can manually create and activate 4 LMS streams. This will allow you to run the LMS clients on the box, without having to run the LMS server. Hope that makes sense.

Jason

Ahh, got it, thanks!

Calling it LMS Mode isn’t descriptive, and the description of that config setting isn’t descriptive either. :smiley: I think it would be better to call the feature LMS Server.

Also, why “wipe out the current config”? First, that’s scary and what that means is not clear. I guess it clears all streams and presets? If so, better to say that. Second, why does it do that at all? If it clears solely to create the 4 LMS streams, I’d rather configure those myself, and then we don’t need the scary warning or complexity to download a config file. The setting becomes very simple: it turns on or off the LMS server and nothing else. If you must forr convenience, there could be a separate button that creates the 4 LMS streams, if the user wants that.

It’s a small thing, but anything that saves you having to explain on this forum what something does is HUGE. Support is a recurring burden!