Music Language: Strudel

Sort of interesting, a bit different from CSound:

https://strudel.cc/

Getting Started 🌀 Strudel

Looks a bit more dialect-y, e.g. the default example has:

[bd <hh oh>]*2

What that means (if you hit play) is that it is a length 2 pattern. The first time through, it plays:

[bd hh]  ; bass drum, high hat

The second time through it plays:

[bd oh]  ; bass drum, open high hat

A Rebol version of such a thing would be oriented differently... to get a value-add you'd want to use lists instead of a TAG! for your alternates so you get proper automatic structure, and then perhaps a CHAIN! or PATH! to give a repeat count if you didn't want a space:

[bd {hh oh}] * 2

[bd {hh oh}]:2

What Could A Rebol Approach Buy You?

To get anything you would have to be doing things like driving it with PARSE, leveraging binding so you can define subpatterns, being able to COMPOSE the code.

bd: #tr909_bd
hh: #tr909_hh
oh: #tr909_oh
[bd {hh oh}]:2

or:

use tr909  ; inject definitions in binding environment for bd/hh/oh/etc....
[bd {hh oh}]:2

(Compare with their version as: s("[bd <hh oh>]*2").bank("tr909") ...)

To get the value you have to be thinking this way and using what the system offers.

Given how things are going, these questions of "can you make Rebol a meaningful tool for this application" will probably wind up being puzzle challenges for AI, I think. :man_shrugging:

1 Like

That’s what I thought too. Looks like potentially a fun case for reparameterization-by-dialect.

1 Like

Worth noting that the Strudel (and its pattern language) is a direct descendant of Haskell’s TidalCycles.

2 Likes

The Haskell version seems saner, though the immediate feedback in the web interface is nice. Unfortunate they made a new syntax. :face_with_diagonal_mouth:

Programming/sound stuff is interesting to me but despite doing both I have never really been drawn to the "code" interfaces. This seems closer to something I might use though....

Renoise in Ren-C :eye::open_book::writing_hand: ?

:thinking:..Do you know about this venerable tree of ideas code and computer music at IRCAM in Paris:

OpenMusic (OM)

and its successor:
OM-sharp (OM#)

/// OM# (om-sharp) is a computer-assisted composition environment derived from OpenMusic: a visual programming language dedicated to musical structure generation and processing. The environment is based on Common Lisp, and allows creating programs that are interpreted in this language. Visual programs are made by assembling and connecting icons (“boxes”) representing Lisp functions and data structures, built-in control structures (e.g. loops), and other program constructs. The visual language can be used for general-purpose programming, and reuse any existing Common Lisp code. A set of built-in tools, editors, and libraries (including common music notation, MIDI, 2D/3D curves, audio…) make it a powerful environment for music composition.

(2017)///
Released in the late 90s and successor of the Patchwork visual programming environment [3], OpenMusic (OM) is today a widespread and common element of the contem-porary music composers’ toolbox.OM can be considered a graphical front-end of the Common Lisp programming language [4], extended with musical functionalities and data structures.
1 Initially dedicated to the processing of sym-bolic musical material (musical scores), it is now operating in a broad range of areas such as sound processing and syn-thesis, spatial audio, mathematical music theory, and others.
A fairly developed and active user community lives within user groups and institutional contexts worldwide.

bon voyage!

I'm guessing IRCAM might really like Ren-C creative path

// Research Projects