Strudel is a JavaScript port of TidalCycles (Haskell). While TC uses SuperCollider for the synthesis, Strudel uses superdough which seems to be a custom implementation. I'm currently learning SuperCollider sclang and waiting for a version upgrade to have a reason to submit it here - usually some of the discussion is quite insightful. Anyway sclang is the PHP of music - just uglier and less consistent. But it's also powerful and and quite fun.
I don't know what half this stuff does but it was still so much fun and this is probably one of my favorite projects ever. What made it most fun for me is that the reference docs are in the page so it's really easy to pick something at random and just see what it does.
This is cool because a lot of the current tools are a bit old and I feel a bit like they suffer from NIH (not invented here) syndrome, where what is actually needed is for things to just be in javascript.
This wasn’t possible as much when the last gen of tools came out (sonic pi etc) but I think the time is right.
The next iteration that would be cool is a true two-way interface between the visualizations and the code. Right now the slider is a really awesome element, for example. I think Bret Victor would be proud.
There are some pretty amazing live coding sessions of Strudel on YouTube. Some examples:
https://www.youtube.com/watch?v=HkgV_-nJOuE
https://www.youtube.com/watch?v=HkgV_-nJOuE
This was one of my favorites -- with the voice filter the narration feels like it's part of the song which I found especially fun.
https://www.youtube.com/watch?v=GWXCCBsOMSg
That channel has been all over my recommendations, it's awesome so much skill!
Switch Angel is awesome. She also has some Instagram tutorials.
Dj Dave is the other creator I've found doing strudel content.
https://youtu.be/E1K6Sv-oIb0
You accidentally pasted the same link twice. What was the second link meant to be? Would like to see it also :)
Strudel is a JavaScript port of TidalCycles (Haskell). While TC uses SuperCollider for the synthesis, Strudel uses superdough which seems to be a custom implementation. I'm currently learning SuperCollider sclang and waiting for a version upgrade to have a reason to submit it here - usually some of the discussion is quite insightful. Anyway sclang is the PHP of music - just uglier and less consistent. But it's also powerful and and quite fun.
I'm not very musically inclined but this is what I was able to make:
$: arrange( [4, "<sh09_bd>(4,8)"], [4, "<sh09_bd>(4,8)"], [1, "<sh09_bd mfb512_sd>(6,6)"] ).s().fast(2).layer(x=>x.add("0,2")).gain(".4!2 .5").phaser(2).phasercenter("<4000 800 4000 4000>")
$: s("gm_tinkle_bell").distort("<1 2 1 2:.5>").crush("<8 8 8 6 6 8 8>").chop(4)
$: arrange( [2, "<c4 e4 g4>(3,8)"], [1, "<f4 a4 c5>(3,8)"], [1, "<c4 e4 g4>(3,8)"] ).note().chop(4).fast(4).distort("<3:.5>").phaser(4).phasercenter("<800>").fm(4).fmdecay("<.05 .05 .1 .2>").fmsustain(.4)._scope()
I don't know what half this stuff does but it was still so much fun and this is probably one of my favorite projects ever. What made it most fun for me is that the reference docs are in the page so it's really easy to pick something at random and just see what it does.
This is cool because a lot of the current tools are a bit old and I feel a bit like they suffer from NIH (not invented here) syndrome, where what is actually needed is for things to just be in javascript.
This wasn’t possible as much when the last gen of tools came out (sonic pi etc) but I think the time is right.
The next iteration that would be cool is a true two-way interface between the visualizations and the code. Right now the slider is a really awesome element, for example. I think Bret Victor would be proud.