Giter Club home page Giter Club logo

citymadness's Introduction

SOLI VAGANT

INTRODUCTION

Project developed for the course "Creative Programming and Computing", held in the Master degree of Music and Acoustic Engineering, based in Politecnico di Milano. The project aims at providing to the user a different way to explore a city map, using visual and sound feedbacks to guide it towards interesting points of the city

Aim of the project

The Soli Vagant artistic installation aims to create an interactive experience based on features retrieved from real city data. These features combined with an user's input (where they want to go) create a multimodal artistic representation of the city. The project is divided in two main parts: the visual feedback which is a particle system where all the particles move as independent agents following the paths imposed by the city's streets and the path followed by the user. On regards the installation's sound design, the data sonification pursues to associate a chord progression to the user's path choices through an L-System. The soundscape gives to the user hints on how close it is to an interest point of the city, the closer it get, the clearer the soundscape becomes.

Introduction Video

Watch the video

Get started

In order to start the experience:

  1. Download the git repository
  2. Open the file named with sounscape.scd in SuperCollider.
  3. Run the python server running the command python mdp.py
  4. Run the supercolider client code pressing Ctrl + Enter.
  5. Run the processing code loading mdp.pde and run the visual system.
  6. Explore the city

Visual feedback

The map evolves and reveals as the user explores the city. To this end, there are multiple layers of visualization

  • Chaotic particles: Based on a Perlin noise, used to represent the absence of knowledge about a new place.
  • Path particles: Retrieving from a geoJSON file, the particles are constraint to follow the paths near the user's location
  • Wandering particles:

As the user explores, new/interest places are suggested for him to go. This interest points allow the user to develop a large-scale knowledge of the city.

Path finding algorithm

The interest points suggestion is based on a Markov Decision Process framework, which aims to maximize a reward to the end of path finding optimization. Basically, the MDP framework solves the equations and then gives every possible path to a certain point in the map.

Audio Generation

Audio generation is implemented in supercollider. It is composed of two main layers of sound design. The first one is a composition of different soundscapes recorded around different zones of the city and played through a granular synthesizer which allows to control the ratio between distorted granular sound original environment sound. The second layer is a music syntesizer which generates arpeggios based on chords sent by the python backend Python server. The chords are generated by a lindenmayer system which associates the direction (NN NW WW SW SS SE EE NE) to which the user points to a vocabulary which allows to compute grades and timing of the chords then fed to supercollider. The chords are then translated in midi notes scheduled by python and then sent to SuperCollider.

Presentation files

More information about the implementation of the project are available on the slides uploaded and used as aid during the final presentation of the project Creative Programming and Technology.

Group members

References

[1] GAYE, Lalya; MAZÉ, Ramia; HOLMQUIST, Lars Erik. Sonic City: the urban environment as a musical interface. In: NIME. 2003. p. 109-115.
[2] MASON, Stephanie; SAFFLE, Michael. L-Systems, melodies and musical structure. Leonardo Music Journal, 1994, 31-38.

citymadness's People

Contributors

pos17 avatar fonzius avatar juancaudio20 avatar alejandromjr 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.