Wekinate Your World!

Wekinating my shitposts

Description: I made 3 really useless interactive ml systems lmaoooo, here's more info about the assignment: https://ccrma.stanford.edu/wiki/356-winter-2023/hw3

Wekination 1: I am unable to shitpost, and I must scream

Wekination 1 Files

Here, I use FaceOSC to control the pitch and gain of a very specific audio file of someone screaming. This is done by using my face, specifically my mouth. The bigger my mouth, the louder and more high pitch the sound is. The audio file in question is a particularly popular meme in internet culture, so it's really funny to see that it has managed to be repurposed as a musical instrument. FaceOSC sends information on my mouth keypoints to wekinator, which then sends back pitch and gain calculations to ChucK.

Wekination 2: Vine boom sound effect

Wekination 2 Files

Here, I use VisionOSC's face pose information to control the use of the vine boom sound. Each time I raise my eyebrows, the vine sound plays. VisionOSC sends info to wekinator, which sends info to my ChucK script on the probability that I am raising my eyebrows. If it reaches above 0.5, then I play the vine sound. I added control flow to make sure that the vine sound only plays again once the theshold reaches below 0.5 again; that way once my eyebrow is raised the sound doesn't keep playing repeatedly.

Wekination 3: Flute theremin

Wekination 3 Files

For this wekination, which is my main one, I was inspired by the theremin, and I was wondering to myself, what if the theremin used a camera? And what if it was used to simulate a different instrument? So that's exactly what I did here. I run the flute through PoleZero and JCRev before the DAC. Various flute parameters are controlled by Wekinator, which takes inputs from VisionOSC's hand pose information. The flute parameters in question are frequency, jetDelay, jetReflection, endReflection, noiseGain, vibratoFreq, vibratoGain, and pressure.


I think out of all of the different etudes, this one was the most fun to code up. What I enjoyed about this etude and the last one is that there was an element of interactivity that made the systems that were built feel much more purposeful; there was a sense of intenion that I definitely felt as I played them and listened to what was being said; ultimately, I feel like these systems are a refleciton of myself. The first two wekinations are silly excuses for me to include memes and shitposts that I enjoy in my schoolwork, and the last wekination is an exploration into some questions that I was genuinely curious about. I unfortunately didn't have time to include my daft punk mosaic in this etude. However, I do think that it would be to see what that would look like when I work on my final project for the course. I will say, it was a bit challenging for me to decide how my inputs should be controlling my outputs. I didn't just want my models to be machine learning implementations of simple rules that could have been coded without wekinator; i really wanted my models to capture nonlinear mappings from inputs to outputs that would be much harder to do without machine learning, and that's what I hope I did in this etude.


Thanks to Ge for creating the starter code, which was definitely useful for me to get my systems up and running. And thanks to the internet/Youtube for providing the audio files for the scream and vine boom sounds :)