leafo / sightreading.training

🎹 Sight reading training tool
http://sightreading.training
427 stars 74 forks source link

More info about about LML #46

Open benjamin-thomas opened 5 years ago

benjamin-thomas commented 5 years ago

Hello, great job so far, love your project !

I struggled a bit to find information about the notation syntax. I have a few questions and suggestions.

  1. This page does not seem to be deployed, is this normal? Is the web app not following the master branch?

https://github.com/leafo/sightreading.training/blob/b2c21900dcce7f681da9a8bc0bf242ce64ee5704/static/guides/lml.md

  1. It would be useful I think to have a couple of paragraphs explaining why you moved away from other text notation solutions like ABC notation for instance.

  2. As I understand it, the main logic of the language is specified in this file, is this correct ? https://github.com/leafo/sightreading.training/blob/1f49a92a1021d330716ef0365644117cf12e6290/static/js/song_parser.es6

As a consequence, it seems unlikely that a command line tool could be extracted, without duplicating work. Is this correct?

  1. What would be the ideal process to contribute music files?

At the moment it seems PR is the only way to go. Are you considering other workflows?

I'm considering contributing a few files, but I'd like to get more data first.

One thing crossing my mind would be some kind of converter (a CLI tool) for :

Once more, thanks for your great work

leafo commented 5 years ago
  1. There's a pretty big update in master that hasn't made it to production yet. This update is mostly centered on improving the "play along" mode, along with adding built in piano sound that plays from the browser
  2. LML was made from scratch to have syntax specific to the features SRT provides. The language would grow as the site gets new things. I felt like repurposing an existing notation language would be too cumbersome to work with. In the future I don't really mind if LML eventually gets phased out for a standard notation language, but for now it's easier to have a custom language to write exercises in.
  3. That file executes the parser & interprets the syntax tree. The parser is defined here: https://github.com/leafo/sightreading.training/blob/master/static/js/song_parser_peg.pegjs (It's written in pegjs and compiled to js during the build)
  4. I don't think it's a good idea to contribute songs to the repository at the moment. When the latest version gets deployed, there will be a system for creating "play along" songs directly in your browser. You can share them, make collections, have a library of materials, etc. I want to get this out soon though, because I would definitely appreciate some contributions.

One thing crossing my mind would be some kind of converter (a CLI tool) for...

I think a converter would be really useful. I haven't really looked into parsing the other formats yet though.

benjamin-thomas commented 5 years ago

Got you, thanks for the feedback.

I'd love to test that feature once deployed. Do you intend to turn this into a commercial project?

I'm mainly interested in the wait mode available on the staff page. Being able to inject user defined notes + wait mode could be a useful learning tool IMO, I'm not sure if that's your plan.

Another thing to consider is the musescore.com website having a ton of freely available sheet music, which can be exported to MusicXML. And quite an active community it seems.

At this stage I'm thinking about working on some converter from MusicXML to UML.

Starting with an easy score such as this one: https://musescore.com/guestinpiano/comptine-dun-autre-ete-normale-yann-tiersen

srosato commented 8 months ago

Conversion from Musescore XML or MIDI files to Play Along (wheter is LML or any standard notation) is definitely something I would pay a monthly subscription for (if you intend to commercialise one day). I really like the simplicity of the sightseeing web interface and converting old time favorites game music and then Play Along would be neat!