[Csnd] New cloud-music pieces

I have posted to https://gogins.github.io/cloud-music/ one more finished piece, and a number of unfinished or experimental pieces. These are interesting because they integrate my algorithmic composition CsoundAC, or at least the Chords and Scales from CsoundAC, into the Strudel live coding environment, which is embedded in these pieces. See in particular https://gogins.github.io/cloud-music/scale_example_4.html.

For those who have not yet seen these, cloud-music is a GitHub repository (https://github.com/gogins/cloud-music) that acts as a Web site hosting these pieces, which use WebAssembly builds of Csound and CsoundAC, along with many JavaScript libraries and HTML. The pieces will run on all current browsers and even on powerful smartphones. The pieces are designed to run indefinitely. The user may be able to control some aspects of the pieces.

It’s also possible to fork the repository and use your local clone of that fork to develop your own pieces. There are no external dependendencies, all libraries and other dependencies are statically served.

In other words, fork the repo and you have a complete working installation of Csound and CsoundAC.

Best,
Mike

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

“View source” is not dead! Makes me very happy.

This is great. I think more should be made out of the combination of tools and its potential for others to use. CDM should know about this.
When you google strudel you only see tone.js and supercollider mentioned. What you are doing here looks much better.

Prof. Victor Lazzarini
Maynooth University
Ireland

Michael,
Thanks for these inspiring pieces of music, and pieces of code. It is an impressive system and lends itself to hours of study.
I would like to understand it better. Is the composition fully defined by the code in strudel-repl, or are there other sections of the html file that also defines each composition? I do not fully understand how strudel and CsoundAC are connected.

Thanks again
All best
Øyvind

man. 16. jan. 2023 kl. 23:35 skrev Michael Gogins <michael.gogins@gmail.com>:

I have posted to https://gogins.github.io/cloud-music/ one more finished piece, and a number of unfinished or experimental pieces. These are interesting because they integrate my algorithmic composition CsoundAC, or at least the Chords and Scales from CsoundAC, into the Strudel live coding environment, which is embedded in these pieces. See in particular https://gogins.github.io/cloud-music/scale_example_4.html.

For those who have not yet seen these, cloud-music is a GitHub repository (https://github.com/gogins/cloud-music) that acts as a Web site hosting these pieces, which use WebAssembly builds of Csound and CsoundAC, along with many JavaScript libraries and HTML. The pieces will run on all current browsers and even on powerful smartphones. The pieces are designed to run indefinitely. The user may be able to control some aspects of the pieces.

It’s also possible to fork the repository and use your local clone of that fork to develop your own pieces. There are no external dependendencies, all libraries and other dependencies are statically served.

In other words, fork the repo and you have a complete working installation of Csound and CsoundAC.

Best,
Mike


Michael Gogins
Irreducible Productions
http://michaelgogins.tumblr.com
Michael dot Gogins at gmail dot com

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Thanks! What is CDM?

Regards,
Mike

Nice music!

there’s an annoying padding that can be fixed with adding these css rules

.w3-container {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.w3-bar {
z-index: 1;
}

I can also suggest adding this to body to prevent overscrolling on osx

body {
overscroll-behavior-y: none;
overscroll-behavior-x: none;
}

Thanks, I’ll try that.

Regards,
Mike

these are pretty amazing. i'll look through the code when i'm less tired, but these are hitting this morning back to work meditations.

k.

Thanks again, your styles fixed the redundant scroll bar on the left.

Regards,
Mike

These are great, thank you for sharing.

Scott

Thanks for your appreciation!

I can’t remember if I responded to your email before. Anyway, this particular piece is fully defined by the code in strudel-repl. But it would be possible to use other code in other places in the html file to generate notes at the same time.

There are two aspects to my use of Strudel.

First, Strudel now has defined a “csound” output as well as a slightly different “csoundm” output. These are now part of Strudel’s main branch. If a Web page already contains a csound object, then Strudel uses that (this is what my pieces do). Otherwise, Strudel goes ahead and creates its own embedded instance of Csound. This csound package was created by Felix Roos, one of the main programmers of Strudel, at my suggestion and with my assistance.

Second, I have created two addons to Strudel. These are not in Strudel’s repository, they are in my cloud-music repository. And one reason for that is I don’t know how to make CsoundAC into a proper npm package, since it is essentially C++ code that is compiled to WebAssembly.

My first addon is the HTML repl component, which I have made scriptable so that the JavaScript code that starts and stops Csound can start and stop the Strudel repl as well.

My second addon is the csoundac module. This is maintained in my cloud-music repository outside of Strudel but copied into the Strudel packages before Strudel is built. This module exports all the Chord and Scale functions that the scale example pieces use. My repl component just imports this csoundac module just as it imports all the regular Strudel modules.

It might also be helpful to understand how notes work in Strudel. There are two layers of meaning for a “note”. There is the Pattern level. Each Pattern is implicitly a cyclic function of time, which can have a pitch value (or other values) at any phase of the cycle. The csoundac module works on these pitch values by conforming them to a pattern of scales and/or chords. And then there is the output level. At the output level, the Pattern pitch becomes a note that is sent to an actual audio output which can be Tone.js, WebDirt, or Csound.

Because these two layers of meaning for “pitch” or “note” are not necessarily congruent, at times, one sees the piano roll display jump from one set of notes to another without that being audible. This reflects the pitches of the Patterns being changed by the csoundac module, but the pitches are not yet sent as actual sounding notes to an output.

Hope this helps,
Mike