Forums > MaxMSP

morphing waveforms

April 10, 2007 | 9:17 pm

I found a morphing waveform patch a while back based on 2d wave on the list but it sounds like crap when you FM it so im trying to make a new one from the built in waves such as saw~ and rect~, now Im trying to figure out how to have 1 number that mixes them all or a way to turn up "sineness, sawness" without signal exceeding 1. and -1. and keeping it relatively normalized. Is there a way to either make the 2d wave one sound decent with FM or do this distribution thing? Im leaning more to the built in waveforms cause I like the fact they are bandlimited.

Heres the patch so far

#P window setfont "Sans Serif" 9.;
#P flonum 214 61 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 106 191 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 170 187 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 226 186 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 293 185 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user ezdac~ 374 99 418 132 0;
#P window linecount 1;
#P newex 262 206 35 196617 *~ 1.;
#P newex 204 209 35 196617 *~ 1.;
#P newex 146 212 35 196617 *~ 1.;
#P newex 90 210 35 196617 *~ 1.;
#P user scope~ 116 248 246 378 256 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0;
#P newex 226 105 55 196617 phasor~ 2;
#P newex 263 167 40 196617 cycle~;
#P newex 205 163 40 196617 rect~;
#P newex 146 166 40 196617 tri~;
#P newex 93 166 34 196617 saw~;
#P connect 0 0 6 0;
#P connect 15 0 0 0;
#P connect 14 0 6 1;
#P connect 9 0 5 0;
#P connect 8 0 5 0;
#P connect 7 0 5 0;
#P connect 6 0 5 0;
#P connect 4 0 0 1;
#P connect 15 0 1 0;
#P connect 1 0 7 0;
#P connect 13 0 7 1;
#P connect 4 0 1 2;
#P connect 2 0 8 0;
#P connect 15 0 2 0;
#P connect 15 0 4 0;
#P connect 12 0 8 1;
#P connect 4 0 2 2;
#P connect 3 0 9 0;
#P connect 11 0 9 1;
#P connect 4 0 3 1;
#P window clipboard copycount 16;


April 10, 2007 | 9:51 pm

It sounds like you want a constant-power crossfade between two source
waveforms. This is achieved by roughly:

Total = wave1 * log(faderVal) + wave2 * log (1 – faderVal)

do you happen to have the source for the original morphing waveform
patch? I’ll search the archives for it, because it sounds neato :)

_Mark

On Apr 10, 2007, at 2:17 PM, Nicholas C. Raftis III wrote:

>
> I found a morphing waveform patch a while back based on 2d wave on
> the list but it sounds like crap when you FM it so im trying to make
> a new one from the built in waves such as saw~ and rect~, now Im
> trying to figure out how to have 1 number that mixes them all or a
> way to turn up "sineness, sawness" without signal exceeding 1. and
> -1. and keeping it relatively normalized. Is there a way to either
> make the 2d wave one sound decent with FM or do this distribution
> thing? Im leaning more to the built in waveforms cause I like the
> fact they are bandlimited.
>
>
> Heres the patch so far
>
> #P window setfont "Sans Serif" 9.;
> #P flonum 214 61 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 106 191 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 170 187 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 226 186 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 293 185 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P user ezdac~ 374 99 418 132 0;
> #P window linecount 1;
> #P newex 262 206 35 196617 *~ 1.;
> #P newex 204 209 35 196617 *~ 1.;
> #P newex 146 212 35 196617 *~ 1.;
> #P newex 90 210 35 196617 *~ 1.;
> #P user scope~ 116 248 246 378 256 3 128 -1. 1. 0 0. 0 0. 102 255 51
> 135 135 135 0;
> #P newex 226 105 55 196617 phasor~ 2;
> #P newex 263 167 40 196617 cycle~;
> #P newex 205 163 40 196617 rect~;
> #P newex 146 166 40 196617 tri~;
> #P newex 93 166 34 196617 saw~;
> #P connect 0 0 6 0;
> #P connect 15 0 0 0;
> #P connect 14 0 6 1;
> #P connect 9 0 5 0;
> #P connect 8 0 5 0;
> #P connect 7 0 5 0;
> #P connect 6 0 5 0;
> #P connect 4 0 0 1;
> #P connect 15 0 1 0;
> #P connect 1 0 7 0;
> #P connect 13 0 7 1;
> #P connect 4 0 1 2;
> #P connect 2 0 8 0;
> #P connect 15 0 2 0;
> #P connect 15 0 4 0;
> #P connect 12 0 8 1;
> #P connect 4 0 2 2;
> #P connect 3 0 9 0;
> #P connect 11 0 9 1;
> #P connect 4 0 3 1;
> #P window clipboard copycount 16;
>
> –
> -=ili!ili=- http://www.Axiom-Crux.net -=ili!ili=-


