https://github.com/njourdane/jaffle
An hybrid yaml/node editor for Tidal Cycles, based on Strudel.
https://github.com/njourdane/jaffle
algorave livecoding music node-editor tidalcycles yaml
Last synced: about 1 year ago
JSON representation
An hybrid yaml/node editor for Tidal Cycles, based on Strudel.
- Host: GitHub
- URL: https://github.com/njourdane/jaffle
- Owner: njourdane
- License: agpl-3.0
- Created: 2023-07-03T09:31:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-24T17:09:55.000Z (over 2 years ago)
- Last Synced: 2025-04-03T13:11:12.628Z (about 1 year ago)
- Topics: algorave, livecoding, music, node-editor, tidalcycles, yaml
- Language: TypeScript
- Homepage: https://roipoussiere.frama.io/jaffle
- Size: 9.73 MB
- Stars: 21
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Jaffle
**J**ust **a**nother **f**lat **f**ile **l**ivecoding **e**nvironment.

Check out the [demo website](https://roipoussiere.frama.io/jaffle)!
## Introduction
Jaffle is an hybrid yaml/node editor for [Tidal-cycles](https://tidalcycles.org/), based on [Strudel](https://strudel.tidalcycles.org).
It aims to make algorithmic music more accessible for people who are not familiar with programming languages.


Under the hood, Jaffle is a transpiler generating JavaScript code, which is then interpreted by Strudel.
## Features
- node editor to visualize and edit tunes without writing code
- easy to read yaml syntax (albeit ususally a bit more verbose than Strudel, because less compact)
- use lambda functions, expressions, variable definitions, [and more](https://roipoussiere.frama.io/jaffle/syntax/)
- includes all Strudel examples converted into Jaffle
## Roadmap
- allow to import Strudel tunes
- create a desktop app
## Syntax
Go 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).
## Technical stack
Jaffle stands on the shoulders of giants:
- music code interpreter: [Strudel](https://strudel.tidalcycles.org/)
- graph renderer: [D3](https://d3js.org/)
- text editor: [CodeMirror](https://codemirror.net/)
- website generator: [Hugo](https://gohugo.io/)
- bundler: [ESbuild](https://esbuild.github.io/)
- unit tests framework: [Jest](https://jestjs.io)
- linter: [ESLint](https://eslint.org/)
## Contributing
See the [contribution guide](./CONTRIBUTING.md)!
## Authorship
### Jaffle transpilers, editors and website
- credits: Nathanaël Jourdane and contributors
- license: [AGPL-3.0](./LICENSE)
- source: https://framagit.org/roipoussiere/jaffle
### Strudel engine
- credits: Strudel contributors
- license: [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.txt)
- source: https://github.com/tidalcycles/strudel
### Pre-loaded sounds
- piano:
- credits: Alexander Holm
- license: [CC-by](http://creativecommons.org/licenses/by/3.0)
- source: https://archive.org/details/SalamanderGrandPianoV3
- VCSL:
- credits: Versilian Studios LLC
- license: [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
- source: https://github.com/sgossner/VCSL
- Tidal drum machines:
- source: https://github.com/ritchse/tidal-drum-machines
- EmuSP12:
- source: https://github.com/tidalcycles/Dirt-Samples