bbloomf / jgabc

http://bbloomf.github.io/jgabc/
The Unlicense
100 stars 48 forks source link

Document how readings tool Tone customization works #71

Open Nokel81 opened 8 months ago

Nokel81 commented 8 months ago

The readings tool is amazing but it seems like the GABC modification inputs are a bit of a black art. I tried looking through the code in readings.js but I couldn't easily find the implementation of their parser, not even an eval call.

Thanks

Nokel81 commented 8 months ago

Also, it would be useful if the readings tool had a way to specify what to do at commas in the text, not just semi colons, colons, question marks, and periods

bbloomf commented 8 months ago

It is in psalmtone.js that these things happen.

https://github.com/bbloomf/jgabc/blob/a727678b6c5e5b5ee06d6c2cbada3585c7be3f86/psalmtone.js#L700 calls eval() after setting a global variable t

The eval was only set up to handle a ? : operator and you can see from that line, that it is given information about the last three syllables in reverse order.

MRoth1910 commented 4 months ago

Yeah, I don't understand this at all, because I would prefer the standard endings for monosyllables and Hebrew words. I have never ever seen the ending for those used in Latin, and I cannot make heads or tails of what is here. A check box would be helpful. (For context, I'm currently working on setting texts to the prophecy tone.) The flex is requred, except in shorter sentences, but because not all sentences have colons, sometimes the flex is omitted, sometimes the sentence is short but, because the colon is used for dialogue it is inserted, and really, this is a problem, insofar as the rules are contradictory. The flex is repeated if it makes sense, but the flex before introducing dialogue does not make sense! It is a dependent clause. (The St Athanasius Chant book of epistles and gospels does this too.)

The ending for the readings preceding the Canticle of Moses and that of the Three Young Men would also be helpful, but again, the documentation is fairly complex…

Even just a note that this is a problem would be helpful.