Introducing Jaffle, a node editor for Tidal/Strudel

Hello there!

This is my first message on this forum. :slight_smile:

I'm Nathanaël, I discovered algorithmic music a month ago during a Foxdot presentation on a french conference about hacking, and I thought it was really cool. I then did some research on the subject, discovered the concept of algorave, listen awesome artists I didn't know, and tried several projects like SuperCollider, Foxdot, Tidal and Strudel. I don't understand how missed this, but the algorithmic music ecosystem is fascinating and its community seems huge.

Well, because I like to experiment new things, 2 weeks ago I started to work on yaml-based syntax for Tidal, based on Strudel.

So I would like to present this project here: it is called Jaffle (just another flat file livecoding environment, thanks @cleary and @froos on Discord for the name and acronym suggestion).

:arrow_right: check out the project website

Source code: GitHub - roipoussiere/jaffle: An hybrid yaml/node editor for Tidal Cycles, based on Strudel.

The purpose of this project is to make algorithmic music more accessible for people who are not familiar with programming languages. It is actually a transpiler generating JavaScript code, which is then interpreted by Strudel.

After several iterations on the syntax, all Strudel examples has been translated to Jaffle, so if you made some tunes in Strudel, it is reasonable to assume that they can be written in Jaffle.

I also plan to work on an alternative Yaml editor with a visual interface made of boxes and wires, in order to make it more user-friendly.

I'm interested in feedbacks and I would love to discuss with some people about this project, here or on Discord. :slight_smile:

Have a nice day!

13 Likes

Looks f*cking amazing! Can't wait to give it a try

1 Like

Thanks! :hugs:

I updated the website to add the graph visualization as an experimental feature, if you want to give a try:

There are many glitches for now (no line breaks, fixed graph height, etc) but at least you get the idea.

check here :point_right: Jaffle - Music live coding in Yaml

1 Like

Awesome news thanks! What's the current roadmap? What issues are you most keen on solving?

You can check the roadmap here: Development · Boards · Nathanaël / Jaffle · GitLab

I'm more used to GitLab so I prefer to use it for the project development for now, while keeping the github issue tracker open for bugs and suggestions.

The issues I want to solve now are the various graph glitches, in particular line breaks, which is challenging because svg doesn't support it and I will also have adapt the links and boxes positions.

Eventually the graph will not be used to visualize the tune wrote with the text editor, but the graph will be the editor itself. I think about a keyboard-centric visual editor, without mouse interaction in order to keep the live-coding aspect of Tidal. And users will be able to switch between text and visual editor.

I plan to fix the glitches in the next release and have the visual editor on the next one. :slight_smile:

1 Like

Also, there is now a dedicated #jaffle channel on Discord! :rocket:

Update:

  • better box stacking
  • dynamic graph height
  • dynamic box width
  • align values to right
  • syntax highlighting
  • truncate too long values as a workaround before adding line breaks

I just released Jaffle 0.3! :waffle:

This release was dedicated to the tune visualization. :bar_chart:

In addition to the list above, this version includes:

  • fix box rendering for serialized data
  • get rid of _ function prefix and / string prefix, so the syntax is closer to Strudel
  • improve again syntax highlighting and box stacking
  • display full value in tooltip

Try it now :point_right: Jaffle - Music live coding in Yaml

The next release will be dedicated to make the graph editable and allow to switch between yaml and node editor. :rocket:

Don't hesitate to leave feedback.
Happy coding! :slightly_smiling_face:

Some other graph improvements:

  • box width is now defined dynamically, resulting in a lighter graph and allowing to display much more content in the boxes
  • added a semi-transparent background in groups for a better understanding of their scope (the gap between chained functions was a bit disturbing)
  • values are now aligned to the left of wider function name of the group
  • improved highlighting

What is you thoughts? :slight_smile:

Is there a REPL mode for jaffle? Something that can parse jaffle input and play it?
If not, I propose there to be one. I'm looking into integrating jaffle in Verso - parsing YAML is really simple and they could compliment each other quite nicely for loop/part based performance.

Not sure if I understand the question but there is a play button to play the jaffle code.

In the next release it will be possible to directly play the graph.

What is Verso ?

I suggest to wait that Jaffle becomes more mature before integrating it in other projects. For now it's still on development and API-breaks are expected even on minor version updates. But I'm curious what you plan to do. :slight_smile:

Verso is a hobby project of mine - an "ableton live" for code basically. Meant to work with multiple languages. Jaffle seems super easy to integrate since it build on YAML, hence the excitement :grin:

2 Likes

Ok now I published the release 0.4, the project is a bit more stable and I think you can start to use it in Verso. I'm pretty curious to see what you are going to do with this. :slight_smile:

Don't hesitate if you have questions or need some help.

1 Like

Hello everyone :wave:

When I started this topic a few weeks ago, Jaffle was an experiment on a transpiler than can produce Strudel code from a yaml document.

This project evolved a lot since then, and it is now an hybrid node/yaml editor that allows to compose algorithmic music easily, without writing a single line of code.

There are now three tabs: node editor, yaml editor and JavaScript editor, and you can switch from one to an other at any time. This new node editor can be entirely used using the keyboard, just like any text editor (a list of keyboard shortcuts can be displayed via the menu).

This project now looks like to what I had in mind when I started to work on it. This means that from now on, I will spend more time to fix and improve existing things instead of adding new features.

I also consider that Jaffle is now in beta version, and so... needs beta testers ! Therefore, your feedback is more than welcome now to improve this project!

I hope you will appreciate it. Happy coding! :slight_smile:

Try it here :point_right: Jaffle - Music live coding made easy

Node editor:

Yaml editor:

4 Likes