April 10, 2007 | 10:03 pm

this works ok, but its not anti-aliasing

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 337 248 55 196617 squareness;
#P newex 182 305 41 196617 *~ 0.2;
#P flonum 299 246 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 208 216 40 196617 cycle~;
#P user scope~ 244 306 351 387 2 3 128 -1. 1. 0 0. 1 0. 102 255 51 135 135 135 0;
#P flonum 300 165 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N vpatcher 20 74 620 474;
#P window setfont "Sans Serif" 9.;
#P flonum 142 50 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 50 156 32 196617 *~ 1;
#P newex 50 104 32 196617 *~ 1;
#P newex 50 128 35 196617 atan~;
#P newex 126 125 92 196617 expr 1./atan($f1);
#P inlet 50 84 15 0;
#P inlet 142 30 15 0;
#P outlet 50 178 15 0;
#P connect 2 0 5 0;
#P connect 5 0 4 0;
#P connect 4 0 6 0;
#P connect 6 0 0 0;
#P connect 7 0 5 1;
#P connect 3 0 6 1;
#P connect 7 0 3 0;
#P connect 1 0 7 0;
#P pop;
#P newobj 214 255 60 196617 p;
#P newex 212 186 34 196617 kink~;
#P user ezdac~ 182 352 226 385 0;
#P newex 213 150 67 196617 phasor~ 176;
#P comment 341 164 55 196617 sawness;
#P connect 5 0 3 1;
#P connect 7 0 4 0;
#P connect 3 0 7 1;
#P connect 1 0 3 0;
#P connect 8 0 4 1;
#P connect 4 0 6 0;
#P connect 4 0 9 0;
#P connect 9 0 2 1;
#P connect 9 0 2 0;
#P window clipboard copycount 11;


April 10, 2007 | 11:07 pm

how are you going to use those (very nice sounding) objects for FM synthesis? you can’t drive them by phase, so the pitch of your oscillators will go haywire when you modulate them. unless thats what youre looking for.

morphing the various waves by crossfading won’t morph the harmonics properly, it’ll just mix across to the new harmonics. i think. you need the peaks of a sine to shift together to form a saw wave. you can’t do that by adding the waves…


April 10, 2007 | 11:52 pm

This patch was built to morph between window functions. It could easily
be adapted to morph wavetables being read by a cycle, or some such
other, object.

It is currently set to read a directory of wavetables in a subdirectory
of the patch called "windows".

Note: requires jitter.

b

max v2;
#N vpatcher 167 44 809 491;
#P origin -134 -523;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 63 258 24 196617 1;
#P toggle 63 277 15 0;
#P newex 63 294 52 196617 qmetro 5;
#P number 237 174 35 9 0 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 467 322 131 196617 slide_up $1 , slide_down $1;
#P newex 203 351 196 196617 jit.slide @slide_up 100 @slide_down 100;
#P newex 203 322 142 196617 jit.matrix 1 float32 512 1;
#P newex 203 276 256 196617 jit.buffer~ $1prewndw 11.61 @outputlength 11.61;
#P newex 174 229 68 196617 t b output s;
#P newex 203 371 195 196617 jit.buffer~ $1wndw 11.61 1;
#P newex 123 126 31 196617 t 0 s;
#P newex 72 51 66 196617 loadbang;
#P newex 232 251 85 196617 prepend replace;
#P message 72 78 29 196617 path;
#N thispatcher;
#Q end;
#P newobj 72 106 61 196617 thispatcher;
#P newex 144 146 138 196617 sprintf prefix "%swindows";
#P user ubumenu 123 174 113 196617 0 1 1 0;
#X setrgb 31 31 31 188 255 157 234 234 234 4 4 4 141 141 141 112 112 112;
#X add 3stage-linear.30;
#X add 3stage-linear.50;
#X add blackman;
#X add blackman-harris;
#X add expodec;
#X add gauss;
#X add hamming;
#X add hanning;
#X add hard;
#X add Impulse;
#X add quasi-gauss.30;
#X add quasi-gauss.50;
#X add rexpodec;
#X add sine;
#X add triangle;
#X add very_hard;
#X prefix_set 0 1 "OS
X:/Users/barry/Music/Max/GranularComposer_061213R/windows/" 0;
#X pattrmode 1;
#P objectname menu_window;
#P fasten 5 0 16 0 77 73 68 73;
#P connect 16 0 15 0;
#P connect 15 0 14 0;
#P connect 5 0 3 0;
#P connect 3 0 2 0;
#P connect 2 1 6 0;
#P connect 1 0 0 0;
#P connect 6 0 0 0;
#P connect 6 1 1 0;
#P connect 0 1 8 0;
#P fasten 4 0 9 0 237 271 208 271;
#P connect 8 1 9 0;
#P fasten 14 0 10 0 68 314 208 314;
#P connect 9 0 10 0;
#P fasten 12 0 11 0 472 345 208 345;
#P connect 10 0 11 0;
#P connect 11 0 7 0;
#P connect 8 2 4 0;
#P hidden fasten 13 0 12 0 242 195 472 195;
#P pop;


