{"id":20660963,"url":"https://github.com/liatemplates/abcjs","last_synced_at":"2025-10-06T12:39:34.101Z","repository":{"id":107256826,"uuid":"501224354","full_name":"LiaTemplates/ABCjs","owner":"LiaTemplates","description":"LiaScript Template for the music ABC notation","archived":false,"fork":false,"pushed_at":"2025-02-23T21:03:45.000Z","size":1505,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T04:28:36.190Z","etag":null,"topics":["abc","liascript","liascript-template","music","music-composition","music-theory","oer"],"latest_commit_sha":null,"homepage":"https://liascript.github.io/course/?https://raw.githubusercontent.com/liaTemplates/ABCjs/main/README.md","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiaTemplates.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2022-06-08T11:37:37.000Z","updated_at":"2025-02-23T21:03:48.000Z","dependencies_parsed_at":"2024-05-27T22:32:07.075Z","dependency_job_id":"06254c73-6570-4f6e-8a12-1b2593c4bb83","html_url":"https://github.com/LiaTemplates/ABCjs","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/LiaTemplates/ABCjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaTemplates%2FABCjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaTemplates%2FABCjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaTemplates%2FABCjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaTemplates%2FABCjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiaTemplates","download_url":"https://codeload.github.com/LiaTemplates/ABCjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaTemplates%2FABCjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278614171,"owners_count":26015960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["abc","liascript","liascript-template","music","music-composition","music-theory","oer"],"created_at":"2024-11-16T19:06:38.759Z","updated_at":"2025-10-06T12:39:34.062Z","avatar_url":"https://github.com/LiaTemplates.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nauthor:   André Dietrich\n\nemail:    LiaScript@web.de\n\nversion:  0.0.2\n\nlanguage: en\n\nlogo:     logo.png\n\nnarrator: US English Female\n\ncomment:  This document provides a collection of LiaScript macros that can be\n          to write beautiful music notes with the ABC notation and also to\n          play this music aloud.\n\nscript:   ./dist/index.js\n\n@ABCJS.render: @ABCJS.renderWith( ,```@0```)\n\n@ABCJS.renderWith\n\u003clia-keep\u003e\n\u003clia-abcjs @0\u003e@1\u003c/lia-abcjs\u003e\n\u003c/lia-keep\u003e\n@end\n\n@ABCJS.eval: @ABCJS.evalWith( ,@0)\n\n@ABCJS.evalWith\n\u003cscript\u003e\nconsole.html(`\u003clia-abcjs @0\u003e@input\u003c/lia-abcjs\u003e`)\n\"LIA: stop\"\n\u003c/script\u003e\n@end\n\n--\u003e\n\n\n# ABCjs - Template\n\n          --{{0}}--\nThis document defines some basic macros for that allow you to write music notes\nwith the [ABC-notation](https://en.wikipedia.org/wiki/ABC_notation). To\ntransform this into nicely rendered music notes an to play the music online as\nwell, this plugin uses the JavaScript library [abcjs](https://www.abcjs.net).\nThis plugin allows you to use ABC music in two ways, only for showing and\nplaying, or to write and interpret ABC interactively with an editor.\n\n__Try it on LiaScript:__\n\nhttps://liascript.github.io/course/?https://raw.githubusercontent.com/liaTemplates/ABCjs/main/README.md\n\n__See the project on Github:__\n\nhttps://github.com/liaTemplates/ABCjs\n\n          --{{1}}--\nThere are three ways to use this template. The easiest way is to use the\n`import` statement and the url of the raw text-file of the master branch or any\nother branch or version. But you can also copy the required functionality\ndirectly into the header of your Markdown document, see therefor the\n[last slide](#implementation). And of course, you could also clone this project\nand change it, as you wish.\n\n           {{1}}\n1. Load the macros via\n\n   `import: https://raw.githubusercontent.com/liaTemplates/ABCjs/main/README.md`\n\n   or use this specific version and you course will be stable:\n\n   `import: https://raw.githubusercontent.com/LiaTemplates/ABCjs/0.0.2/README.md`\n\n2. Copy the definitions into your Project\n\n3. Clone this repository on GitHub\n\n## `@ABCJS.render`\n\n          --{{0}}--\nDisplay the ABC defined music with default options, which will render them as\nmusical notes and add a the possibility to play the music aloud.\n\n\n```` markdown\n``` abc  @ABCJS.render\nX: 1\nT: Shche ne Vmerla Ukrayiny ni Slava, ni volya\nT: Ukrainian National Anthem\nC: trad.\nR: march\nS: https://www.8notes.com/scores/34640.asp\nZ: 2022 John Chambers \u003cjc:trillian.mit.edu\u003e\nM: C\nL: 1/8\nK: F\n[|\\\n\"F\"[A3F3][AF] ([AF][GE][AF])[BG] | [c3A3][BG] \"A7\"[A2F2][G2E2^C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D3D3][E^C] [F2D2]\"C\"[G2E2] |\n\"F\"[A3F3][AF] ([AF][GE][AF])[BG] | [c3A3][BG] \"A7\"[A2F2][G2E2^C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D4D4] D2z2 |\n\"A\"[E2^C2][E2C2] ([AC][GE][FD])[EC] | (\"Dm\"[DD3-]EF)[DD] \"A\"[E2^C2][E2C2] | \"Dm\"[F2D2][F2D2] \"C\"[G2E2][G2E2] | \"F\"[A4F4] [A2F2]z2 |\n\"A\"[E2^C2][E2C2] ([AC][GE][FD])[EC] | (\"Dm\"[DD3-]EF)[DD] \"A\"[E2^C2][E2C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D3D3][E^C] ([FD][GE][AF])[BG] |\n|:\\\n\"F\"[c3A3][=B^G] [c2A2][A2F2] | \"C\"[G2E2][G2E2] ([cE][BG]\"^A7/C#\"[AF])[GE] | \"Dm\"[F2D2][F2D2] \"C\"[G2E2][G2C2] | (\"F\"[A3F3][GE][A2F2])\"C7\"[B2G2] |\n\"F\"[c3A3][=B^G] [c2A2][A2F2] | \"C\"[G2E2][G2E2] ([cE][BG]\"^A7/C#\"[AF])[GE] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D4D4] [D2D2]z2 :|\n```\n````\n\n---\n\n``` abc  @ABCJS.render\nX: 1\nT: Shche ne Vmerla Ukrayiny ni Slava, ni volya\nT: Ukrainian National Anthem\nC: trad.\nR: march\nS: https://www.8notes.com/scores/34640.asp\nZ: 2022 John Chambers \u003cjc:trillian.mit.edu\u003e\nM: C\nL: 1/8\nK: F\n[|\\\n\"F\"[A3F3][AF] ([AF][GE][AF])[BG] | [c3A3][BG] \"A7\"[A2F2][G2E2^C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D3D3][E^C] [F2D2]\"C\"[G2E2] |\n\"F\"[A3F3][AF] ([AF][GE][AF])[BG] | [c3A3][BG] \"A7\"[A2F2][G2E2^C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D4D4] D2z2 |\n\"A\"[E2^C2][E2C2] ([AC][GE][FD])[EC] | (\"Dm\"[DD3-]EF)[DD] \"A\"[E2^C2][E2C2] | \"Dm\"[F2D2][F2D2] \"C\"[G2E2][G2E2] | \"F\"[A4F4] [A2F2]z2 |\n\"A\"[E2^C2][E2C2] ([AC][GE][FD])[EC] | (\"Dm\"[DD3-]EF)[DD] \"A\"[E2^C2][E2C2] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D3D3][E^C] ([FD][GE][AF])[BG] |\n|:\\\n\"F\"[c3A3][=B^G] [c2A2][A2F2] | \"C\"[G2E2][G2E2] ([cE][BG]\"^A7/C#\"[AF])[GE] | \"Dm\"[F2D2][F2D2] \"C\"[G2E2][G2C2] | (\"F\"[A3F3][GE][A2F2])\"C7\"[B2G2] |\n\"F\"[c3A3][=B^G] [c2A2][A2F2] | \"C\"[G2E2][G2E2] ([cE][BG]\"^A7/C#\"[AF])[GE] | \"Dm\"[F2D2][A2F2] \"A\"[E2^C2][A2C2] | \"Dm\"[D4D4] [D2D2]z2 :|\n```\n\n## `@ABCJS.renderWith`\n\n          --{{0}}--\nUse the render with option to change the default settings. A list of all\npossible parameters is defined in section [Options](#Options). Additionally it\nis possible to set these parameters as comments within the ABC-code, as it is\ndemonstrated [here](#@ABCJS.eval).\n\n```` markdown\n``` abc  @ABCJS.renderWith(channel=\"10\" audio=\"true\" notes=\"false\")\nX: 1\nT: Cooley's\nM: 4/4\nL: 1/8\nK: Emin\n|:D2|\"Em\"EBBA B2 EB|~B2 AB dBAG|\"D\"FDAD BDAD|FDAD dAFD|\n\"Em\"EBBA B2 EB|B2 AB defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n|:gf|\"Em\"eB B2 efge|eB B2 gedB|\"D\"A2 FA DAFA|A2 FA defg|\n\"Em\"eB B2 eBgB|eB B2 defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n```\n````\n\n---\n\n``` abc  @ABCJS.renderWith(channel=\"10\" audio=\"true\" notes=\"false\")\nX: 1\nT: Cooley's\nM: 4/4\nL: 1/8\nK: Emin\n|:D2|\"Em\"EBBA B2 EB|~B2 AB dBAG|\"D\"FDAD BDAD|FDAD dAFD|\n\"Em\"EBBA B2 EB|B2 AB defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n|:gf|\"Em\"eB B2 efge|eB B2 gedB|\"D\"A2 FA DAFA|A2 FA defg|\n\"Em\"eB B2 eBgB|eB B2 defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n```\n\n\n## `@ABCJS.eval`\n\n          --{{0}}--\nNext to just showing the notes, it is also possible to directly edit music with\nthe LiaScript editor. Alls states and versions will be preserved. Simply add the\n`@ABCJS.eval` macro to the end of the code-block. This will run `eval` with the\ndefault settings and print out the result within the console. The code-example\ncontains a list of all settings that can be changed by the user, this will\noverwrite the default settings and gives you more control over your composition.\n\n``` abc\n% audio: true\n% autoplay: false\n% channel: 0\n% debug: false\n% notes: true\n% program: 60\n% responsive: true\n% tablature: [{\"instrument\": \"violin\",\"tuning\": [\"G,\", \"D\", \"A\", \"e\"]}]\n% voicesOff: false\n% chordsOff: false\n% stereo: true\nX: 1\nT: Cooley's\nM: 4/4\nL: 1/8\nK: Emin\n|:D2|\"Em\"EBBA B2 EB|~B2 AB dBAG|\"D\"FDAD BDAD|FDAD dAFD|\n\"Em\"EBBA B2 EB|B2 AB defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n|:gf|\"Em\"eB B2 efge|eB B2 gedB|\"D\"A2 FA DAFA|A2 FA defg|\n\"Em\"eB B2 eBgB|eB B2 defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n```\n@ABCJS.eval\n\n\n## `@ABCJS.evalWith`\n\n          --{{0}}--\nThis is similar to the `@ABCJS.renderWith` version an allows you to configure\nthe output more precisely. Additionally it is also possible, to overwrite these\nsettings within the comments, as shown in the previous section.\n\n``` abc\nX: 1\nT: Cooley's\nM: 4/4\nL: 1/8\nK: Emin\n|:D2|\"Em\"EBBA B2 EB|~B2 AB dBAG|\"D\"FDAD BDAD|FDAD dAFD|\n\"Em\"EBBA B2 EB|B2 AB defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n|:gf|\"Em\"eB B2 efge|eB B2 gedB|\"D\"A2 FA DAFA|A2 FA defg|\n\"Em\"eB B2 eBgB|eB B2 defg|\"D\"afe^c dBAF|\"Em\"DEFD E2:|\n```\n@ABCJS.evalWith(autoplay=\"true\" debug=\"true\")\n\n## Options\n\n| option       | Description                                                                                                                     |\n| ------------ | ------------------------------------------------------------------------------------------------------------------------------- |\n| `audio`      | Display audio settings, by default true.                                                                                        |\n| `autoplay`   | Start playing immediately when the site/abc becomes visible (by default disabled)                                               |\n| `channel`    | The \"midi channel\" to use. This isn't particularly useful except that specifying channel 10 means to use the percussion sounds. |\n| `debug`      | Combinations of ABCJS `showDebug: ['box', 'grid']` which shows some visual debug information.                                   |\n| `notes`      | Depict the notes, by default this is enabled, set it to false to hide them and to display only the \"playback\".                  |\n| `program`    | A number for the midi program (aka \"instrument\") to use, if not specified in ABC string.                                        |\n| `responsive` | Used by default, if you set this to false, then there will be a scrollbar displayed on small screens.                           |\n| `tablature`  | Add tablature options as defined [here](https://paulrosen.github.io/abcjs/visual/tablature.html#tablature-options).             |\n| `voicesOff`  | If true, play the metronome and accompaniment; do the animation callbacks, but don't play any melody lines.                     |\n| `chordsOff`  | If true, then don't turn the guitar chord symbols into sound. (But do play the metronome if there is one.)                      |\n| `stereo`     | Use pan to mimic stereo sound (by default set to false).                                                                        |\n\n## ABC Tutorial\n\nYou can search https://abcnotation.com for a vast amount of songs and resources.\nAdditionally, it might be helpful to have a look at the following videos:\n\n\n!?[How to get started with abc notaion](https://www.youtube.com/watch?v=jwzzueA5siQ\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh)\n\n!?[How to understand abc notation ... the basics](https://www.youtube.com/watch?v=H8hWKP5cEXE\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh\u0026index=2)\n\n!?[How to understand abc notation ... next steps](https://www.youtube.com/watch?v=u6_tjcKE42A\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh\u0026index=3)\n\n!?[How to become an EasyABC virtuoso ... tips \u0026 tricks](https://www.youtube.com/watch?v=u6_tjcKE42A\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh\u0026index=3)\n\n!?[How to include lyrics in abc notation](https://www.youtube.com/watch?v=RWNeCjid0zc\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh\u0026index=5)\n\n!?[How to write abc notation for multiple voices (polyphony)](https://www.youtube.com/watch?v=HxLKo4HL19g\u0026list=PLfRXRZpfgshJU-1rDD91AP1SF13VHYqbh\u0026index=6)\n\n\n## Implementation\n\n``` html\nscript:   https://cdn.jsdelivr.net/gh/liatemplates/abcjs@0.0.2/dist/index.js\n\n@ABCJS.render: @ABCJS.renderWith( ,```@0```)\n\n@ABCJS.renderWith\n\u003clia-keep\u003e\n\u003clia-abcjs @0\u003e@1\u003c/lia-abcjs\u003e\n\u003c/lia-keep\u003e\n@end\n\n@ABCJS.eval: @ABCJS.evalWith( ,@0)\n\n@ABCJS.evalWith\n\u003cscript\u003e\nconsole.html(`\u003clia-abcjs @0\u003e@input\u003c/lia-abcjs\u003e`)\n\"LIA: stop\"\n\u003c/script\u003e\n@end\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliatemplates%2Fabcjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliatemplates%2Fabcjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliatemplates%2Fabcjs/lists"}