Live data from Hacker News

Learning music with Strudel

terryds.notion.site

81–90 of 139 posts

Re: Learning music with Strudel

#86
Love Strudel, trying to learn it but inevitably you also need some musical foundation. It's a fascinating blend of specialties. Also I found AI is complete garbage at generating Strudel. Here is my weak attempt at Beethoven:

const SCALE = 'C#:minor'
const CPM = 56
const SOUND = 'piano'

$: arrange( [4, n(".25")], [4, n(".25")],

  [2, n("*.5")],
  [2, n("*.5")],
  
  [4, n("*.5")],
  
  [4, n("*.25")],
  [4, n("*.25")],
  
  [2, n("*.5")],
  [2, n("*.5")],
  
  [4, n("*.5")],
  
  [4, n("*.25")],
).sound(SOUND) .scale(SCALE) .cpm(CPM);

$: arrange( [8, n("4 7 9")],

  [2, n("5 7 9")], 
  [2, n("5 8b 10")],
  
  [1, n("4*.1 6# 10")], 
  [1, n("4 7 9")],
  [1, n("4 7 8")], 
  [1, n("3 6# 8")],
  
  [1, n("0 2 5")],
  [2, n("2 7 9")],
  [1, n("2 7 9, 11 - - 11")],
  
  [1, n("2 8 10, 11 -")],
  [2, n("2 8 10")],
  [1, n("2 8 10, 11 - - 11")],

  [1, n("2 7 9, 11 -")],
  [1, n("2 7 9")],
  [1, n("1 7 10, 12 - -")],
  [1, n("1 7 10")],

  [1, n("2 4 9, 11 - -")],
  [1, n("2 4 9")],
  [1, n("3 4 8, 10 - -")],
  [1, n("3 4 8, 13 - -")],

  [1, n("2 4 9, 9 -")],
  [3, n("2 4 9")],
).sound(SOUND) .scale(SCALE) .cpm(CPM);

Re: Learning music with Strudel

#87
I've been following this project with great interest.

Quite possibly one of the most interesting things is just how competent the REPL is. It does some things that no other programming environment does in a prompt, all centered around real-time processing:

- All code in the prompt is being constantly evaluated - What parts of expressions are currently in use are highlighted - Visualization widgets sit side-by-side with the code

That last one is playfully rendered as pseudo-TUI "graphics", but is also presented with no borders or chrome around it. That's in sharp contrast to notebooks like Jypyter or Mathematica. They use minimal screen real-estate which also minimizes scrolling. If you look at videos of using this live, the ability to navigate the REPL quickly is crucial for performances.

So it's a lot like a kind of step-wise debugger, only more minimalist and moving at the (slow) speed of the music.

Ever since seeing Strudel, I've wondered what various programming sandboxes would be like if they could visually demonstrate operations in slow-motion.

Re: Learning music with Strudel

#88
post #60

I've been seeing a few links to Strudel recently so I went digging to see how old the project is - looks like it launched in April 2022 https://loophole-letters.vercel.app/strudel It came out of the same team as Tidal Cycles, a Haskell live-coding music tool which was first released around 2009. https://tidalcycles.org/docs/around_tidal/tidal_history/

IIRC, that team are also (now) live-music-coding veterans, which in turn has informed how Strudel is built. It's not just a project that does stuff, it's a pretty well crafted instrument that is ideal for these performances.

As an engineer, I love letting the requirements shape the solution, but this is just on a whole other level.

Re: Learning music with Strudel

#90
True that compared to FoxDot, Sardine or Tidal, the syntax and visualization are just making the whole thing a real pleasure to use.

But this is way too taxing for my linux boxes that are ending stuttering quite badly sometimes. Are you all using macs or something?

Post reply on HN