Real-Time Guitar to Synth Audio Effect

Welcome to the companion website for my MUS 420B project. The goal of my 420B project is to create a real-time additive guitar synthesizer. The synthesizer will take the analog guitar signal input and make it sound like a traditional additive synthesizer. This will be done in two steps: alter the waveform of the analog guitar signal, and then mix that waveshaped signal with transposed copies. The project is divided in three parts: create a waveshaping algorithm for monophonic signals, implement a pitch-shifting algorithm for polyphonic signals, and optimize the waveshaping algorithm for polyphonic signals. Since the synthesizer is intended for real-time use, the project always focuses on low latency. This will be especially important selecting a pitch-shifting algorithm.

Here are some sound files that explain the idea:

The second example is inspired by the track Gonzalo's Guestlist by Matt Caseli:

The Project Report

You can download the whole project report here.

download report (.pdf)

Matlab Source Code

The structure of the Matlab source code is explained in the appendix in the project report. The source code has run scripts that get you started, and comes with input audio samples so you can just run it.

download source

Ableton Live Project

Here is an Ableton Live project with two sets in it. The "audio_input" set contains raw audio input MIDI files that are routed to Native Instrument's Kontakt player (using the samplers jazz guitar and rock guitar). The second live set, "m420b", connects the processed audio signal with a kickdrum and a compressor. The compressor is sidechained to the kickdrum and generates a French House effect - the typical "pump" effect used in electronic dance music. The output files of this effect are in the channel Matlab Output. I applied equalizer, amp simulation, chorus and reverb effects to it in the effects section of the Matlab Output and the French House channels. There is also a channel called Synth Reference that demoes the same sounds made with a Waldorf Blofeld synthesizer.
The project requires Ableton Live 9.0.2

download Ableton Live project

The filters applied to the Matlab channel. This is a bass amp simulation.
The filters applied to the French House channel. A sidechain compressor, and an EQ and Chorus. Both EQ and Chorus are just arbitrary. There are more effects in this row, like a reverb. All of these effects are optional, but very typical for guitar stomp boxes - apart from the sidechain compressor, which, for example, can be done with one of