Wednesday, November 11, 2015

Effects processor on Intel Edison

I've been working on an effects processor on Edison with intention of entering this project into the "Intel IoT invitational" contest on Instructables.

[embed]https://www.youtube.com/watch?v=qJF1BddpQ30[/embed]



The application is mainly written in ''c'' and uses portaudio library to process the audio. The setup consists

The current build supports following effects:

  1. Ring modulator

  2. Amplitude modulator

  3. Overdrive

  4. Overdrive ver2

  5. Reverberation

  6. sine vibrato

  7. sawtooth vibrato

  8. square wave vibrato

  9. Fuzz box


The setup consists of an Edison connected to USB audio card and a Grove shield that is connected to pot, LCD and a button.

Clicking on the button cycles through the available effects.

The pot controls the effect itself depending upon the selected effect.

The LCD displays the effect that is being applied on the audio signal.

The audio in on the USB sound card is connected to a musical instrument or a microphone and the audio out is connected to a speaker.

Ring modulation:

It is probably the simplest of effects. The incoming signal is multiplied with low frequency  sine oscillator (LFO). The pot in this effect controls the frequency of the LFO. Robotic voices can be generated using this effect.

Amplitude modulation:

Unlike ring modulation, here the incoming signal is added with LFO signal. The potentiometer controls the frequency of the LFO.

Overdrive:

There are two variants of the overdrive effect. In the first variant (detailed in this ppt) a symmetrical soft clipping is used. In the second variant which is a software overdrive distortion, a sine wave is used to achieve clipping but this is not as effective as the first variant.

Reverb:

Reverberation by definition is over imposing sound with multiple echoes. In this implementation, it is more closely modeled after the echo effect and the pot controls the decay rate of the gain used in the effect.

Sine vibrato:

In this effect, a sine wave is used to select the amount of delay to be used. The pot controls the frequency of this sine wave.

Sawtooth vibrato:

In Sawtooth vibrato effect, a sawtooth wave is used to select the amount of delay to be used. The pot here controls the peak of the sawtooth wave. This effect sounds as if laser shots are being fired ideal for your 60s sci-fi shows.

Square wave vibrato:

In this effect, the most recent samples are output depending on the state of a square wave. When the square wave is "on" most recent sample is output if it is "off" older samples are output. The pot controls the period of this square wave.

Fuzz box:

This one is based on one of the examples in the port audio distribution. This adds "fuzz" noise to the input signal. This is done using a cubic amplifier and pot has no effect on this effect.

You can go through this instructable to build your very own.

One more:

https://www.youtube.com/watch?v=5RVHdKsuG_k

5 comments:

  1. […] power for real-time digital audio processing. [Navin] used the Atom based module to build Effecter: a digital effects […]

    ReplyDelete
  2. […] power for real-time digital audio processing. [Navin] used the Atom based module to build Effecter: a digital effects […]

    ReplyDelete
  3. […] power for real-time digital audio processing. [Navin] used the Atom based module to build Effecter: a digital effects […]

    ReplyDelete
  4. […] power for real-time digital audio processing. [Navin] used the Atom based module to build Effecter: a digital effects […]

    ReplyDelete