# DSP algorithms for guitar multi effect

**URL:** <https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408>\
**Category:** Development\
**Created:** [July 4, 2018, 11:53pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408 "2018-07-04T23:53:20Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![arstudio](https://avatars.discourse-cdn.com/v4/letter/a/bc8723/32.png) [@arstudio](https://forum.juce.com/u/arstudio)\
**Post date:** [July 4, 2018, 11:53pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/1 "2018-07-04T23:53:20Z")

</div>

Hi All… I’m making a stereo multi effect for guitar with the CCRMA Synthesis Toolkit classes but I experiment various problems with them.  
My question is: where can I find good algorithms for guitar pitch shifting, chorus, delay and reverb? (obviously in c++).  
I would like to do a professional work this time…

---

<div class="post-metadata">

**Author:** ![holy-city](https://avatars.discourse-cdn.com/v4/letter/h/8491ac/32.png) [@holy-city](https://forum.juce.com/u/holy-city)\
**Post date:** [July 5, 2018, 2:16am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/2 "2018-07-05T02:16:54Z")

</div>

The textbook Digital Audio Effects (edited by Zölzer) is a good starting point. Not sure how much there is in way of coding examples

---

<div class="post-metadata">

**Author:** ![matthieu-brucher](https://avatars.discourse-cdn.com/v4/letter/m/a5b964/32.png) [@matthieu-brucher](https://forum.juce.com/u/matthieu-brucher)\
**Post date:** [July 5, 2018, 10:15am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/3 "2018-07-05T10:15:21Z")

</div>

I don’t have pitch shifting, but everything else is in Audio ToolKit.

---

<div class="post-metadata">

**Author:** ![ImJimmi](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/imjimmi/32/10843_2.png) [@ImJimmi](https://forum.juce.com/u/ImJimmi)\
**Post date:** [July 5, 2018, 11:37am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/4 "2018-07-05T11:37:55Z")

</div>

I’ve found this to be a good source for some basic DSP algorithms:  
[http://musicdsp.org/archive.php?classid=4](http://musicdsp.org/archive.php?classid=4)

---

<div class="post-metadata">

**Author:** ![arstudio](https://avatars.discourse-cdn.com/v4/letter/a/bc8723/32.png) [@arstudio](https://forum.juce.com/u/arstudio)\
**Post date:** [July 5, 2018, 7:05pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/5 "2018-07-05T19:05:51Z")

</div>

thanks guys… but I need more explanations and more code… I’m a bit new to DSP programming.  
@Im_Jimmi, these samples are good but I don’t know how I Can integrate in JUCE…  
I’ve found that book ([https://books.google.it/books?id=QddcxHLavrMC&printsec=frontcover&hl=it&source=gbs\_ge\_summary\_r&cad=0#v=snippet&q=pitch%20shift&f=false](https://books.google.it/books?id=QddcxHLavrMC&printsec=frontcover&hl=it&source=gbs_ge_summary_r&cad=0#v=snippet&q=pitch%20shift&f=false)) and I think it would be great, now I have to collect some money to spend with… what do you think about this book?

---

<div class="post-metadata">

**Author:** ![sletz](https://avatars.discourse-cdn.com/v4/letter/s/71c47a/32.png) [@sletz](https://forum.juce.com/u/sletz)\
**Post date:** [July 5, 2018, 9:39pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/6 "2018-07-05T21:39:03Z")

</div>

Faust ? ([http://faust.grame.fr](http://faust.grame.fr), [http://faust.grame.fr/library.html](http://faust.grame.fr/library.html))

---

<div class="post-metadata">

**Author:** ![arstudio](https://avatars.discourse-cdn.com/v4/letter/a/bc8723/32.png) [@arstudio](https://forum.juce.com/u/arstudio)\
**Post date:** [July 5, 2018, 9:50pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/7 "2018-07-05T21:50:18Z")

</div>

Mhm it seem very interesting, but how can I use these libraries with juce without to have to convert Faust projects?

---

<div class="post-metadata">

**Author:** ![sletz](https://avatars.discourse-cdn.com/v4/letter/s/71c47a/32.png) [@sletz](https://forum.juce.com/u/sletz)\
**Post date:** [July 6, 2018, 4:33am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/8 "2018-07-06T04:33:54Z")

</div>

Read : [http://faust.grame.fr/news/2017/02/21/Faust-meets-JUCE.html](http://faust.grame.fr/news/2017/02/21/Faust-meets-JUCE.html)

Romain Michon (CCRMA Phd) has a lot of Faust related content: [https://ccrma.stanford.edu/~rmichon/#projects](https://ccrma.stanford.edu/~rmichon/#projects)

---

<div class="post-metadata">

**Author:** ![ImJimmi](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/imjimmi/32/10843_2.png) [@ImJimmi](https://forum.juce.com/u/ImJimmi)\
**Post date:** [July 6, 2018, 9:08am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/9 "2018-07-06T09:08:15Z")

</div>

> [@arstudio](#):
>
> what do you think about this book?

That’s the only audio programming book I actually own a copy of and I personally think it’s fantastic. Shows the basics of getting some simple algorithms to work. Only criticism I’d have is that it doesn’t always go into detail about the background and maths behind some of the algorithms - however I’ve usually managed to cross-reference it with DAFX to find some more technical explanations.  
It doesn’t mention JUCE however so I’d recommend you start by looking at some JUCE tutorials about basic sample-by-sample processing and work from there. Good luck!

---

<div class="post-metadata">

**Author:** ![mashu](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/mashu/32/579_2.png) [@mashu](https://forum.juce.com/u/mashu)\
**Post date:** [July 9, 2018, 9:14pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/10 "2018-07-09T21:14:26Z")

</div>

Maybe not a popular opinion here, but if you’re looking how to make DSP algorithms for audio fx, i don’t think Juce is a good place to start learning.

There are heaps of realtime audio programming environments where you can experiment with different signal flows recipes until you find a really good one. Supercollider, Csound, PureData, etc…

I wouldn’t try to learn how to do fx design from Juce straight away.

Unless you just want to cut and paste existing stuff…but where’s the fun in that?

---

<div class="post-metadata">

**Author:** ![arstudio](https://avatars.discourse-cdn.com/v4/letter/a/bc8723/32.png) [@arstudio](https://forum.juce.com/u/arstudio)\
**Post date:** [July 23, 2018, 4:29pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/11 "2018-07-23T16:29:21Z")

</div>

Excuse me for the late… yes it isn’ funny to copy/paste 🙂  
You said to me of some environments to learn dip programming,  
how I’m making a filter delay and I need a good delay algorithm, can you advice me a good starting point?  
I need only the delay for now…

---

<div class="post-metadata">

**Author:** ![johngalt91](https://avatars.discourse-cdn.com/v4/letter/j/b38774/32.png) [@johngalt91](https://forum.juce.com/u/johngalt91)\
**Post date:** [July 24, 2018, 1:33am UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/12 "2018-07-24T01:33:51Z")

</div>

A good starting point is to learn what is a delay filter does before trying to code anything. Then you can move to MATLAB or replicate it with PureData/Max4Live (the latter ones don’t require a programming language knowledge per se) and then move to coding. IIRC, “getting started with DSP” tutorials here in JUCE have some delay stuff implemented, so you can get that code and study it to understand how it works so you then code your own, or just use and modify it to achieve what u want. Other sources: KVR audio forum has a DSP section, and musicDSP has some coded DSP stuff that you can look at.

---

<div class="post-metadata">

**Author:** ![matthieu-brucher](https://avatars.discourse-cdn.com/v4/letter/m/a5b964/32.png) [@matthieu-brucher](https://forum.juce.com/u/matthieu-brucher)\
**Post date:** [July 27, 2018, 2:15pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/13 "2018-07-27T14:15:06Z")

</div>

Please, no, not his books, they are very bad for their code quality.

---

<div class="post-metadata">

**Author:** ![matthieu-brucher](https://avatars.discourse-cdn.com/v4/letter/m/a5b964/32.png) [@matthieu-brucher](https://forum.juce.com/u/matthieu-brucher)\
**Post date:** [July 27, 2018, 2:17pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/14 "2018-07-27T14:17:00Z")

</div>

It’s a bad, very bad book. One of the worst in terms of development and good practices.  
Buy DAFX from Zolzer for the algorithm, and then buy Scott Meyers Modern efficient C++ for instance.

Looks like I really need to finish my book one day.

---

<div class="post-metadata">

**Author:** ![matthieu-brucher](https://avatars.discourse-cdn.com/v4/letter/m/a5b964/32.png) [@matthieu-brucher](https://forum.juce.com/u/matthieu-brucher)\
**Post date:** [July 27, 2018, 2:17pm UTC](https://forum.juce.com/t/dsp-algorithms-for-guitar-multi-effect/28408/15 "2018-07-27T14:17:43Z")

</div>

I agree, it’s easy to do some DSP tests in Python first.
