Code Monkey home page Code Monkey logo

roomtone's Introduction

Roomtone

Project Description

Roomtone is an interactive sound installation exploring the relationship between sound, time, and physical space. It was directly inspired by Alvan Lucier's I am Sitting in a Room, Steve Reich's Pendulum Music, and leans heavily on the “Light and Space” movement pioneered by artists such as Robert Irwin and James Turrell.

The piece is comprised of 4 loudspeakers, a microphone, and software. The speakers, positioned in the corners of the space, are driven by the microphone placed in the centre. Because of the co-location of these elements a feedback loop is created. The software driving the installation, written in Max/MSP, mediates this feedback to create a relationship between the microphone, speakers, room, and any active sound elements.

The result is a system in which any sound made within the space is captured, repeated, and layered. And, each time the sound is repeated, it is filtered by the room. Over time, the space fills with more and more sound, moving towards some fundamental pitches reinforced by the filtering of the room. Eventually, once a maximum amplitude is reached, the piece returns to silence, reconfigures some parameters, and restarts. With each iteration the piece will move towards the same roomtone but the sonic journey to this space will be unique. The result of this process is a soundscape which encompasses the whole space, uniquely generated with layered sounds created by anyone who participates in the space.

While this piece specifically focuses on sound, the visual elements of the piece are important. The speakers and microphone are not hidden from the viewer. Audio cables are routed as neatly as possible to ensure the viewer is not distracted.

The piece is an exploration of minimal interactivity. Specifically, the creation of a system which responds to user input but does not have a pre-coded one-to-one relationship between action/reaction. To put it another way, this piece responds to sonic input but is not programmed with a predefined set of responses. Every sound in the space enters and modifies, creating a new experience with every iteration.

This work exists at the intersection of the ephemeral and the tangible: hardware and software, ideas/feelings and people. At this intersection is a space where people can explore new relationships between themselves, technology and, others. And, most importantly, in this space people can play.

Configuration

Because of the effect of the location--the room--on the piece, this is a site specific installation. Several parameters are set by the artist to ensure the piece functions as expected. The nature of the piece makes the specific hardware (speakers, microphone, computer, and sound card) relatively unimportant given proper configuration.

While an onsite visit is ideal, the code has been configured to have the necessary parameters easily adjustable with little technical knowledge.

Assuming the easily stolen items (computer and soundcard) are placed in an inaccessible area, the piece can be easily protected with a single person holding watch over the gallery. Generally the speakers are too heavy and the microphone too high up to steal.

Previous Installs

Documentation

Videos can be found here

roomtone's People

Contributors

sabjorn avatar

Stargazers

Brennan Mackay avatar

Watchers

James Cloos avatar  avatar  avatar

roomtone's Issues

new Rust config.yaml format

serde-yaml is used to automatically handle the conversion of a YAML file to a Rust struct. However, this does mean that the formatting for the YAML file should match how Rust expect variables, for example:

overloadThresh: <some value> -> overload_thresh: <some value>

additionally, the way "channels" were being handled in the YAML is weird because YAML allows for arrays. This should lead to the ability to remove the "global" (and actually roomtone) headers...

finally, once this stuff is done, all previous YAML files should be pulled from the git history, placed in a new directory and converted to match the new config style.

Delay Calculations can be simplified

currently there is a config parameter: baseDelayInterval
This is multiplied by each channel's interval which is then multiplied by the randomly generated base delay.

This could be made easier by having the interval parameter just set a division (1/interval) of the randomly generated base delay. This way, the base delay parameters (baseDelayMin and baseDelayMax) can be used to directly set the range (without an intermediate multiplication).

Cutoff Measurement Should be RMS

Currently, the instantaneous peak is used for the cutoff. This is problematic because when people clap, shout, or make any sound with a sharp transient, it can cause the installation to stop prematurely.

Level meter should be changed to RMS with a long attack time.

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.