Skip to content

An enhanced live coding performances app created for the project course of "Creative Programming and Computing" in the MSc in Music and Acoustic Engineering - 2020 CPAC Hackathon @ PoliMi

License

Notifications You must be signed in to change notification settings

antonelse/co2des

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

co²des

co²des is an environment for enhanced live coding performances. It can be considered as an interactive artistic installation in which the most important part is the audience. It is based on the concept of making the people able to interact with the system so that they are active part of the creative process. The live coder executes some code to generate the music leaving some parameter free, they are filled thanks to the user interactions. The interaction is made through a web app and sent to the system. The people are able to see the result in a visual, better if projected on a big screen, and obviously listening to the changes in the sound.

Features

  • Automatic visual generation The resulting visual is completely generated by the attendants. Every user interaction contributes to generate new elements of the visual, based on the chosen category of parameters. The elements interact with each other to create more complex shapes and sometimes even novel elements.

  • Evolutionary system to change the executed code When user generated features interact with each other they can make the system evolve and generate new elements which will effectively change some parameters in the code executed by the live coder.

  • Immediate and easy to use Web App Every attendant can easily interact with the performance simply by connecting to a web app deployed on PythonAnywhere - link

  • Chat-style user interaction visualization Every message sent by the participants will be visualized in a chat-style fashion, showing the usernames, the parameters they have chosen and the values they would like to assign.

  • Live coder executed code block visualization One of the principles of live coding is "showing the code", so every code block executed by the coder will be clearly visualized in a defined part of the screen.

Prerequisites

This app is based on different software. To use the entire functionalities you have to install the following software:

Processing Dependencies

Before running the Processing script, you have to install these libraries:

How To

Configure the machine

Configure the Atom text editor

From the coder side, the full app functionalities were tested using the Atom text editor. To code in TidalCycles you need to install the official package for Atom. To use the full functionality, we had to "hack" the package. In specific we have modified the repl.js file.
On macOs /Users/[USERNAME]/.atom/packages/tidalcycles/lib/repl.js
On Win C:/Users/[USERNAME]/.atom/packages/tidalcycles/lib/repl.js

You have to substitute this file with the one provided by us in the ./live coding/atom folder, and modify the IP Address with the one showed on the Processing console.

For example, if the Processing console is like this

### [2021/2/3 10:52:16] INFO @ OscP5 is running. you (192.168.1.224) are listening @ port 9000

the only thing you have to do is to copy this IP Address from Processing to the repl.js file.
After this change, this file will look like this (line 138):

this.myUdp.send(buf, 0, buf.length, 9000, "192.168.1.224");

After this operation you have to close and reopen the Atom editor.
NOTE. The IP Address (i.e.192.168.1.224) has to be the same.

For more info, read the related README.txt in each sub-folder.

Live coding session

Before starting the session, you have to do some preliminary operation inside the configuration.tidal file. After that, you can try the system by executing some lines inside the live_session.tidal file.
You can find these files inside our ./livecoding/tidalcycles folder.

Known Issue

  • macOs microphone permission - link

  • superCollider "late" messages - link

Example Use

VIDEO DEMO - YouTube

An example of a single user interaction:

An example of multiple users interactions with child generation:

Hack The System

  • change the screen size - default: 1550x1000
  • different parameter mapping - see the configuration.tidal file
  • code with your own samples - here
  • Change the audio input - default: Internal Microphone

Authors

Antonio Giganti - GitHub
Carlo Pulvirenti - GitHub
Lorenzo Talone - GitHub

License

This project is licensed under the GNU General Public License v3 - see LICENSE.txt for details.

co²des
Copyright© 2021, Antonio Giganti, Carlo Pulvirenti & Lorenzo Talone.

Useful Links

About

An enhanced live coding performances app created for the project course of "Creative Programming and Computing" in the MSc in Music and Acoustic Engineering - 2020 CPAC Hackathon @ PoliMi

Topics

Resources

License

Stars

Watchers

Forks

Languages