barry threw
composition : sound : programming
http://www.barrythrew.com
bthrew(at)gmail(dot)com
857-544-3967

Today, Noise is triumphant and reigns sovereign over the sensibility of men.
- Luigi Russolo, The Art of Noises


April 11, 2007 | 12:01 am

Both of these are very cool, I like the phasor one but Im wondering how to band-limit things so that I don’t get aliasing at high frequencies, and also if its possible to get "triangleness" :P

Ill find the 2d wave in a minute and post it. Its really cool and does exactly what I want but sounds like crap when you freq mod it, not at all sure why.


April 11, 2007 | 12:17 am

i’m not sure how the antialiasing oscillators work. is it simply band limiting? i guess you need to know how to make a basic antialiasing oscillator first. (dont ask me!) preferably make one thats phase driven so you can be pitch stable when you modulate it

in the meantime this patch has primitive triangleness

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 354 208 66 196617 triangleness;
#P flonum 298 209 47 9 0.59 1. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 329 177 55 196617 squareness;
#P newex 180 249 41 196617 *~ 0.2;
#P flonum 291 175 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 200 145 40 196617 cycle~;
#P user scope~ 297 244 404 325 2 3 128 -1. 1. 0 0. 1 0. 102 255 51 135 135 135 0;
#P flonum 292 94 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 206 184 61 196617 overdrive~;
#P newex 204 115 34 196617 kink~;
#P user ezdac~ 174 281 218 314 0;
#P newex 205 79 67 196617 phasor~ 176;
#P comment 333 93 55 196617 sawness;
#P connect 4 0 9 0;
#P connect 4 0 6 0;
#P connect 11 0 4 0;
#P connect 8 0 4 0;
#P connect 7 0 4 0;
#P connect 9 0 2 0;
#P connect 9 0 2 1;
#P connect 1 0 3 0;
#P connect 3 0 7 1;
#P connect 5 0 3 1;
#P window clipboard copycount 13;


April 11, 2007 | 12:59 am

this is probably the one you mean. its not really morphing the oscillators though. it just crossfades between them, the transition from square to saw is a mess

