Final Project: "Escape from the Turing Trap"

Max Jardetzky
MUSIC 356 (Winter 2023)
assignment instructions
⟵ back to my portfolio


Escape from the Turing Trap Final: "Our Gradient Descent"

Files: Final performance, Final dependencies .zip

I ended up leaving the system unchanged from the milestone, save for retuning the vocoder into A major instead of Ab major. I spent hours trying to iron out a new paradigm for the Wekinator mappings, where the training examples were not hand-picked random states mapped to random series of inputs, but I failed miserably. I wanted to map the ABXY pad to eight notes of the scale (including octave), with other buttons adding voices, reverb, or a low pass, but I ended up with a much less expressive version of the tool. I then focused my attention to scoring a performance as much as I could, choosing to cover “Hide and Seek” by Imogen Heap, as it was almost the main inspiration for this tool. In addition, the message of the song (if you really read into the lyrics) seems very fitting for the proliferation of AI in our day and age. Thank you sincerely for checking out my work! This was so much fun; what a class, right?


Final Project Milestone: "Imogen Heap-inator 3000"

Files: Milestone performance, Milestone dependencies .zip

Milestone Process + Reflection

Well, I went into this project with an attitude caused by the atonality of my last programming etude, swearing to the class that I would do something more musical soon. I bounced ideas around in my head for a while, my Notion page saying things like “Xbox controller scale music using AI?" and “open-ended and light, take care of yourself," and “live performance? hold down one button for arpeggiation, interpolate between inputs, etc." Today (March 13th, the day before the milestone deadline), the idea dawned on me to manipulate a harmonic vocoder with the Xbox controller, mediated by Wekinator.

Before I go any further, I have to cite and thank Orchisama Das for their Chuck-o-der final project for 220A, whose incredible signal processing through upchucks and FFT magnitude spectrum modulation made this project possible.

The vocoder lies in Ab major. The base synthesizer topology is three saw wave voices modulated by a triangle wave, in a voicing such that the first voice is the root note, the second voice is the fifth above, and the third voice is an octave and a third above. There are 8 OSC parameters, in order as follows:

  1. scale root note (divided by 8)
  2. intensity slider (0 is ~no voices, 0.33 is first voice max volume, 0.67 is first and second voice max volume, 1 is all three voices max volume)
  3. octave offset (-1, 0, +1)
  4. fmosc root note in scale (divided by 8)
  5. fmosc octave (-2, -1, 0, +1, +2)
  6. fmosc gain
  7. lpf freq
  8. reverb mix
The input feature vector is a binarized list of the currently pressed buttons on my Xbox Series X|S controller. For the first time, I achieved smoother mappings by using a log layer between Wekinator outputs and vocoder tunings. I want to clean up the sound a little bit for the final, probably by tuning/pruning the feature space as well as parameter mappings. If I have time, I'd like to pursue a visual component in Processing.