Skip to content

gogins/gogins.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<script> if ('caches' in window) { caches.keys().then(function(names) { for (let name of names) caches.delete(name); console.log(`deleted ${name} from caches.`); }); } </script>

cloud-music

Computer music in the cloud by Michael Gogins

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

This is real music. But it is not a streaming recording. It is not performed in a concert. These pieces are Web pages that are loaded from my Web server and run in your browser -- in any standard Web browser, including mobile devices (at least, if they are powerful enough).

Each piece will play indefinitely. There may or may not be animated visuals along with the music. The listener may or may not be able to customize the piece -- perhaps quite a bit, amounting to a new piece, co-composed with me.

The underlying technology is my WebAssembly build of Csound with CsoundAC. Some pieces use third party libraries, especially Strudel, a JavaScript port of the live coding system Tidal Cycles.

  • A Csound Player that will play, and let you edit, any Csound piece that you paste into the text area.

  • Message from Another Planet, a Csound piece with a basic HTML user interface.

  • Strudel REPL, exactly the same as the main Strudel Web site.

  • Trichord Space, an interactive piece that displays Dmitri Tymoczko's chord space for trichords, with the ability to perform, hear, and visualize various operations on the chords in the space.

  • Scrims, a JavaScript piece that samples an animated WebGL hopalong fractal to obtain notes that are then harmonized using CsoundAC's chord space operations.

For more information on the following pieces, read the About page in the piece itself.

Experiments

I am working on supporting the use of CsoundAC in the Strudel REPL. The most important thing is to import the csoundac.mjs module in your Strudel patch. To see how this is done, look at the following pieces. At the present time, these are also the unit tests fr csoundac.mjs. Comments and suggestions are wecome.

cloud-music as a Studio and/or Development Environment

I have designed this repository not only to present some of my compositions, but also to serve as a development environment/computer music studio for working with Csound, algorithmic composition, and live coding in a completely platform-independent way.

All software used here is JavaScript, WebAssembly, or HTML. All third party dependencies are contained in this repository as static files.

To use cloud-music, fork cloud-music on GitHub and clone your fork on your own computer. You can also just download the latest cloud-music release as a zip file and unzip it on your computer.

This is actually the easiest way to install a usable version of Csound on your computer.

Writing New Compositions

There is no need to build or configure anything. In a terminal, simply change to your cloud-music directory and run python3 -m http.server. Then you can use your Web browser to go to http://localhost:8000, where you can view and run any of these compositions in your browser.

To create a new composition, simply create a new HTML file. You can copy one of my existing pieces as a template and modify it, or you can create a new HTML file from scratch.

Important note! If you are simply using cloud-music to write pieces, write them in the dist directory. However, if you are going to build cloud-music yourself, for example to keep up with new releases of Strudel, then write your pieces in the public directory, and build cloud-music.

Although cloud-music renders audio only in real time, it is easy to use an audio loopback driver to route audio from the system output to an audio recorder and save the recording as a soundfile. On my MacBook Pro, I have been able to use BlackHole to route audio from cloud-music pices to Audacity.

Writing New Software

Because algorithmic compositions are generally also software, the line between compositions and other software can become blurred. However, it is often the case that a composer will write new software as libraries or other resources to support a number of their musical compositions.

To develop this kind of software in your fork of cloud-music, keep in mind that the cloud-music project uses pnpm, which of course must first be installed.

If you just want to work in the context of a Web site created in your fork of cloud-music, then just writing static code in the public directory would be fine, and by far the easiest.

Otherwise, take a look at README.md and at the build system files such as package.json.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published