max v2;
#N vpatcher 253 102 805 624;
#P window setfont "Sans Serif" 9.;
#P user umenu 285 182 44 196647 1 64 198 1;
#X add off;
#X add ix;
#X add mod;
#P newex 330 222 61 196617 selector~ 2;
#P user hslider 204 87 18 128 128 1 0 0;
#P newex 396 170 30 196617 mtof;
#P newex 237 122 29 196617 – 24;
#P newex 200 124 30 196617 mtof;
#P newex 397 194 45 196617 phasor~;
#P newex 5 26 45 196617 loadbang;
#B color 5;
#P newex 454 240 45 196617 loadbang;
#B color 5;
#P newex 5 45 48 196617 t b 2049;
#N vpatcher 10 59 564 556;
#P window setfont "Sans Serif" 9.;
#P newex 86 65 53 196617 t b b b b;
#P inlet 88 44 15 0;
#P newex 322 310 42 196617 + 1535;
#P newex 322 351 55 196617 peek~ four;
#P newex 322 291 27 196617 t i i;
#P newex 339 328 105 196617 expr (255-$i1)/255.;
#P newex 322 272 27 196617 – 1;
#P newex 288 253 44 196617 Uzi 512;
#P newex 91 321 42 196617 + 1023;
#P newex 91 363 55 196617 peek~ four;
#P newex 91 302 27 196617 t i i;
#P newex 108 340 175 196617 expr ((cos($f1/511*6.28))>0)*2-1;
#P newex 91 283 27 196617 – 1;
#P newex 57 264 44 196617 Uzi 512;
#P newex 252 154 35 196617 + 511;
#P newex 252 196 55 196617 peek~ four;
#P newex 252 135 27 196617 t i i;
#P newex 269 173 132 196617 expr abs(255-$i1)/127.-1;
#P newex 252 116 27 196617 – 1;
#P newex 218 97 44 196617 Uzi 512;
#P newex 65 173 55 196617 peek~ four;
#P newex 65 131 27 196617 t i i;
#P newex 82 150 124 196617 expr cos($f1/511*6.28);
#P newex 65 112 27 196617 – 1;
#P newex 31 93 44 196617 Uzi 512;
#P comment 103 119 26 196617 sine;
#P comment 296 122 44 196617 triangle;
#P comment 133 297 32 196617 block;
#P comment 359 287 26 196617 saw;
#P connect 28 0 4 0;
#P connect 28 1 15 0;
#P connect 4 2 5 0;
#P connect 5 0 7 0;
#P connect 7 0 8 0;
#P connect 7 1 6 0;
#P connect 27 0 28 0;
#P connect 6 0 8 1;
#P connect 15 2 16 0;
#P connect 16 0 18 0;
#P connect 18 0 20 0;
#P connect 20 0 19 0;
#P connect 18 1 17 0;
#P connect 17 0 19 1;
#P connect 28 3 9 0;
#P connect 9 2 10 0;
#P connect 10 0 12 0;
#P connect 12 0 14 0;
#P connect 14 0 13 0;
#P connect 12 1 11 0;
#P connect 11 0 13 1;
#P connect 28 2 21 0;
#P connect 21 2 22 0;
#P connect 22 0 24 0;
#P connect 24 0 26 0;
#P connect 26 0 25 0;
#P connect 24 1 23 0;
#P connect 23 0 25 1;
#P pop;
#P newobj 5 64 30 196617 p fill;
#P message 199 279 55 196617 trigger $1;
#P user umenu 199 258 44 196645 1 64 274 0;
#X add None;
#X add Up (1);
#X add Down (2);
#P message 401 288 41 196617 rows 4;
#P user scope~ 139 351 269 481 2 3 128 -1. 1. 0 0. 1 0. 102 255 51 135
135 135 0;
#P toggle 321 429 15 0;
#P newex 342 429 30 196617 dac~;
#P user gain~ 351 345 13 54 158 0 1.07152 7.94321 10.;
#P newex 200 145 45 196617 phasor~;
#P user hslider 360 112 18 128 128 1 0 0;
#P newex 360 146 95 196617 scale 0 127 0 0.75;
#P message 360 169 35 196617 $1 50;
#P newex 360 190 31 196617 line~;
#P message 418 241 33 196617 2048;
#P newex 418 266 65 196617 sampstoms~;
#P newex 98 100 65 196617 buffer~ four;
#P message 98 83 42 196617 size $1;
#P newex 43 64 65 196617 sampstoms~;
#P newex 351 319 75 196617 2d.wave~ four;
#P comment 220 70 31 196617 pitch;
#P comment 391 96 33 196617 index;
#P connect 23 0 21 0;
#P connect 21 0 20 0;
#P connect 21 1 3 0;
#P connect 3 1 4 0;
#P connect 4 0 5 0;
#P connect 2 0 16 0;
#P connect 19 0 16 0;
#P connect 18 0 19 0;
#P connect 28 0 25 0;
#P connect 25 0 12 0;
#P connect 28 0 26 0;
#P connect 30 0 29 0;
#P connect 13 0 14 0;
#P connect 15 0 14 0;
#P connect 17 0 2 0;
#P connect 12 0 2 0;
#P connect 2 0 13 0;
#P connect 8 0 29 1;
#P connect 11 0 10 0;
#P connect 10 0 9 0;
#P connect 9 0 8 0;
#P connect 13 0 14 1;
#P connect 29 0 2 1;
#P connect 24 0 29 2;
#P connect 26 0 27 0;
#P connect 27 0 24 0;
#P connect 22 0 17 0;
#P connect 6 1 2 3;
#P connect 22 0 7 0;
#P connect 7 0 6 0;
#P pop;


