From CCRMA Wiki
Jump to: navigation, search

MUS 320C Project - Spring 2021

I will be doing a joint project for Mus 320C and CS 448Z.

Weeks 1 & 2:

I started thinking about ideas and had two different approaches for the project. One approach was to do something related to spatial audio, maybe a plug-in that uses head tracking and ambisonics. The other idea was to keep building on the Harmonizer instrument I built as the final project of MUS 250A taking advantage of JUCE and Faust and not having any of the hardware limitations.

I shared the ideas with Professor Julius and talked about possible paths for these two approaches. During the conversation I mentioned I was also taking CS 448Z (Physically Based Animation and Sound) and that it would be a great opportunity to do a joined project between MUS 320C and CS 448z.

Week 3:

After speaking with both Professor Julius and Professor Doug separately regarding final project ideas for each class, the three of us had another meeting to discuss possible ideas for a joint project. We came up with an idea to involve parts of a Harmonizer while integrating physical modeling.

The idea of the project (which is ever-evolving) is to come up with a plug-in or app that takes in a voice signal via microphone input in real time, analyzes this voice signal, and computes harmonies to be played back in real time as well. The harmonies will be generated using physical modeling of the vocal tract via the Pink Trombone Speech Synthesis program by Neil Thapen. The source code for Pink Trombone is available under the MIT License. The first step in the project was to look into the Pink Trombone source code which is in JavaScript/HTML and start porting it into C++, since the plug-in/app for my project will be done using JUCE and possibly Faust. I downloaded JUCE, went through the set up, and created a new Project to port the Pink Trombone code. I started to go through the Pink Trombone code to get familiarized with it.

Week 4:

  • Read about physical modeling of the vocal tract.
  • Continued reading through the Pink Trombone code to understand the different parts before porting to C++.
  • Set up a JUCE project with audio input and output, where microphone input is played back as output. This was to get familiar with JUCE audio input/outputs.
  • Watched JUCE tutorials including the JUCE GUI Editor Tutorial.
  • Set up a JUCE audio plugin based project with GUI components.
  • Ran the JUCE Demo Runner and looked through examples.