Celeste Betancur

CCRMA web page

Week 1

I made music using traditional instruments, and also the computer as an instrument, for that, I use live coding tools and technics. When I get to this point I started doing audiovisual performances and also networking ensambles.

Now, I am working on extending the chuck language for different purposes like: Make music using western scales and chords - CHmUsiCK

DJ using chuck as a fullstack platform: ChuckDJ

Webchuck features: Webchuck IDE

Week 2

Colaborative live coding audiovisual environment for WebchucK

Estuary Estuary Troop

For this week the ChucK team is having a hackathon that will (I hope) help me do some improvements on other tools and helper classes that I need.

Week 3

Full integration of Xml reader and Parser into ChucK core

Xml is a fully functional class inside chuck-code that allow the user to load a musicXML file (exported from any graphical notation software) and play it using a UGen from ChucK. This will be the way to control the whole performance (Notated part).

Xml xml;

xml.open(me.dir() + "Daisy.xml");


xml.getNumTags("measure") => int measures;

string musicXML[0][0];

for(int i; i < measures; i++){

xml.getNumTags("note") => int notes;

for(int j; j < notes; j++){
xml.getIntValue("duration",0,0) => int duration;
xml.getIntValue("pitch:octave",0,0) => int octave;
xml.getStringValue("pitch:step","R",0) => string step;
xml.getIntValue("pitch:alter",0,0) => int alter;
[step, Std.itoa(alter), Std.itoa(octave), Std.itoa(duration)] @=> string temp[];
musicXML << temp;

Week 4

Database connected and working - the logic not yet


I integrated the Firebase database to the webchuckIDE and it is working but there is a lot of issues that I need to solve in the logic side and also in the GUI side. because putting a lot of performers together in the same window has a lot complications. My plan is to start with 2 performers and try to integrate both codes.

Week 5

Database connected and working - the logic works


1. Xml already parses single voice scores but now also multiple voices at a time. The API can access tags and attributes, both with all ChucK types: int, float and strings.

2. The logic for the collab now works in real time so, my next step is to integrate webChuck in a to editor setup.

Week 6

Fully integration of DB and webchuck


This week was very exciting because the functionality worked great and now both, real time Database and webchuck are working and executing simultaneously in at least 100 devices.
I made some tests with a smaller scale setup (about 15 devices) and it was great to listen to 15 devices executing the same code and changing at the same time (not syncronized) by just connecting into a web page.

Week 7 and 8

Meetings to set up the performance


Finally the tool is working and ready for some action, so this two weeks I am going to focus and the final presentation which includes a live streaming from the university in Colombia and the system running from Stanford, I will be playing with the tool and I home yhe audience here can see the results in their own devices and also in the streaming.
It is hard to cordinate the date and time with such a big group of people but let's see what happens.

Week 9

A second performance happening during SlorK concert

Site for the Slork performance / Orchestra
Site for the Slork performance / Audience

This week I am setting up the app because another performace is going to happen, this time, the Stanford laptop orchestra is going to be live coded using my system and the plan is also to include the audience in the performance. I deployed two different sites (one for the orchestra and one for the audience) and we are going to test it during the concert in Bing concert hall.

Week 10

Two performances

1. Live streaming and live coding sessions sharing code between Colombia ITM and Stanford University, the link here This is going to be live in a screen located in the third floor of CCRMA.
2. Bing Concert Hall (June 10th), -update on this- In total 124 devices were connected to the system as read in the database report.