difficulties with Chorus effect

Apr 19, 2006 at 6:27pm

difficulties with Chorus effect

Hi all,

I created a flanger the other day (eventually) and it sounds pretty good. I tried altering the delay times to create a chorus effect. I read that chorus delay times should be between 20-30 ms (opposed to flangers 0-10 ms delay), so that’s what I did using an allpass~ filter. It should work as all I have really done is alter the delay times from my working flanger (though I used comb~ instead of allpass~ in the flanger).

It doesn’t really seem to be doing much except making the source signal a bit louder. Other than that I hear very little (or no) difference.

Another thing is that I read that you can create a stereo flanger with wide stereo field by putting the oscillators 1/4 of a wavelength out of phase. Tried this too…no success!

I was hoping someone would be able to point me in the right direction. I’d really appreciate it.

Here’s the code i’ve got so far. It’s supposed to be a dual-voice chorus, but it may be completely wrong!

max v2;
#N vpatcher 15 55 1185 904;
#P window setfont “Sans Serif” 9.;
#P comment 569 184 125 9109513 user is able to select different wave shapes for the LFO;
#P newex 988 85 54 9109513 loadmess 1;
#P newex 551 85 63 9109513 loadmess 0.5;
#P newex 760 93 54 9109513 loadmess 1;
#P newex 328 75 54 9109513 loadmess 1;
#P newex 543 383 54 9109513 loadmess 1;
#P newex 496 614 27 9109513 +~;
#P newex 493 699 27 9109513 +~;
#P user ezdac~ 489 750 533 783 0;
#P user umenu 731 185 72 9109543 1 64 201 1;
#X add None;
#X add Sine;
#X add Triangle;
#X add Sawtooth;
#P newex 698 417 74 9109513 allpass~ 35 15 0;
#P newex 731 308 33 9109513 +~ 20.;
#P user number~ 731 337 770 352 9 139 3 2 0. 0. 0 0. 20 0. 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 818 449 107 9109513 Allpass~ amplitude;
#N comlet R Allpass~ amplitude;
#P inlet 801 449 15 0;
#N comlet R Gain co-efficient;
#P inlet 762 363 15 0;
#P flonum 762 386 35 9 0 1. 2 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 801 468 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 698 506 27 9109513 *~;
#P newex 731 236 258 9109513 selector~ 3;
#P newex 813 184 25 9109513 sig~;
#P newex 813 149 34 9109513 begin~;
#P newex 977 184 25 9109513 sig~;
#P newex 977 149 34 9109513 begin~;
#N comlet R LFO freq;
#P inlet 1028 117 15 0;
#P flonum 1028 149 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 1046 117 55 9109513 LFO freq;
#P newex 896 184 25 9109513 sig~;
#P newex 896 149 34 9109513 begin~;
#N comlet R LFO type;
#P inlet 731 117 15 0;
#P newex 731 281 28 9109513 *~ 5.;
#P newex 731 259 29 9109513 +~ 1.;
#P newex 896 210 40 9109513 tri~;
#P newex 977 210 29 9109513 saw~;
#P newex 813 210 34 9109513 cycle~;
#P comment 674 117 68 9109513 LFO type;
#P comment 779 363 100 9109513 Gain co-efficient;
#P toggle 69 70 15 0;
#P newex 69 101 27 9109513 gate;
#P message 85 134 14 9109513 0;
#P message 69 134 14 9109513 1;
#P message 35 134 28 9109513 open;
#N sfplay~ 1 120960 0 ;
#P newobj 35 159 39 9109513 sfplay~;
#P user umenu 287 186 72 9109543 1 64 202 1;
#X add None;
#X add Sine;
#X add Triangle;
#X add Sawtooth;
#P newex 254 418 74 9109513 allpass~ 35 15 0;
#P newex 287 309 33 9109513 +~ 20.;
#P user number~ 287 338 326 353 9 139 3 2 0. 0. 0 0. 20 0. 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 348 433 107 9109513 Allpass~ amplitude;
#N comlet R Allpass~ amplitude;
#P inlet 357 450 15 0;
#N comlet R Gain co-efficient;
#P inlet 318 364 15 0;
#P flonum 318 387 35 9 0 1. 2 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 357 469 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 254 506 27 9109513 *~;
#P newex 287 237 258 9109513 selector~ 3;
#P newex 369 185 25 9109513 sig~;
#P newex 369 150 34 9109513 begin~;
#P newex 533 185 25 9109513 sig~;
#P newex 533 150 34 9109513 begin~;
#N comlet R LFO freq;
#P inlet 584 117 15 0;
#P flonum 584 150 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 602 117 55 9109513 LFO freq;
#P newex 452 185 25 9109513 sig~;
#P newex 452 150 34 9109513 begin~;
#N comlet R LFO type;
#P inlet 287 117 15 0;
#P newex 287 282 28 9109513 *~ 5.;
#P newex 287 260 29 9109513 +~ 1.;
#P newex 452 211 40 9109513 tri~;
#P newex 533 211 29 9109513 saw~;
#P newex 369 211 34 9109513 cycle~;
#P comment 230 117 68 9109513 LFO type;
#P comment 335 364 100 9109513 Gain co-efficient;
#P comment 87 70 100 9109513 Loop on/off;
#P comment 331 267 125 9109513 Scale oscilator output to go between 20 and 30 , this value will be used as delay time.;
#P comment 41 599 100 9109513 dry signal;
#P window setfont “Sans Serif” 14.;
#P comment 708 568 352 9109518 Does this patch actually produce chorus effect? To me it just sounds louder. I read that standard chorus delay times were between 20 and 30 ms , and i’ve got this on the go but still it’s not doing much. I had a play around with comb~ and teeth~ as well , but i don’t really want to use them as they require either feedback or feedforward values. Also been trying to alter the phase value of the oscillators to see if that makes a difference (i read that a phase difference of a quarter of a wavelength can make the stereo field much wider) , but had little (or no) success with that. If anyone has any suggestions i’d appreciate hearing from you. Thanks for your time.;
#P fasten 35 0 32 0 90 155 40 155;
#P fasten 34 0 32 0 74 155 40 155;
#P connect 33 0 32 0;
#P connect 37 0 36 0;
#P connect 36 0 34 0;
#P fasten 32 1 36 1 69 187 111 187 111 90 91 90;
#P fasten 32 0 30 0 247 393;
#P connect 30 0 22 0;
#P fasten 23 0 22 1 362 495 276 495;
#P connect 28 0 30 1;
#P connect 70 0 31 0;
#P connect 11 0 31 0;
#P connect 31 0 21 0;
#P connect 21 0 9 0;
#P connect 9 0 10 0;
#P connect 10 0 29 0;
#P connect 29 0 28 0;
#P connect 25 0 24 0;
#P connect 24 0 30 2;
#P connect 69 0 23 0;
#P connect 26 0 23 0;
#P fasten 15 0 20 0 589 175 374 175;
#P connect 19 0 20 0;
#P connect 20 0 6 0;
#P connect 6 0 21 1;
#P connect 8 0 21 2;
#P fasten 15 0 13 0 589 175 457 175;
#P connect 12 0 13 0;
#P connect 13 0 8 0;
#P connect 67 0 66 0;
#P fasten 32 0 67 0 40 618;
#P fasten 22 0 68 0 259 532 495 571;
#P connect 68 0 67 1;
#P fasten 56 0 68 1 527 568;
#P connect 67 0 66 1;
#P fasten 15 0 18 0 589 175 538 175;
#P connect 17 0 18 0;
#P connect 18 0 7 0;
#P connect 7 0 21 3;
#P connect 72 0 15 0;
#P connect 16 0 15 0;
#P connect 64 0 56 0;
#P fasten 57 0 56 1 806 494 720 494;
#P connect 62 0 64 1;
#P connect 71 0 65 0;
#P connect 45 0 65 0;
#P connect 65 0 55 0;
#P connect 55 0 43 0;
#P connect 43 0 44 0;
#P connect 44 0 63 0;
#P connect 63 0 62 0;
#P connect 59 0 58 0;
#P connect 58 0 64 2;
#P connect 69 0 57 0;
#P connect 60 0 57 0;
#P fasten 49 0 54 0 1033 174 818 174;
#P connect 53 0 54 0;
#P connect 54 0 40 0;
#P connect 40 0 55 1;
#P connect 42 0 55 2;
#P fasten 49 0 47 0 1033 174 901 174;
#P connect 46 0 47 0;
#P connect 47 0 42 0;
#P connect 51 0 52 0;
#P fasten 49 0 52 0 1033 174 982 174;
#P connect 52 0 41 0;
#P connect 41 0 55 3;
#P connect 73 0 49 0;
#P connect 50 0 49 0;
#P pop;

Thanks for looking.

#25514
Apr 20, 2006 at 10:29pm

don’t try to route the modulation signal through the [number~]
object. connect it directly to the delay time input of allpass~ and
you will here the effect.

apart from that, as you can see from the diagram in the help-file, an
allpass filter is nothing else but two comb-filters (one feedforward,
one feedback) cascaded to produce a flat frequency spectrum.
for a simple chorus effect you won’t need an allpass filter. a tapin~
and a tapout~ with multiple taps (individually modulated) will do the
job.
maybe that helps.
volker.

#75199

You must be logged in to reply to this topic.