April 11, 2007 | 1:26 am

if you look at a spectroscope when you fade from a sine to a saw in the 2dwave patch, the harmonnics all get introduced at the same time, its a straight mix. if you look at the way using kink~ to skew a phasor driven sine affects the spectroscope, it introduces the lower harmonics first, the high ones last, so it seems to actually morph the harmonics. maybe more musically useful?


April 11, 2007 | 1:50 am

for synthesis of bandlimited oscillators, read this:

http://www-ccrma.stanford.edu/~stilti/papers/blit.pdf

or for even more in depth (more than just oscillators):

http://www-ccrma.stanford.edu/~stilti/papers/TimStilsonPhDThesis2006.pdf

mark

On 4/10/07, Nicholas C. Raftis III wrote:
>
> Both of these are very cool, I like the phasor one but Im wondering how to band-limit things so that I don’t get aliasing at high frequencies, and also if its possible to get "triangleness" :P
>
> Ill find the 2d wave in a minute and post it. Its really cool and does exactly what I want but sounds like crap when you freq mod it, not at all sure why.
>
> –
> -=ili!ili=- http://www.Axiom-Crux.net -=ili!ili=-
>


April 11, 2007 | 1:58 am

BIN you rule! Now I just need to find a way to map this all to one slider, or not, shooot this is a wicked waveshaper! Throw in some chebyshev and you got yourself a party!

Sorry just watched Teladaga nights hehehehe


April 11, 2007 | 3:04 am

how did you make this triangleness???? Im very confused, it looks like just another float plugged into the overdrive?


April 11, 2007 | 3:59 am

ok i get it, overdrive does waveshaping both ways, inward and outward, interesting..

As far as this bandlimiting thing, sorry IM an art student, didn’t take calcutrigonomitrie 501, so I don’t really undersand these equasions or how to translate them into msp. Im getting great results with FMing this thing BIN gave, Thanks so much!!


April 11, 2007 | 8:52 am

if you could get a nice short sample feedack delay going cheaply (let me know if you do), you could make your sawness by feedback, and your square/triangleness using overdrive~ this will only work at small vs sizes, pref 4 samples or less

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 394 314 60 196617 punk/bloat;
#P newex 450 218 48 196617 loadbang;
#P newex 218 276 70 196617 overdrive~ 1;
#P flonum 357 313 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 353 194 35 9 0. 18. 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 302 201 40 196617 / 100.;
#P toggle 199 339 15 0;
#P user umenu 450 264 78 196647 1 64 280 0;
#X add 1;
#X add 2;
#X add 4;
#X add 8;
#X add 16;
#X add 32;
#X add 64;
#X add 128;
#X add 256;
#X add 512;
#X add 1024;
#X add 2048;
#P newex 450 242 73 196617 adstatus sigvs;
#B color 5;
#P newex 217 339 31 196617 dac~;
#P flonum 227 97 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user scope~ 60 226 173 332 2 3 128 -1. 1. 0 0. 1 0. 102 255 51 135 135 135 0;
#P newex 293 148 72 196617 receive~ feed;
#P newex 243 248 58 196617 send~ feed;
#P newex 242 226 27 196617 *~;
#P newex 226 121 67 196617 phasor~ 174;
#P newex 257 147 27 196617 +~;
#P newex 234 181 40 196617 cycle~;
#P comment 392 195 50 196617 sawness;
#P connect 16 0 7 0;
#P connect 16 0 9 0;
#P connect 16 0 9 1;
#P connect 1 0 16 0;
#P connect 1 0 4 0;
#P connect 15 0 16 0;
#P connect 2 0 1 1;
#P connect 6 0 2 1;
#P connect 10 0 11 0;
#P fasten 11 0 10 0 455 285 437 285 437 238 455 238;
#P connect 12 0 9 0;
#P connect 13 0 4 1;
#P connect 14 0 13 0;
#P connect 4 0 5 0;
#P connect 17 0 10 0;
#P connect 3 0 2 0;
#P connect 8 0 3 0;
#P window clipboard copycount 19;


April 11, 2007 | 10:13 pm

