#N canvas 288 58 854 501 10; #X text 166 21 PD Amount; #X text 64 60 M1; #X text 178 58 M2; #X text 178 104 B2; #X obj 154 227 expr~ $v1*$v2; #X obj 296 228 expr~ ($v1*$v2)+$v3; #X obj 243 276 min~; #X obj 243 349 cos~; #X obj 95 162 phasor~; #X obj 95 38 inlet; #X text 84 20 Frequency; #X obj 244 384 outlet~; #X obj 170 35 inlet~; #X obj 61 75 expr~ .5/$v1; #X obj 170 76 expr~ .5/(1-$v1); #X obj 170 121 expr~ .5-($v1*$v2); #X text 284 326 Post-Mod; #X obj 265 35 inlet; #X text 252 20 Post-Mod; #X obj 244 324 *~ 1; #X text 32 455 (c) 2007 Louis Gorenfeld; #X text 452 5 Casio-Style Phase Distortion BASIC INSTRUCTIONS ------------------ PD Amount should vary from 0.5 to about .01. Any lower than 0.01 may produce audible aliasing. Post-Mod = 1 : Saw Post-Mod = 2 : Double-Sine If the user wishes to switch rapidly between two different waveforms \, two of these abstractions must be used (sorry!). ABOUT ----- This abstraction is a simple implementation of phase distortion synthesis done via waveshaping and line segments. The two line segments both pass through a "skew point". When the point is located at (.5 \, .5) \, the output is a normal cosine. However \, when the point is pulled back (the x changes while the y remains the same) \, the cosine wave is bent to resemble other waveforms. At the moment \, it only does saw and double-sine. The double-sine is done by setting the post-shaper mod to 2 A square wave would be achieved by setting a pre-shaper mod to 2 (e.g. run the shaper at twice the speed of the cosine). The first shaper run would shape from 0 to 0.5 \, and the second shaper cycle would shape from 0.5 to 1.0. Even more different timbres are available if a sine wave is shaped rather than a cosine \, or if the skew point is changed from 0.5 to other values such as .75.; #X text 31 469 Please use to the fullest extent of the jam...; #X connect 4 0 6 0; #X connect 5 0 6 1; #X connect 6 0 19 0; #X connect 7 0 11 0; #X connect 8 0 4 0; #X connect 8 0 5 1; #X connect 9 0 8 0; #X connect 12 0 13 0; #X connect 12 0 14 0; #X connect 12 0 15 0; #X connect 13 0 4 1; #X connect 14 0 5 0; #X connect 14 0 15 1; #X connect 15 0 5 2; #X connect 17 0 19 1; #X connect 19 0 7 0;