Unitary is a new media artwork and sound sculpture. The work highlights the process whereby media are able to translate abstract representations into lived/visceral/tangible experience. The immediacy of sound and it's physical nature serves to bring the virtual diagrams into non-abstracted perception.
How it works...
The work is realised using a projector, a loudspeaker, a computer running custom developed code (developed with Processing), multiple external code libraries and Ableton Live.
Through the use of Mountain Lion's built in IAC driver and Processing's "The MidiBus" library, the code receives a midi composition (sent from Ableton Live). Each note is respectively visualised as a symbolic representation (that signifies it's pitch, length, and velocity), projected onto the face of the loudspeaker. The note's are given a virtual mass and are added into a simulated physical system, they move intuitively across the face of the loudspeaker according to forces determined by the newtonian physical principles innate in the used Processing physics library "Traer Physics". When a note crosses the event horizon of the speaker cone towards which it is attracted, it begins to sound (through employment of Processing's "Minim" library) and fades away both visually and aurally as it's sound is depleted.
Thanks to Processing (processing.org), Minim (code.compartmental.net/tools/minim/), The MidiBus (smallbutdigital.com/themidibus.php), Traer Physics (murderandcreate.com/physics/) and Brighton University for making this possible.
Hello, I can't figure out why this is happening... I'm drawing sine waves based on a frequency but the waves don't seem to properly represent the frequency given. For instance, when I use 100 as the frequency, the waveform drawn appears higher than when I use 440 as the frequency. I'd like nice smooth oscilloscope waveforms ideally, can anybody see what the problem is?
I am trying to only show the pixels within two given circles. I've seen that I could just make a circular mask if I wanted to black out what is in the circles, but I can't figure out how to do the inverse of this.
Any help would be very gratefully received, Thanks.
Hello all, sorry about the length of this message.
I am working on a patch that receives midi messages (using midiBus) and visualises their pitch + length as sine wave objects that float around (using Traer Physics) being attracted towards mass points. Weird I know, but there's an eventual reason for this that I'll explain if anybody is interested.
I'm not much of a programmer, this project is very much at the limits of my capabilities so I'm certain I'm making mistakes all over the place. Here's my issue, I'd like each sine wave to progress along with its movement and respective frequency, as shown in this code:
Wave w1;
void setup() {
size(500, 500);
smooth();
w1 = new Wave(20, 80, 0, 0);
}
void draw() {
background(255);
translate(width/2, height/2);
w1.draw();
noFill();
}
class Wave {
float amp, p;
float ax, ay;
float x1 = 0;
public Wave(float amplitude, float pitch, float angX, float angY) {
amp = amplitude;
p = pitch;
ax = angX;
ay = angY;
}
public void draw() {
pushMatrix();
for (float i = x1; i < x1+50; i += 2/amp) {
point(i, sin(TWO_PI * i/p)*amp);
}
x1++;
popMatrix();
}
}
In
my code though, I am encountering a strange effect that I am unsure of the cause of - though I think it might be a phasing issue, or a type of digital distortion? Here is my project, which would require you to set up midiBus and have midi input in order to run. I've also put a video on youtube incase you'd rather not run the project, although the affect isn't really represented fully at all in the video:
Does anybody know how to code the movement of a sine wave through 3D space? I'd like to have the wave move through space at any definable angle but can't think how to make this happen.
I need to make some sine waves that move, but cannot seem to get a pure wave. Instead there's an odd part initially as you can see in the picture above. I figure that it's something in the mathematics that I'm missing, some help would be great. Here's the code:
import traer.physics.*;
ParticleSystem physics;
Particle p;
void setup(){
stroke(255);
strokeWeight(1);
size(500,500,P3D);
background(0);
physics = new ParticleSystem( 0.0, 0.0 );
int pitch = 440;
for(float i = 0.0; i<width; i=i+0.1){
p = physics.makeParticle(1,i,height/2+sin(pitch*TWO_PI*i)*20,0);
//p.velocity().set(0.1,0,0);
}
}
void draw(){
background(0);
physics.tick();
for(int i = 1; i<physics.numberOfParticles(); i++){