{"id":14483569,"url":"https://github.com/njourdane/jaffle","last_synced_at":"2025-04-26T00:33:37.706Z","repository":{"id":178306311,"uuid":"661623167","full_name":"njourdane/jaffle","owner":"njourdane","description":"An hybrid yaml/node editor for Tidal Cycles, based on Strudel.","archived":false,"fork":false,"pushed_at":"2023-11-24T17:09:55.000Z","size":10206,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T13:11:12.628Z","etag":null,"topics":["algorave","livecoding","music","node-editor","tidalcycles","yaml"],"latest_commit_sha":null,"homepage":"https://roipoussiere.frama.io/jaffle","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njourdane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2023-07-03T09:31:16.000Z","updated_at":"2024-12-26T02:16:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"baa26faa-4deb-480d-be69-4ab7e565d72f","html_url":"https://github.com/njourdane/jaffle","commit_stats":null,"previous_names":["roipoussiere/jaffle","njourdane/jaffle"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njourdane%2Fjaffle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njourdane%2Fjaffle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njourdane%2Fjaffle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njourdane%2Fjaffle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njourdane","download_url":"https://codeload.github.com/njourdane/jaffle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250917283,"owners_count":21507561,"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":["algorave","livecoding","music","node-editor","tidalcycles","yaml"],"created_at":"2024-09-03T00:01:52.478Z","updated_at":"2025-04-26T00:33:37.699Z","avatar_url":"https://github.com/njourdane.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Jaffle\n\n**J**ust **a**nother **f**lat **f**ile **l**ivecoding **e**nvironment.\n\n\u003cimg style=\"display: block; margin: auto;\" src=\"./website/static/images/jaffle_logo_128.png\"/\u003e\n\nCheck out the [demo website](https://roipoussiere.frama.io/jaffle)!\n\n## Introduction\n\nJaffle is an hybrid yaml/node editor for [Tidal-cycles](https://tidalcycles.org/), based on [Strudel](https://strudel.tidalcycles.org).\n\nIt aims to make algorithmic music more accessible for people who are not familiar with programming languages.\n\n![](images/node_editor.png)\n\n![](images/yaml_editor.png)\n\nUnder the hood, Jaffle is a transpiler generating JavaScript code, which is then interpreted by Strudel.\n\n## Features\n\n- node editor to visualize and edit tunes without writing code\n- easy to read yaml syntax (albeit ususally a bit more verbose than Strudel, because less compact)\n- use lambda functions, expressions, variable definitions, [and more](https://roipoussiere.frama.io/jaffle/syntax/)\n- includes all Strudel examples converted into Jaffle\n\n## Roadmap\n\n- allow to import Strudel tunes\n- create a desktop app\n\n## Syntax\n\nGo to the [syntax section](https://roipoussiere.frama.io/jaffle/syntax) in the Jaffle website (or alternatively read [its source](./website/content/syntax.md) if necessary).\n\n## Technical stack\n\nJaffle stands on the shoulders of giants:\n\n- music code interpreter: [Strudel](https://strudel.tidalcycles.org/)\n- graph renderer: [D3](https://d3js.org/)\n- text editor: [CodeMirror](https://codemirror.net/)\n- website generator: [Hugo](https://gohugo.io/)\n- bundler: [ESbuild](https://esbuild.github.io/)\n- unit tests framework: [Jest](https://jestjs.io)\n- linter: [ESLint](https://eslint.org/)\n\n## Contributing\n\nSee the [contribution guide](./CONTRIBUTING.md)!\n\n## Authorship\n\n### Jaffle transpilers, editors and website\n\n- credits: Nathanaël Jourdane and contributors\n- license: [AGPL-3.0](./LICENSE)\n- source: https://framagit.org/roipoussiere/jaffle\n\n### Strudel engine\n\n- credits: Strudel contributors\n- license: [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt)\n- source: https://github.com/tidalcycles/strudel\n\n### Pre-loaded sounds\n\n- piano:\n  - credits: Alexander Holm\n  - license: [CC-by](http://creativecommons.org/licenses/by/3.0)\n  - source: https://archive.org/details/SalamanderGrandPianoV3\n- VCSL:\n  - credits: Versilian Studios LLC\n  - license: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)\n  - source: https://github.com/sgossner/VCSL\n- Tidal drum machines:\n  - source: https://github.com/ritchse/tidal-drum-machines\n- EmuSP12:\n  - source: https://github.com/tidalcycles/Dirt-Samples\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjourdane%2Fjaffle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjourdane%2Fjaffle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjourdane%2Fjaffle/lists"}