avatar – mocap

Before Becoming an Opera Star

Above is my near perfect rendition of Habanera by Angela Gheorghiu the famed opera singer for Carmen. For reference:


After Becoming a Worldwide Opera Sensation 

The more I open my mouth the louder my singing becomes.


I can sing faster or slower as I move away from the microphone.


I also am so in control of my voice that I can change my pitch just by making different shapes with my mouth.


xoxo <333333333

Some of my fans:



In regards to the program I made to genetically alter my voice through code I wish I could have altered the sound in more ways. Unfortunately the processing sound library doesn’t allow you to do too many crazy things to sound and I am unsure how to do it mathematically. That being said I change the pitch, rate, and volume as a real singer would in order to become a ProOperaSuperstar. Thank you. Goodbye.





// derived from the FaceOSCReceiver demo and minim's SineWaveSignal example
import oscP5.*;
OscP5 oscP5;
import processing.sound.*;
PFont font;
SoundFile file;
boolean play;
float timeAtLastChange = 0;
void setup() {
  size(512, 200);
  oscP5 = new OscP5(this, 8338);
  oscP5.plug(this, "faceScale", "/pose/scale");
  oscP5.plug(this, "posePosition", "/pose/position");
  oscP5.plug(this, "mouthSize", "/gesture/mouth/height");
  timeAtLastChange = millis();
  file = new SoundFile(this, "./operaSong.mp3");
  play = true;
void draw() {  
public void faceScale(float x) {
  float freq = map(x, 4, 6, 0.5, 3);
public void posePosition(float x, float y) {
  float pan = map(x, 0, 640, -1, +1);
public void mouthSize(float m){
  if(millis() - timeAtLastChange &lt; 200){
  timeAtLastChange = millis();
  float v = map(m, 1, 11, 0, 1);
// all other OSC messages end up here
void oscEvent(OscMessage m) {
  if (m.isPlugged() == false) {
//mouth width: /gesture/mouth/width