1
0
Fork
You've already forked smt
0
No description
  • Python 99.8%
  • Shell 0.2%
2022年10月22日 10:29:35 +00:00
.gitlab/issue_templates Delete broken issue template folder 2022年08月18日 21:33:55 +02:00
adr Update language-design.md 2022年10月22日 10:29:35 +00:00
archive Upload New File 2022年09月05日 07:35:12 +00:00
fonts testing vfom 2021年04月29日 16:57:30 +02:00
tests Add rule for stems 2022年09月08日 19:16:47 +00:00
.commit-message-template Add slur 2022年09月28日 11:53:36 +02:00
.gitignore __VE__ -> __ve__ 2021年05月13日 22:06:53 +02:00
__init__.py testing vfom 2021年04月29日 16:57:30 +02:00
cfg.py Decrement right padding from non-times if needed 2022年09月16日 17:33:23 +02:00
cmn.py Add rest class 2022年09月28日 22:39:55 +02:00
CMN_README.md Add rule for stems 2022年09月08日 19:16:47 +00:00
engine.py Add rest class 2022年09月28日 22:39:55 +02:00
fontinstprep.ff testing vfom 2021年04月29日 16:57:30 +02:00
pre-push Bug notehead vertical pos rule 2022年07月24日 18:26:36 +00:00
README.md Update README.md 2022年10月21日 08:58:19 +00:00
requirements.txt Add slur 2022年09月28日 11:53:36 +02:00
score.py Add rest class 2022年09月28日 22:39:55 +02:00

Satie

Dependencies

  • Python 3.5 or higher

Thinking in Rules

How to thinkg when I'm about to add new rules to a table

Generally how defining new rules happens is as follows:

  1. Understand what is the rule about, what is it it's doing, to which object it applies?
  2. Understand at which moment in the engraving process should the rule be applied (i.e. be added/unsafeadded to the rule table)
  3. Make a rule predicate func which returns true when called with some object as arg (this is called then on each obj in the score), to find out to which objs our rule should be applied.
  4. Make the actual engraving func which is applied to that object

SVG measurements

are by default (if not correct them) in pixels only.

Coordinate Movement of Objects

When you move an object's y coordinate

  • incrementing (+) is to the bottom
  • decrementing (-) is to the top

When moving an object's x coordinate

  • incrementing (+) is to the right
  • decrementing (-) is to the left

API's Pitfalls (just for the record, some common mistakes I did while working with the API)

  • When creating forms (e.g. a horizontal form), it's origin (xy coord) is placed in the middle of it's height (i.e. half way down of it's top edge). Moving the y for instance, of course moves the top and bottom of the whole form as well, which can end with wrong results if you are setting y by somehow using references to it's top/bottom. I did this mistake while replacing the hform of final bar in a rule: obj.y = obj.current_ref_glyph_top() - StaffLines.THICKNESS * 0.5 in order to place the obj's (FinalBarline) thin and thick at once. This resulted in a longer hform because the current_ref_glyph_top is (?) static...