{"id":17949723,"url":"https://github.com/slurmulon/bach","last_synced_at":"2025-03-24T23:32:02.928Z","repository":{"id":11695757,"uuid":"67009806","full_name":"slurmulon/bach","owner":"slurmulon","description":":musical_score: Semantic music notation","archived":false,"fork":false,"pushed_at":"2023-10-27T15:28:47.000Z","size":1288,"stargazers_count":8,"open_issues_count":13,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-19T05:24:50.292Z","etag":null,"topics":["audio","beats","chords","jam","music","musical-loops","notation","scale","semantic","song"],"latest_commit_sha":null,"homepage":"http://codebach.tech","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slurmulon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2016-08-31T06:26:53.000Z","updated_at":"2024-09-27T13:37:09.000Z","dependencies_parsed_at":"2024-10-29T10:05:28.159Z","dependency_job_id":null,"html_url":"https://github.com/slurmulon/bach","commit_stats":{"total_commits":784,"total_committers":2,"mean_commits":392.0,"dds":"0.0025510204081632404","last_synced_commit":"ebac75a129a311f2713d52b8189ea5ae285ce4fb"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slurmulon%2Fbach","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slurmulon%2Fbach/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slurmulon%2Fbach/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slurmulon%2Fbach/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slurmulon","download_url":"https://codeload.github.com/slurmulon/bach/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245372193,"owners_count":20604487,"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","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":["audio","beats","chords","jam","music","musical-loops","notation","scale","semantic","song"],"created_at":"2024-10-29T09:32:19.094Z","updated_at":"2025-03-24T23:32:02.561Z","avatar_url":"https://github.com/slurmulon.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bach\n\n\u003e :musical_score: Semantic music notation\n\n---\n\n[![build](https://img.shields.io/circleci/project/github/RedSparr0w/node-csgo-parser.svg?style=for-the-badge)](https://circleci.com/gh/slurmulon/bach)\n[![npm](https://img.shields.io/npm/v/bach-cljs.svg?style=for-the-badge)](https://npmjs.com/bach-cljs)\n[![clojars](https://img.shields.io/clojars/v/bach.svg?style=for-the-badge)](https://clojars.org/bach)\n\n## Introduction\n\n`bach` is a semantic music notation designed to be both human and computer friendly.\n\nAlthough its primary domain is music, `bach` enables the synchronization of rhythmic timelines with just about anything.\n\n\u003e :warning: The project is still considered experimental should **not** be used in production.\n\n## Documentation\n\n - **Home**: https://codebach.tech\n - **Guide**: https://codebach.tech/#/guide\n - **Examples**: https://codebach.tech/#/examples\n - **Syntax**: https://codebach.tech/#/syntax\n - **Development**: https://codebach.tech/#/dev\n - **Contribute**: https://codebach.tech/#/contribute\n\nBefore diving into the docs, please note that `bach` is a new data format, so naturally there is limited [tooling](https://codebach.tech/#/dev?id=tools) and integration support for it today.\n\nBut whether you're an adventerous musician or a developer exploring `bach` for their project, we advise that you read our [Guide](https://codebach.tech/#/guide) page since it provides the most comphrensive overview of `bach` available.\n\n## Example\n\nThe following `bach` data represents the loopable progression of a rock backing track.\n\n\u003e :musical_keyboard: Try running it in the [bach editor](https://editor.codebach.tech)!\n\n```bach\n@meter = 4|4\n@tempo = 83\n\n:A = [\n  3/8 -\u003e {\n    scale('E aeolian')\n    chord('Em9')\n  }\n  5/8 -\u003e chord('C')\n  3/8 -\u003e chord('Em9')\n  4/8 -\u003e chord('C')\n  9/8 -\u003e chord('C/D')\n]\n\n:B = [\n  3/8 -\u003e chord('B')\n  5/8 -\u003e chord('Em9')\n  1 -\u003e chord('Em9')\n]\n\n:C = [\n  3/8 -\u003e chord('B')\n  5/8 -\u003e chord('G')\n  1 -\u003e chord('G')\n]\n\nplay! [\n  7 of :A\n  2 of :B\n  3 of [\n    :C\n    when !{ last? } do { :B }\n  ]\n  3/8 -\u003e chord('B')\n  5/8 -\u003e chord('Em9')\n  1 -\u003e chord('B7b13')\n]\n```\n\nYou can find more examples of `bach` in the [Examples](https://codebach.tech/#/examples) page of the documentation.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslurmulon%2Fbach","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslurmulon%2Fbach","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslurmulon%2Fbach/lists"}