FWIW, here’s another way to do morphing waveforms using a 2D jitter
matrix to store 8 wavetables with interpolated values. I can’t remember
if I published this patch somewhere yet, but whatever. For more of this
kind of Jitter audio trickery, check out the Noisy Matrix article on the
website.

Andrew B.

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 40 183 43 196617 +~ 512;
#P newex 40 138 69 196617 triangle~ 0.5;
#P newex 40 119 46 196617 phasor~;
#P newex 115 181 43 196617 +~ 256;
#P newex 115 138 69 196617 triangle~ 0.5;
#P comment 257 64 100 196617 bang to load row;
#P button 313 209 15 0;
#P user jit.pwindow 240 246 282 85 0 1 0 0 1 0;
#N vpatcher 20 74 504 605;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 40 427 100 196617 jit.op @op – @val 1.;
#P newex 40 409 109 196617 jit.normalize @amp 2.;
#P newex 337 85 100 196617 jit.op @op – @val 1.;
#P newex 337 65 102 196617 jit.op @op * @val 2.;
#P newex 337 43 107 196617 jit.noise 1 float32 32;
#P inlet 337 25 15 0;
#P newex 23 115 324 196617 jit.matrix 1 float32 64 @usedstdim 1
@dstdimstart 1 @dstdimend 62;
#P outlet 40 469 15 0;
#P newex 40 448 165 196617 jit.matrix bot 1 float32 1024 512;
#P newex 40 390 365 196617 jit.scanslide @slide_up 16 @slide_down 16
@dimmode 1 @offset 128 @mode 2;
#P newex 23 195 294 196617 jit.scanslide @slide_up 8 @slide_down 8
@offset 512 @mode 2;
#P newex 23 171 306 196617 jit.scanslide @slide_up 16 @slide_down 16
@offset 512 @mode 2;
#P newex 23 137 174 196617 jit.matrix 1 float32 1024 @interp 1;
#P newex 77 263 48 196617 loadbang;
#P newex 40 369 195 196617 jit.matrix 1 float32 1024 512 @interp 1;
#P newex 23 262 27 196617 t l l;
#P newex 23 341 76 196617 jit.matrix futz;
#P message 77 282 111 196617 setcell 1 0 val 1. , bang;
#P newex 77 300 118 196617 jit.matrix 1 float32 3 3;
#P newex 23 320 64 196617 jit.convolve;
#P newex 23 242 314 196617 jit.matrix futz 1 float32 1024 8 @usedstdim 1
@dstdimend 1023 0;
#P newex 23 90 137 196617 jit.matrix bato 1 float32 62;
#P newex 47 70 59 196617 jit.fill bato;
#P inlet 23 67 15 0;
#P inlet 47 50 15 0;
#P connect 1 0 3 0;
#P connect 3 0 18 0;
#P fasten 22 0 18 0 342 110 28 110;
#P connect 18 0 12 0;
#P connect 12 0 13 0;
#P connect 13 0 14 0;
#P connect 14 0 4 0;
#P connect 4 0 9 0;
#P connect 9 0 5 0;
#P connect 5 0 8 0;
#P connect 9 1 10 0;
#P connect 10 0 15 0;
#P connect 15 0 23 0;
#P connect 23 0 24 0;
#P connect 24 0 16 0;
#P connect 16 0 17 0;
#P connect 0 0 2 0;
#P connect 11 0 7 0;
#P connect 7 0 6 0;
#P connect 6 0 5 1;
#P connect 19 0 20 0;
#P connect 20 0 21 0;
#P connect 21 0 22 0;
#P pop;
#P newobj 241 228 82 196617 p 2D_wavetable;
#P button 241 63 15 0;
#P user multiSlider 277 79 288 128 -1. 1. 62 2681 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 211 221 192;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P user scope~ 230 335 360 465 16 3 32 -1. 1. 0 0. 0 0. 102 255 51 135
135 135 0;
#P flonum 77 34 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 40 34 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 4 34 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 40 99 27 196617 +~;
#P newex 40 76 27 196617 *~;
#P newex 40 54 40 196617 cycle~;
#P flonum 115 102 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 129 208 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 130 303 41 196617 *~ 0.1;
#P newex 40 305 41 196617 *~ 0.1;
#P newex 115 161 44 196617 *~ 255;
#P newex 115 119 64 196617 phasor~ 0.1;
#P user ezdac~ 72 339 116 372 0;
#P newex 40 162 44 196617 *~ 511;
#P newex 40 207 85 196617 jit.peek~ bot 2 0;
#P comment 332 211 115 196617 generate random row;
#P connect 1 0 6 0;
#P connect 1 0 7 0;
#P fasten 1 0 16 0 45 227 235 227;
#P connect 7 0 3 1;
#P connect 6 0 3 0;
#P connect 8 0 6 1;
#P connect 8 0 7 1;
#P connect 26 0 2 0;
#P connect 2 0 27 0;
#P connect 27 0 1 0;
#P connect 25 0 26 0;
#P connect 12 0 25 0;
#P connect 23 0 5 0;
#P connect 5 0 24 0;
#P connect 24 0 1 1;
#P connect 4 0 23 0;
#P connect 9 0 4 0;
#P connect 14 0 10 0;
#P connect 10 0 11 0;
#P connect 11 0 12 0;
#P connect 15 0 11 1;
#P connect 13 0 12 1;
#P connect 18 0 19 0;
#P connect 19 0 20 0;
#P connect 17 0 19 1;
#P connect 21 0 19 2;
#P window clipboard copycount 28;


