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

FEAT: Server application #267

Closed
wants to merge 14 commits into from

Conversation

carlwilson
Copy link

This isn't really ready to go yet but I thought I'd try to work out if you're interested in something like this or not for now. I use your work a fair bit for personal listening through Roon. They have a large community who aren't all particularly tech-savvy who struggle to download and install the filters. I figured a web application might help them. This PR sets up a simple Flask web application driven by the available oratory1990 results. Currently, it just provides a searchable table where people can find their headphones and download a Roon friendly zipped package of the two available convolution filters. It's pretty basic with a few extra REST endpoints that have an eye on future direction.

If you're not keen to merge this, I totally understand. Just let me know and I'll tease it out into its own project. If you want to see it I have a test version up at https://phones.killdozer.uk/. There's no attribution for your great work there yet but that's next on my fix list today.

- basic `server/setup.py`;
- necessary `__init__.py`s for module structure;
- config and initialisation of flask application;
- `.../routes/pages.py` for app pages;
- `.../routes/api.py` for REST methods;
- rudimentary page templating in place;
- front listing page driven by hard-coded fake mock in place; and
- bare bones `README.md`.
- home page now lists real headphones with downloadable filter zips;
- new API routes for manufacturers, phones and oratory filters (a bit hacky);
- very hacky model module to handle parsing datatypes;
- added route directory config variable
- added root project dir var to constants;
- cleaned up Flask app startup; and
- added simple usage instructions to `server/README.md`
- added a top level menu since we now have 2 pages;
- added an about page with some basic attribution;
- tidied up the code that retrieves Oratory results; and
- minor refactoring:
  - refactored server app's `route` constant values to its own file; and
  - removed hard-coded string repetition.
- added dictionary for lookup of headphone type details;
- replaced download button with zip download icon;
- added fontawesome webfont and css; and
- site logo.
@jaakkopasanen
Copy link
Owner

Very cool to see things happening around AutoEq! Unfortunately I'm not sure how well this fits into the vision I have for AutoEq. Eventually I certainly intend to have a webapp for AutoEq where users can tweak all of the parameters without installing AutoEq on their own machine. I'd probably add this zip functionality there as well. However a server which only serves outputs, and only one kind at that, is not quite what I had in mind.

It might be better to split this into it's own project.

@carlwilson
Copy link
Author

Hi @jaakkopasanen I understand but perhaps I should have been clearer regarding my intentions. This is really my MVP start. The PR isn't complete and I'm aiming to develop a "design your own filter" page quite shortly. This is just a couple of evenings work as I get to grips with the ideas. I suggest we close the PR for now and I come back when I've moved it forward some.

BTW I also have a Docker file for the CLI autoeq, which I'm using to generate my own "custom" filters, I prefer linear phase for example. Would a PR with that be of interest?

- added various favicon types to dedicated static directory; and
- added clunky methods to serve them to `server/autoeq_srv/routes/pages.py`.
- landing page now lists all recommended results;
- added result pages for each source, e.g. Oratory, Crinacle, etc.;
- result harvesting now done by parsing the result `README.md`s;
- filters delivered by `source/target/model` identifier;
- some presentational niceties; and
- removed some of the unused junk.
FEAT: Recommended headphone list
@JamesYeoman
Copy link

My issue #290 is arguably similar in intentions of this PR. It's a simpler approach, and for a system-wide equalisation option, but I'd be interested in your thoughts

@jaakkopasanen
Copy link
Owner

It's been a long time but finally I finished not only server but also a full fledged web app for AutoEq. This of course means this PR can now be closed.

@carlwilson
Copy link
Author

That's exciting, I'll check it out :) Good work @jaakkopasanen

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

Successfully merging this pull request may close these issues.

None yet

5 participants