{"id":22768329,"url":"https://github.com/martineausimon/lilypond-lib","last_synced_at":"2026-03-11T10:31:49.930Z","repository":{"id":65927626,"uuid":"581846415","full_name":"martineausimon/lilypond-lib","owner":"martineausimon","description":"My personal framework for LilyPond scores","archived":false,"fork":false,"pushed_at":"2025-05-31T10:33:21.000Z","size":646,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-27T10:39:16.523Z","etag":null,"topics":["engraving","framework","lilypond","music-engraving","scheme"],"latest_commit_sha":null,"homepage":"","language":"LilyPond","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/martineausimon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-24T15:06:58.000Z","updated_at":"2025-06-02T11:48:05.000Z","dependencies_parsed_at":"2023-11-09T11:51:38.672Z","dependency_job_id":"af0dc080-4e7a-4a02-8c9f-3cd9790e9054","html_url":"https://github.com/martineausimon/lilypond-lib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/martineausimon/lilypond-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martineausimon%2Flilypond-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martineausimon%2Flilypond-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martineausimon%2Flilypond-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martineausimon%2Flilypond-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/martineausimon","download_url":"https://codeload.github.com/martineausimon/lilypond-lib/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/martineausimon%2Flilypond-lib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30378077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T06:09:32.197Z","status":"ssl_error","status_checked_at":"2026-03-11T06:09:17.086Z","response_time":84,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["engraving","framework","lilypond","music-engraving","scheme"],"created_at":"2024-12-11T14:11:05.638Z","updated_at":"2026-03-11T10:31:49.902Z","avatar_url":"https://github.com/martineausimon.png","language":"LilyPond","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lilypond-lib\n\nThis is my personal framework for LilyPond scores. It's a WIP, and I regularly make additions or modifications.\n\n\u003cdetails\u003e\n\u003csummary\u003eSCORE EXAMPLES\u003c/summary\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/89019438/261419196-7d16ba7e-72ea-4166-b730-11a1fd034b5e.jpg\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/89019438/281694651-a93fc2ec-3b5f-4c0e-bc94-b27b10d0e367.jpg\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://user-images.githubusercontent.com/89019438/261419623-82890fde-b574-4395-a620-02b0591f90a9.jpg\"\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Installation\n\nClone this repository :\n\n```bash\ngit clone https://github.com/martineausimon/lilypond-lib\n```\n\nAdd `lilypond-lib/` dir to [LilyPond include path](https://lilypond.org/doc/v2.24/Documentation/notation/including-lilypond-files) then use :\n\n```lilypond\n\\version \"2.24.2\"\n\\include \"lilypond-lib.ily\"\n%\\include \"stylesheet-alt.ly\" %% Alternative stylesheet\n```\n\n## Stylesheet \u0026 fonts\n\nThis framework is based on [Futura PT](https://fonts.adobe.com/fonts/futura-pt) font.\n\nAll fonts are included in the repository, and loaded with `#(ly:font-config-add-directory \"./fonts/\")`\n\n## Tools\n\n### `\\marquage`\n\nInsert a non-transposable rythm section with `Pitch_squash_engraver` :\n\n![](https://github.com/user-attachments/assets/cafb8ff8-16a5-4884-9901-576029c5ae06)\n\n```lilypond\n\\relative c' {\n  r8 f r f aes aes f c \n  ees4 f \\marquage { b4. b8 }\n  r8 f r f aes4 bes\n}\n```\n\n### `\\beat`\n\nInsert beats for rhythm section :\n\n![](https://github.com/user-attachments/assets/1e8f2652-6c5e-49a0-92b5-91939e96568d)\n\n```lilypond\n\u003c\u003c\n  \\chords {\n    d2:m7 ees:7 aes:maj7 b:7 e:maj7 g:7 c1:maj7\n  }\n  {\n    \\beat 16\n  }\n\u003e\u003e\n```\n\n### `\\pitchPolygon`\n\nA markup command that generates a graphical representation of pitch classes on a circle, connecting the played notes with a polygon (solid or dotted line style). Inspired by the graphical approaches of musicians like Miles Okazaki and Steve Coleman\n\nUsed properties are :\n\n* `size` (default 4)\n* `polygon-style` : dotted, line or none – default `line`\n* `thickness` – default `2`\n* `polygon-thickness` – default `#f` (`thickness` value will be used)\n* `dots-thickness` – default `#f` (`thickness` value will be used)\n* `pitch-name` – default `#f`\n* `pitch-fontsize` – default `0`\n\n![](https://github.com/user-attachments/assets/4276ee83-5efc-4365-a405-d123343d0a4c)\n\n```lilypond\n\\markup \\line {\n  \\pitchPolygon { c e g b }\n  \\hspace #1\n  \\override #'(polygon-style . dotted)\n  \\override #'(pitch-name . #t)\n  \\pitchPolygon { c e aes }\n  \\hspace #1\n  \\overlay {\n    \\override #'(polygon-style . dotted)\n    \\pitchPolygon { c ees fis a }\n    \\pitchPolygon { d f aes b }\n  }\n  \\hspace #1\n  \\override #'(pitch-name . #t)\n  \\pitchPolygon { d gis }\n}\n```\n\n![](https://github.com/user-attachments/assets/942dfd4d-3489-45c4-88e0-3fcbfbca6a22)\n\n```lilypond\n\\score {\n  \\layout {\n    indent = 1.2\\cm\n    ragged-right = ##t\n  }\n  \\new Staff \\with {\n    instrumentName = \\markup {\n      \\pad-around #1\n      \\override #'(size . 5)\n      \\pitchPolygon { c d ees e fis g aes bes b }\n    }\n  } \\relative c' {\n    \\cadenzaOn \\omit Staff.Stem \\omit Staff.TimeSignature\n    c d ees e fis g aes bes b \n  }\n}\n```\n\n### `\\hidePitches`\n\nHide pitches. Useful for an educational document :\n\n`\\hidePitches [num (optional, raise stems)]`\n\n![](https://github.com/user-attachments/assets/8be5d475-3b62-40c7-8a7d-88565c032d17)\n\n```lilypond\n\\relative c'' {\n  g4 g8 a b4 b \\hidePitches { fis4 fis8 gis a4 } a\n}\n```\n\n### `\\rhythmMarks`\n\nAdd rhythm indications at the top/bottom of the staff :\n\n`\\rhythmMarks [num (optional, raise rhythms)]`\n\n```lilypond\n\\relative c' {\n  \\key ees \\major\n  \u003c\u003c\n    \\rhythmMarks 9 {\n      \\repeat unfold 3 { r8 d r4 d2 }\n    }\n    \\\\\n    {\n      ees2. g8 f~f2. aes8 g~g1\n    }\n  \u003e\u003e\n}\n```\n\n![](https://github.com/user-attachments/assets/d0f7f62b-107e-4756-ae6d-5b73b1fb7acb)\n\n### `\\kick`\n\nInsert a non-transposable `\\xNote` :\n\n![](https://github.com/user-attachments/assets/932357ed-74a3-43e8-86fe-6edea1c56c71)\n\n```lilypond\nmusic = \\relative c' {\n  \\partial 8 f8\n  bes bes aes bes aes aes f aes\n  f4 r8 \\kick b r2\n}\n\n\\score { \\transpose c d \\music }\n```\n\n### `\\xSpan`\n\nQuickly add a test spanner with or without text :\n\n![](https://github.com/user-attachments/assets/f5159532-0ee0-4ff0-9114-07b0e16e4109)\n\n```lilypond\n\\relative c' {\n  a8 b c d \\xSpan \"Rit\" { a b c d }\n}\n```\n\n### `\\crochet`\n\nAdd a simple analysis bracket with text :\n\n![](https://github.com/user-attachments/assets/051d8a29-69ea-4627-84ed-60071eb86ded)\n\n```lilypond\n\\relative c' {\n  \\crochet \"Phrase A\" { a8 b c d }\n  \\crochet \"Phrase B\" { d c b a }\n}\n```\n\n### `\\naturalizeMusic`\n\nsee [LilyPond manual](https://lilypond.org/doc/v2.21/Documentation/notation/changing-multiple-pitches.fr.html) :\n\n![](https://github.com/user-attachments/assets/c5226e25-1955-417f-b4cf-dd642373dfb7)\n\n```lilypond\nmusic = \\relative c' { c4 d e g }\n\n\\score {\n  \\new Staff {\n    \\transpose c ais { \\music }\n    \\naturalizeMusic \\transpose c ais { \\music }\n    \\transpose c deses { \\music }\n    \\naturalizeMusic \\transpose c deses { \\music }\n  }\n  \\layout { }\n}\n```\n\n### \"barre\" tools\n\nAdd barre indication for fretted strings instruments\n\n* `\\singleB [\"partial num\" (optional)] [fret num]` : barre for single note/chord\n* `\\xBarre [\"partial num\" (optional)] [fret num] { ... }` : barre for a music section\n* `... \\startB [\"partial num\" (optional)] [fret num] ... \\stopB` : barre delimiters for more complex situations\n\n\n```lilypond\n\\relative c'' {\n  % Single note/chord barre, partial barre :\n  \u003cbes d g\u003e1 \\singleB \"3\" 3\n  % Same, complete barre\n  \u003cg, d' g bes d g\u003e \\singleB 3\n\n  \\xBarre 3 { g16 d' g bes d g8. } \n  % equivalent to\n  g,,16 \\startB 3 d' g bes d g8. \\stopB\n\n  \\xBarre \"3\" 3 { g8 d bes4 }\n  % Or\n  \\tuplet 3/2 { fis'4 g8 \\startB \"3\" 3 } d8 bes \\stopB\n}\n```\n\n### Parenthesis tool\n\nAdd several notes/chords between parenthesis, with a size (optional)  \n`\\openParen [size num (optional)] [fist note] ... \\closeParen [size num (optional)] [last note]`\n\n![](https://github.com/martineausimon/lilypond-lib/assets/89019438/e7acc600-ede4-4f84-b5a2-0f429f0a9ecb)\n\n```lilypond\n\\relative c' {\n  \\openParen a b c \\closeParen d\n}\n```\n\n### `\\xBook` tool\n\nUse this function instead of `\\book` to compile pdf with personalized odd and even headers. This function takes a string for argument, which will be used for `\\bookOutputSuffix` and printed in `oddHeaderMarkup` and `evenHeaderMarkup`. The second argument must be a sheme list containing scores. Useful for transposed music :\n\n![](https://github.com/martineausimon/lilypond-lib/assets/89019438/4fca5f26-40c2-429a-8b25-a5be6dad4f66)\n\n```lilypond\n\\version \"2.25.9\"\n\\include \"lilypond-lib.ily\"\n\n\\header {\n  title       = \"TITLE\"\n  subtitle    = \"Subtitle\"\n  subsubtitle = \"subsubtitle\"\n  composer    = \"Composer\"\n}\n\nmusic = \\relative c'' {\n  \\repeat unfold 20 {\n    c1 d e f \\break\n  }  \n}\n\nmusicBb = \\transpose c d \\music\n\n\\xBook \"\"   #(list #{ \\music #})\n\\xBook \"Bb\" #(list #{ \\musicBb #})\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartineausimon%2Flilypond-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartineausimon%2Flilypond-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartineausimon%2Flilypond-lib/lists"}