Git Product home page Git Product logo

chorus's Introduction

chorus

Clone Hero-friendly Organized Repository of User-provided Songs

Link to web app here

Introduction

The current state of Guitar Hero/Rock Band/Clone Hero custom songs aggregation is rather unsatisfying, scattered and newcomer-averse: this is an attempt to make it more searchable and user-friendly.

The current sources are based on the official CH charts spreadsheet with a ton of songs from talented charters, including conversions from C3, as well as the official GH/RB setlists. There are currently almost 20,000 charts indexed, and the number is still growing!

Disclaimer: I am not responsible of the charts and songs that are indexed by chorus (except the charts that are attributed to "Paturages"). If you have an issue with any of those, please contact the source owners (links to sources are provided for every song).

How it works

chorus periodically imports links to songs from a list of mostly Google Drive folders (manually provided in the sources folder). It crawls the provided folders, downloads the .chart/.mid and song.ini files (or entire archives) to parse them for information, formally saves the links (not the song bundles themselves) and their metadata in a database and discards the downloaded items. The web app simply reads and searches from the data that is saved in the database.

The search engine makes use of PostgreSQL's ts_vectors and trigrams (via the pg_trgm extension): it operates on the concatenation of artist/band, song, charter and source names. It seems to be working pretty well for now!

How to add your drive

Follow the instructions described here.

Local installation

(This might or might not work on Windows. Please reach out to me if you encounter problems.)

Configure a PostgreSQL database and get your Google API client ID and secret. Copy the conf.example folder to a conf folder and fill in the credential files.

npm install the node dependencies. npm run import to fill your database with all the drives. npm start to start the dev server for the web app.

npm run import <short_name> to run just one particular import script.

Fair warning: the very first run will take between 12 and 15 hours, so make sure to run the script as a background task. The following runs should only take between 15 and 20 minutes. If you're not willing to go through the 12/15 hours, feel free to ask me for a database dump on Discord (Paturages#9405) or elsewhere.

Roadmap and random ideas

(you can definitely help if you want to!)

My roadmap is actually getting considerable enough for it to warrant its own GitHub project page. Check it out!

chorus's People

Contributors

paturages avatar triggerthedragon avatar joeyballentine avatar bumper3241 avatar makinbacon05 avatar mintorment avatar tetrinity avatar treebear16 avatar vanessamagick avatar yolomcswagginz avatar davespavid avatar gmfcn1 avatar naonemeu avatar timx24968b avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.