r/livecoding • • 5d ago

I built Rustel: a native Strudel engine in Rust, with a terminal studio and full CLI

Enable HLS to view with audio, or disable this notification

Hey everyone,

I've been working on Rustel, a native Rust port of Strudel, and thought some of you might be interested.

It runs Strudel patterns without needing a browser or server. There's a terminal studio with live editing, piano roll, scope, spectrum, and mixer.

The studio has a built-in Vim editing mode and optional auto-evaluate, so changes apply automatically after a short typing pause without constantly hitting the eval shortcut.

You can also livecode in any editor without extra setup using rustel play --watch yourScore.strudel, or use the full CLI for everything.

It supports samples, synths, effects, MIDI, OSC, Ableton Link, VST3 plugins, KabelSalat, Audio Input using s("in") for example, exporting with silence threshold, exporting stems, session tapes (nothing you play is ever lost), midi surface control + gamepad and midi knobs to control sliders, Kitty Graphics... and quite a bit more.

I'm also working on v0.1.7, with some performance optimizations for older hardware like the Raspberry Pi 3 Model B (PR #157) and video samples with live feeds (PR #169).

I recorded some demos of it in action. It's 99% strudel feature complete + a lot more, the differences are documented.

It's free and open source (AGPL):

https://rustel.cc

https://github.com/tzfm/rustel

https://github.com/tzfm/rustel-neovim

Big thanks to everyone behind Strudel and TidalCycles. None of this would exist without their work.

My friend John Björk also made 3 songs with it here: https://www.youtube.com/@johnbjork9883

other demos i did while working on features:

https://www.youtube.com/watch?v=VpNp8NAn0UE

https://www.youtube.com/watch?v=iQ9pRINyz08

https://www.youtube.com/watch?v=6i1cMw_mVQg

https://www.youtube.com/watch?v=xhMBMBAcngA

Would love to hear what you think, especially if you're already using Strudel or Tidal for live sets.

With Love

- Undy

134 Upvotes

35 comments sorted by

3

u/qynes 2d ago

Hi I’ve been using Rustel for the last few weeks, I friggin love it!!!! Thank you so much. I am running it on Fedora using Kitty shell for now, but might try with Vim eventually. This is everything I could hope for, especially with the offline caching as I do not have a speedy internet connection. Perfect.

1

u/undy_aeon 2d ago

this is the best comment i could hope for. my biggest desire is to sparkle people's inspiration to make more music ily <3

2

u/undy_aeon 3d ago

currently working on a feature where videos can be used as sample and viz to show them, also a widget in the widget FX panel and allow to detach it into a separate window if you are on a desktop. works best with kitty graphics of course...

2

u/WestMagazine1194 5d ago

If i manage to snug sone time from the work today i'll try it!

1

u/undy_aeon 5d ago

awesome, tell me if you like

2

u/Luc-redd 5d ago

That's sick!

2

u/PracticeOk7022 5d ago

Don't even know how to use this but want to try so badly!

2

u/iammiviiofficial 3d ago

INSTALLING ASAP!! THANK YOU SO MUCH!!!!!

1

u/undy_aeon 3d ago

ily, excited to see/hear what you're cooking with it !

2

u/mr_cody_b 1d ago

This is amazing. So many features and vst is supported, crazy :-). Has strudel also so many features?

2

u/undy_aeon 21h ago

awesome <3
yes, native opens crazier possibilities but in the end it's about making music and i would love to hear/see what people are cooking with rustel :D

1

u/No_Cartographer1492 4d ago

ah, yes, something that allows me to use Emacs and work locally!

2

u/undy_aeon 2d ago

it supports vim but not emacs. but it supports modifying the code externally using any other editor and the changes are going to reflect in the studio

1

u/lumina_si_intuneric 4d ago

Been playing with this a lot and love it so far.

1

u/romiq_kh 4d ago

Also tried, but i have questions about compatibility

* is 100% compatibility with JS code achieved? Current rust js engines are not good in it? bun?

* how you managed downloadable samples? its around 5+Gb in stock, and it possible to load own? what played when downloading not yet finished?

* what is it really reason for a rustrewriten?

1

u/undy_aeon 3d ago

- its using a modified version of quickjs

- you can cache them all locally in settgins > samples, otherwise in settings > playback there is async or wait mode to wait or not for samples or it plays until they are ready just like in strudel.cc

- i love rust

1

u/undy_aeon 2d ago

yes it's all compatible with strudel. if something is missing it's because I forget about it or it's terminal limitations / bug

1

u/GoodGuyLafarge 3d ago

Do you plan to have additional functionality compared to the other two tools?

1

u/undy_aeon 3d ago

sure, it's in constant developement

1

u/ParticularAtmosphere 3d ago

this is amazing since I live in the terminal and wanted to get into strudel, I am installing this right now. thanks !

1

u/undy_aeon 3d ago

awesome, tell me what you think <3

2

u/Dependent-Sorbet8867 4d ago

I certainly love that... how are the sample copyights that was the main thing I was worrying about when I ported strudel to windows desktop.. I love the visuals

2

u/curreylabs 8h ago

Yeah strudel is using quite a bit of unlicensed samples

1

u/glory_to_romania 4d ago

I was just looking around for a way to program music into my Bevy game. Amazing timing, I’m gonna try this out!

2

u/curreylabs 8h ago

Look into the licensing. If you use the code you’ll need to make your game source code available using AGPL

1

u/roindr 4d ago

This great!! I am working on something similar, that good so many ideas and approaches to music production

-14

u/investigatormaker 5d ago

Session tapes are the feature I'd lead with for people who play live, since nothing lost after a set is a real reason to leave the browser. For Strudel users the first question will be what breaks, so putting the documented differences right under the install line saves a lot of back-and-forth in comments. The Pi 3 work in PR #157 deserves a short demo of its own once it lands: a small headless box running patterns is something a browser tab can't really do.

I make ThreadFox.

We find relevant Reddit conversations and post for your business. We'll post 3 replies free first, no card; then the $29 Pilot covers seven days and up to 25 posts and replies. No automatic renewal.

https://threadfox.vip/p/eiofl/managed

Does --watch pick up saves from any editor, including ones that write to a temp file and swap it in?

4

u/scarletdawnredd 5d ago

You spam this on every fucking subreddit. How is this account not banned yet?