Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot build/install #1

Closed
th3w1zard1 opened this issue Oct 17, 2021 · 8 comments
Closed

cannot build/install #1

th3w1zard1 opened this issue Oct 17, 2021 · 8 comments

Comments

@th3w1zard1
Copy link

th3w1zard1 commented Oct 17, 2021

How in the world do you install this? Running make gives the error

~/multizone-audio$ make make: *** No rule to make target '/home/<user>/.venvs/chevron/bin/chevron', needed by '../snapserver.conf'. Stop.

Big admirer of the dedication and effort you've put into getting this project working the way you wanted it.

@markferry
Copy link
Owner

markferry commented Oct 17, 2021

Ah, as you've noticed I haven't added any build instructions yet. (There are still have a bunch of hardcoded paths I haven't abstracted yet).

But to get you back on track you need an install of chevron - a very simple templating engine. I happen to have it in its own python virtual environment.

Something like this...

python3 -m venv ~/.venv/chevron
source ~/.venv/bin/activate
pip install chevron

chevron takes each template and merges in the variables from either the players.json or <room>.json files.

@markferry
Copy link
Owner

I'm afraid for now there is quite a lot of repetition (related to my personal setup) in the various json files. You'll need to adapt them to your own setup of course.

If you look at the Makefile you'll also notice some "dev" targets. I keep a dev branch with patches to the json files for paths local to my dev machine so that I can run the entire system locally and unprivileged (systemctl --user) for testing purposes.

@markferry
Copy link
Owner

Updated the Makefile to install chevron in a python virtualenv if necessary.

Also added a Usage section to the README.

Hope that helps.

@th3w1zard1
Copy link
Author

I'd like to reiterate how blown away I am by your approach on this subject. Most people would just pay whatever to some tech giant to get something that would only work for 2years or however long they decide to host the cloud. Even going a step above that other people would continue using what they setup initially because they're already habitually used to how it works, but I've noticed you even dumped Volumio which a lot of other users are using for their setup. Snapcast-autoconfig is a nice touch.

I'd very much like to install this with librespot-java, installed through https://github.com/spocon/spocon honestly that'll be a project I'll tackle after I get an actual initial setup going.

Shairport-sync now supports AirPlay2 in its beta version which will be a nice addition I believe.

Anyway I'll attempt a build in the next few hours and follow up here afterwards! Great work man.

@markferry
Copy link
Owner

markferry commented Oct 18, 2021

spocon is a good find!

I originally had independent service unit files (see, for example librespot@.service.template), but dumped them for the simpler approach of having snapcast run stuff. That might have had something to do with metadata (which is incomplete #3).

You can't restart individual stream sources, but you get a tidier system status:

$ systemctl status snapserver
● snapserver.service - Snapcast server
   Loaded: loaded (/lib/systemd/system/snapserver.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-10-05 14:31:39 BST; 1 weeks 5 days ago
     Docs: man:snapserver(1)
 Main PID: 12268 (snapserver)
    Tasks: 308 (limit: 9830)
   Memory: 53.0M
   CGroup: /system.slice/snapserver.service
           ├─12268 /usr/bin/snapserver --logging.sink=system --server.datadir=/var/lib/snapserver
           ├─12275 /usr/local/bin/shairport-sync --name=Study --output=stdout --use-stderr --get-coverart --configfile=/etc/multizone-audio/shairport-sync.study.conf --metadata-pipename=/tmp/shairmeta.12268.5106 --port=5106
           ├─12282 /usr/local/bin/librespot --zeroconf-port 39806 --name Study --bitrate 160 --backend pipe --initial-volume 50 --onevent /etc/multizone-audio/librespot-event.sh study --verbose
           ├─12302 /usr/local/bin/shairport-sync --name=Library --output=stdout --use-stderr --get-coverart --configfile=/etc/multizone-audio/shairport-sync.library.conf --metadata-pipename=/tmp/shairmeta.12268.5107 --port=5107
           ├─12320 /usr/local/bin/librespot --zeroconf-port 39807 --name Library --bitrate 160 --backend pipe --initial-volume 50 --onevent /etc/multizone-audio/librespot-event.sh library --verbose
...

Could use process:// stream source, or Snapcast could maybe implement librespot-java:// (badaix/snapcast#928).

@th3w1zard1
Copy link
Author

th3w1zard1 commented Oct 19, 2021

Wow! Well I've got my work cut out for me!

Could use process:// stream source, or Snapcast could maybe implement librespot-java://.

here's the link I believe you're trying to reference. It was broken on my end.
https://github.com/badaix/snapcast/issues/928

I will stay subscribed with the project,

Cheers mate,

@markferry
Copy link
Owner

Added #10

@markferry
Copy link
Owner

Added section on deploying

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants