GithubHelp home page GithubHelp logo

antonelse / co2des Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 17.37 MB

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

Home Page: https://wemakethings.pythonanywhere.com/static/index.html

License: Other

Processing 0.14% Python 0.06% HTML 0.03% JavaScript 99.67% CSS 0.09% SuperCollider 0.02%
visual livecoding art performance creative-coding creative-programming interaction algorave evolutionary-system

co2des's Introduction

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

co2des's People

Contributors

antonelse avatar carlopulv avatar loretalone avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.