GithubHelp home page GithubHelp logo

igneus / adiutor Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 754 KB

Chant database assisting my work on the "In adiutorium" project.

License: MIT License

Ruby 77.51% JavaScript 1.36% CSS 0.24% SCSS 0.85% Slim 6.17% HTML 2.61% Dockerfile 0.33% LilyPond 0.14% Shell 0.80% Python 8.74% PHP 0.92% Makefile 0.21% TeX 0.12%
rails-app lilypond music liturgy gregorio gregorian-chant chant gabc volpiano mei

adiutor's Introduction

Adiutor

Private chant database assisting work on the In adiutorium project. Internal tool, not intended for public deployment.

What it's used for

The application's main purpose is to transform a heap of sheet music into a database of pieces which can be conveniently searched and filtered by lyrics, tune and metadata. Many features are specific to the corpus being worked on (keeping track of relations between pieces, of settings for a few special psalms and canticles required to match the respective antiphons, of non-standard tunes worth occasional re-evaluation; continual focus on pieces marked as needing a revision).

The application is only used as visualization and accessibility tool, not to edit the data. The music corpus is maintained as a source code repository edited using standard music editing applications and the source code is regularly re-imported in the web app. (Hence the feature of opening a selected piece in an external text editor.)

Various publicly available corpora of Gregorian chant pieces are imported as additional reference material and for research purposes not directly related to the work on the vernacular chant corpus.

Setting up

Prerequisites

  • Docker
  • docker-compose
  • for the parts not dockerized:
    • Bash
    • GNU Make (other Make implementations may work, too)
    • Ruby 3.x
    • LilyPond >= 2.18
    • Inkscape
    • LuaLaTeX and gregorio (only if you are going to import and render also gabc-based chant corpora)
    • Verovio (only if you are going to import and render also MEI-based chant corpora)
    • PHP (only if you are going to use the "open in editor" functionality)

Setup steps

Configure and start the dockerized web app

  1. ./bin/init.sh
  2. spin the application up by ./dc.sh up (Ctrl+C to stop, ./dc.sh down to remove the containers)
  3. check that the application works:
    • http://localhost:3000/ serves Adiutor homepage
    • make test succeeds (or at least make test-rails test-python succeeds)
  4. optionally create some user account: rake user:add[[email protected]] (only needed if you plan to use the data-modifying functionalities like reviewing parent-child mismatches and marking them resolved)

Import data

Data import is not dockerized, so these steps install dependencies and execute parts of the Rails application outside of Docker. (The dockerized database is still being used.)

  1. in section 3 of .env configure local paths to the data of corpora you plan to import
  2. cd rails_app
  3. bundle install
  4. check that the application works outside of Docker: bundle exec rake spec
  5. bundle exec rake refresh to import (or re-import) the In adiutorium corpus
  6. optionally import more chant corpora for comparative purposes (respective optional settings in .env must be set)
  7. bundle exec rake images to render each chant in notation (takes a lot of time to finish, requires LilyPond and Inkscape, for the gabc-based chant corpora also LuaLaTex and Gregorio)
  8. cd .. (return to the project root directory)
  9. make volpiano to generate normalized representations of melodies (required for music search and other features)

adiutor's People

Contributors

igneus avatar

Watchers

 avatar  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.