April 13, 2007 | 7:37 am

YOu guys both rock! Good work Andrew! Bin, I think I had a dream that you ended up being the owner of this insane club around here called the 7th circuit. And then I put my foot in this flowerpot and fell through it into another dimension.. strange..

I checked out your tunes, good work, check mine if you have the time.

http://www.myspace.com/axiomcrux


April 13, 2007 | 7:39 am

man that feedback saw is strange as hell!


April 13, 2007 | 9:07 am

ha. i need someone to dream me up a new job. 7th circuit…thats something to do with neurogenetic programming… more fun stuff to try at home!


April 13, 2007 | 7:48 pm

this patch does phase distortion to create square or saw waves. the phase driven squareness is alot less CPU hungry than overdrive~ or arctan distortion.

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 262 89 26 196617 sqr;
#P newex 211 238 41 196617 *~ 0.5;
#P user scope~ 63 229 193 359 2 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0;
#P flonum 263 112 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 214 113 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 165 65 67 196617 phasor~ 172;
#P newex 164 192 40 196617 cycle~;
#N vpatcher 643 443 1376 1032;
#P window setfont "Sans Serif" 9.;
#P newex 179 208 42 196617 !-~ 0.5;
#P newex 179 154 48 196617 !-~ 0.75;
#P newex 179 277 32 196617 *~ 2;
#P newex 134 370 31 196617 /~ 2;
#P newex 69 118 32 196617 *~ 2;
#P newex 91 86 34 196617 kink~;
#P newex 103 218 32 196617 *~ 1;
#P newex 124 335 27 196617 +~;
#P newex 69 174 63 196617 pong~ 1 0 1;
#P newex 102 263 59 196617 clip~ 0. 1;
#P inlet 91 61 15 0;
#P inlet 212 63 15 0;
#P inlet 150 62 15 0;
#P outlet 135 410 15 0;
#P newex 179 179 59 196617 round~ 0.5;
#P connect 9 0 10 0;
#P connect 10 0 6 0;
#P connect 4 0 9 0;
#P connect 8 0 5 0;
#P connect 6 0 8 0;
#P connect 2 0 9 1;
#P connect 5 0 7 0;
#P connect 3 0 8 1;
#P connect 7 0 11 0;
#P connect 11 0 1 0;
#P connect 12 0 7 1;
#P connect 9 0 13 0;
#P connect 13 0 0 0;
#P connect 0 0 14 0;
#P connect 14 0 12 0;
#P pop;
#P newobj 165 160 108 196617 p sqaw;
#P user ezdac~ 202 327 246 360 0;
#P comment 214 89 26 196617 saw;
#P connect 2 0 3 1;
#P connect 4 0 2 0;
#P connect 5 0 2 1;
#P connect 6 0 2 2;
#P connect 3 0 8 0;
#P connect 8 0 1 1;
#P connect 8 0 1 0;
#P connect 8 0 7 0;
#P window clipboard copycount 10;


April 13, 2007 | 8:02 pm

although the way the sine changes when you increase both sawness and squareness is kind of strange… not really like overdrive~

CZ101 used this kind of synthesis ..supposedly most dancehall riddims use the CZ101 bass, or sample it……


April 14, 2007 | 1:46 am

Damn that one is pimp too, when you increase them both it makes it like duty cycle for the square!!!!!! wicked!


April 14, 2007 | 2:15 am

do you think bandlimiting using low pass filter at half the sample rate would work??? Im gonna do some tests..


April 14, 2007 | 2:49 am

Man freq and phase modding that one is nuts. sounds like circuit bent!!!


April 14, 2007 | 10:38 am

if you want to FM the patch i posted you’ll have to add a pong~ 1 0 1 before the sqaw object to wrap the phase between 0 and 1


April 14, 2007 | 9:00 pm

cant I just FM the phaser?


April 14, 2007 | 9:29 pm

yes you could, i didnt think of that.. as long as the input to that object is between 0 and 1, it doesnt wrap phase (like cycle~ does) with out a pong~ in there


April 14, 2007 | 9:56 pm

heres another CZ101 type phase distortion, i think it was supposed to sound like a resonant filter

#P user spectroscope~ 725 479 300 100 20 0 0 0 1 1 0 0 0 0 0 0;
#X frgb 224 224 224;
#X brgb 255 255 255;
#X rgb2 0 0 0;
#X rgb3 243 204 204;
#X rgb4 255 0 0;
#X rgb5 184 184 184;
#X rgb6 0 0 0;
#X rgb7 0 0 0;
#X rgb8 255 255 255;
#X rgb9 255 0 0;
#X rgb10 255 191 0;
#X rgb11 0 191 127;
#X rgb12 127 0 127;
#X rgb13 0 0 0;
#X range 0. 1.2;
#X domain 0. 22050.;
#X done;
#P window setfont "Sans Serif" 9.;
#P flonum 867 138 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 821 138 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 770 138 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 684 304 46 196617 +~ 0.25;
#P newex 746 303 33 196617 !-~ 1;
#P user scope~ 587 446 717 576 2 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0;
#P newex 655 367 32 196617 *~ 1;
#P newex 655 338 40 196617 cycle~;
#P newex 683 277 27 196617 *~;
#P newex 683 230 67 196617 phasor~ 172;
#P user ezdac~ 732 383 776 416 0;
#P newex 764 229 27 196617 +~;
#P newex 805 228 44 196617 sig~ 30;
#P newex 770 165 49 196617 cycle~ 1;
#P newex 764 193 38 196617 *~ 30;
#P connect 8 0 9 0;
#P connect 8 0 15 0;
#P connect 8 0 4 0;
#P connect 8 0 4 1;
#P connect 0 0 3 0;
#P connect 1 0 0 0;
#P connect 13 0 0 1;
#P connect 5 0 6 0;
#P connect 5 0 10 0;
#P connect 6 0 11 0;
#P connect 12 0 1 0;
#P connect 3 0 6 1;
#P connect 14 0 2 0;
#P connect 2 0 3 1;
#P connect 11 0 7 1;
#P connect 10 0 8 1;
#P connect 7 0 8 0;
#P window clipboard copycount 16;


April 14, 2007 | 10:39 pm

bin ray skrev:
> heres another CZ101 type phase distortion, i think it was supposed to sound like a resonant filter
> …

Haha, that one’s great – try setting the top cycle~ to 172.4 – then it’s
really interesting actually!
Thanks a lot for uploading these, I’ve never bothered doing them myself,
and I’m definitely getting into my own PM sounds now.

Andreas.


April 14, 2007 | 11:24 pm

Damn Bin your a never-ending barrel of phase driven treats!!!
this tread rules!! thanks BIN and Andrew!

Im going to experiment and try and make a new one :D


March 18, 2008 | 11:53 pm

This thread is amazing.


March 23, 2011 | 3:58 pm

I implemented Barry Threw’s suggestion and it is exactly what I have been looking for. I have some bugs with it though. I wanted to use larger samples so I increased the buffer sizes and the size of the dimension list in the jit.matrix object (I am not familiar with jitter). This works fine as long as you don’t change samples too quickly, anything over a 1 second gap between sample selections causes a crash. I have modified the original patch slightly so that you select which sample to load and then send a bang to zl reg to load it. While this works I sometimes have to send it 2 bangs to get the bottom buffer to recognize the current sample. So while it works, sort of, I perform live a lot and would like to make this run smoothly without fear of crashing. Any suggestions

– Pasted Max Patch, click to expand. –

Viewing 31 posts - 1 through 31 (of 31 total)