Hello PD Virtuosi:
Imagine my delight when I first enrolled in the PD list a few days ago to find that you've all resolved to give up grumpiness so as not to put off newbies like me! It gave me courage to put forward my first effort for criticism and feedback.
The patch implements a tone generator for Pythagorean tuning with
syntonic comma offsets. I hope it will help my renaissance flute
consort to learn to play in just intonation in the style of Zarlino.
So, it has to be usable by non-electronic music people. It does what
I want. I would appreciate if anyone could review it for style and
understanding. I suspect that I have done some unnecessary things do to
my imperfect understanding
One thing in particular that it does in a way I don't like is setting the note name. I would prefer to pass the note name as an argument to the noteSelector abstraction instead of having that bit of [set( and [send] circuitry off to the side of the noteSelector, but I couldn't figure out how.
Thanks in advance for your attention.
Cheers, David
#N canvas 33 25 349 877 12; #X floatatom -20 76 5 0 0 2 frequency - -; #X obj -19 36 r $0-freq; #X obj -20 255 s $0-note; #X msg -20 231 set D-natural; #X obj -18 308 s $0-note; #X obj -21 363 s $0-note; #X obj -23 419 s $0-note; #X obj -21 473 s $0-note; #X obj -21 526 s $0-note; #X obj -21 582 s $0-note; #X obj -21 637 s $0-note; #X obj -22 687 s $0-note; #X obj -23 741 s $0-note; #X obj -24 796 s $0-note; #X obj -23 851 s $0-note; #X msg -21 340 set E-natural; #X msg -23 396 set F-natural; #X msg -21 450 set F-sharp; #X msg -21 502 set G-natural; #X msg -21 556 set G-sharp; #X msg -21 611 set A-natural; #X msg -22 662 set B-flat; #X msg -23 717 set B-natural; #X msg -24 772 set C-natural; #X msg -23 826 set C-sharp; #X msg -18 285 set E-flat; #X text -20 10 Pythagorean Tone Generator; #X obj -20 118 *; #X floatatom 51 94 5 0.25 2 0 - - -; #X obj 69 33 octaveSelector; #X obj 104 231 noteSelector 1 1 $0; #X obj 104 285 noteSelector 256 243 $0; #X obj 104 340 noteSelector 9 8 $0; #X obj 104 397 noteSelector 32 27 $0; #X obj 104 450 noteSelector 81 64 $0; #X obj 104 503 noteSelector 4 3 $0; #X obj 104 557 noteSelector 729 512 $0; #X obj 105 610 noteSelector 3 2 $0; #X obj 106 663 noteSelector 128 81 $0; #X obj 105 717 noteSelector 27 16 $0; #X obj 106 771 noteSelector 16 9 $0; #X obj 106 824 noteSelector 243 128 $0; #X obj 202 33 pitchSelector; #X obj -20 141 toneGenerator; #X obj 202 92 noteDisplay $0; #X connect 0 0 27 0; #X connect 1 0 0 0; #X connect 3 0 2 0; #X connect 15 0 5 0; #X connect 16 0 6 0; #X connect 17 0 7 0; #X connect 18 0 8 0; #X connect 19 0 9 0; #X connect 20 0 10 0; #X connect 21 0 11 0; #X connect 22 0 12 0; #X connect 23 0 13 0; #X connect 24 0 14 0; #X connect 25 0 4 0; #X connect 27 0 43 0; #X connect 28 0 27 1; #X connect 29 0 27 0; #X connect 29 1 28 0; #X connect 30 0 3 0; #X connect 31 0 25 0; #X connect 32 0 15 0; #X connect 33 0 16 0; #X connect 34 0 17 0; #X connect 35 0 18 0; #X connect 36 0 19 0; #X connect 37 0 20 0; #X connect 38 0 21 0; #X connect 39 0 22 0; #X connect 40 0 23 0; #X connect 41 0 24 0;
#N canvas 204 45 837 771 12; #X floatatom 178 353 5 0 0 0 - - -; #X obj 143 33 bng 15 250 50 0 empty empty +0 0 -6 0 8 -90133 -1 -1 ; #X obj 267 338 * 81; #X obj 267 361 / 80; #X floatatom 434 445 5 0 0 0 - - -; #X obj 161 33 bng 15 250 50 0 empty empty +1 0 -6 0 8 -250685 -1 -1 ; #X floatatom 9 448 5 0 0 0 - - -; #X obj 125 33 bng 15 250 50 0 empty empty -1 0 -6 0 8 -250685 -1 -1 ; #X obj 96 338 * 80; #X obj 96 361 / 81; #X obj 178 281 * $1; #X obj 178 304 / $2; #X msg 9 493 set sc-1; #X msg 178 396 set sc-0; #X msg 434 492 set sc+1; #X obj 178 373 s $3-freq; #X obj 9 469 s $3-freq; #X obj 434 467 s $3-freq; #X obj 178 419 s $3-comma; #X obj 9 517 s $3-comma; #X obj 434 517 s $3-comma; #X obj 103 289 outlet; #X obj 107 33 bng 15 250 50 0 empty empty -2 0 -6 0 8 -257472 -1 -1 ; #X obj 179 33 bng 15 250 50 0 empty empty +2 0 -6 0 8 -257472 -1 -1 ; #X floatatom -80 617 5 0 0 0 - - -; #X obj -29 550 * 80; #X obj -29 573 / 81; #X obj -80 638 s $3-freq; #X obj -80 686 s $3-comma; #X obj 457 549 * 81; #X obj 457 572 / 80; #X floatatom 537 614 5 0 0 0 - - -; #X obj 537 636 s $3-freq; #X obj 537 686 s $3-comma; #X msg 537 661 set sc+2; #X msg -80 662 set sc-2; #X floatatom 434 420 5 0 0 0 - - -; #X floatatom 9 419 5 0 0 0 - - -; #X obj 178 256 r pitch; #X connect 0 0 15 0; #X connect 1 0 0 0; #X connect 1 0 13 0; #X connect 1 0 21 0; #X connect 2 0 3 0; #X connect 3 0 36 0; #X connect 4 0 17 0; #X connect 5 0 4 0; #X connect 5 0 14 0; #X connect 5 0 21 0; #X connect 6 0 16 0; #X connect 7 0 6 0; #X connect 7 0 12 0; #X connect 7 0 21 0; #X connect 8 0 9 0; #X connect 9 0 37 0; #X connect 10 0 11 0; #X connect 11 0 0 0; #X connect 11 0 2 0; #X connect 11 0 8 0; #X connect 12 0 19 0; #X connect 13 0 18 0; #X connect 14 0 20 0; #X connect 22 0 24 0; #X connect 22 0 21 0; #X connect 22 0 35 0; #X connect 23 0 31 0; #X connect 23 0 21 0; #X connect 23 0 34 0; #X connect 24 0 27 0; #X connect 25 0 26 0; #X connect 26 0 24 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 31 0 32 0; #X connect 34 0 33 0; #X connect 35 0 28 0; #X connect 36 0 4 0; #X connect 36 0 29 0; #X connect 37 0 6 0; #X connect 37 0 25 0; #X connect 38 0 10 0; #X coords 0 -1 1 1 100 50 1 100 0;
#N canvas 0 0 450 300 10; #X symbolatom 103 160 0 0 0 2 syntonic_comma - -; #X symbolatom 104 128 0 0 0 2 note - -; #X obj 51 42 r $1-note; #X obj 123 42 r $1-comma; #X connect 2 0 1 0; #X connect 3 0 0 0; #X coords 0 -1 1 1 110 80 1 100 100;
#N canvas 416 394 589 407 10; #X obj 172 141 f 1; #X msg 205 87 2; #X msg 240 86 4; #X floatatom 172 184 5 0 0 0 - - -; #X obj 6 30 bng 15 250 50 0 empty empty -2 0 -6 0 8 -99865 -1 -1; #X msg 172 87 1; #X msg 135 88 0.5; #X msg 99 88 0.25; #X obj 27 30 bng 15 250 50 0 empty empty -1 0 -6 0 8 -128992 -1 -1 ; #X obj 50 30 bng 15 250 50 0 empty empty 0 0 -6 0 8 -166441 -1 -1; #X obj 71 30 bng 15 250 50 0 empty empty +1 0 -6 0 8 -195568 -1 -1 ; #X obj 94 30 bng 15 250 50 0 empty empty +2 0 -6 0 8 -233017 -1 -1 ; #X obj 172 210 outlet; #X obj 172 23 loadbang; #X obj 40 211 outlet; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 12 0; #X connect 4 0 7 0; #X connect 4 0 14 0; #X connect 5 0 0 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X connect 8 0 6 0; #X connect 8 0 14 0; #X connect 9 0 5 0; #X connect 9 0 14 0; #X connect 10 0 1 0; #X connect 10 0 14 0; #X connect 11 0 2 0; #X connect 11 0 14 0; #X connect 13 0 5 0; #X coords 0 -1 1 1 120 50 1 0 0;
#N canvas 514 147 452 535 10; #X floatatom 53 193 5 0 0 0 - - -; #X floatatom 53 118 5 0 0 0 - - -; #X obj 53 139 * 2; #X obj 53 163 / 3; #X msg 8 73 408; #X msg 52 73 415; #X msg 93 72 440; #X obj 8 32 bng 15 250 50 0 empty empty 408 0 -6 0 8 -262144 -1 -1 ; #X obj 53 220 s pitch; #X obj 135 39 loadbang; #X obj 34 32 bng 15 250 50 0 empty empty 415 0 -6 0 8 -262144 -1 -1 ; #X obj 62 33 bng 15 250 50 0 empty empty 440 0 -6 0 8 -262144 -1 -1 ; #X connect 0 0 8 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 4 0; #X connect 9 0 6 0; #X connect 10 0 5 0; #X connect 11 0 6 0; #X coords 0 -1 1 1 85 50 1 0 0;
#N canvas 261 25 840 825 12; #X obj 456 295 line~; #X obj 456 271 pack 0 50; #X floatatom 458 160 0 0 0 0 - - -; #X obj 306 232 *~; #X obj 456 196 / 10; #X obj 456 220 moses 0; #X msg 456 244 0; #X obj 326 265 *~; #X obj 265 265 sig~ 1; #X obj 275 318 /~; #X obj 290 292 +~; #X obj 275 370 hip~; #X obj 305 205 osc~; #X obj 304 179 / 2; #X obj 304 147 inlet; #X obj 344 880 t b; #X obj 344 827 f; #X obj 344 905 f; #X msg 458 904 0; #X obj 344 857 moses 1; #X obj 458 876 t b f; #X obj 424 837 moses 1; #X obj 20 487 dbtorms; #X msg 290 700 ; pd dsp 1; #X obj 20 560 line~; #X obj 55 632 *~; #X obj 55 662 dac~; #X obj 20 517 pack 0 50; #X text 129 854 test if less than 1 -->; #X text 95 881 if true convert to bang -->; #X text 91 486 <-- convert from dB to linear units; #X floatatom 314 609 3 0 100 0 dB - -; #X obj 141 15 bng 30 250 50 0 empty empty mute -38 7 0 12 -44926 -1 -1; #X text 109 516 <-- make a ramp to avoid clicks or zipper noise; #X obj 145 631 *~; #X text 364 768 MUTE logic:; #X obj 344 931 s $0-master-lvl; #X obj 314 669 s $0-master-out; #X obj 424 808 r $0-master-out; #X text 51 400 Level control abstraction , used in many of the Pd example patches. The "level" and "mute" controls show up on the parent , calling patch.; #X text 57 907 previous nonzero master-lvl -->; #X text 129 811 recall previous; #X text 129 829 value of master-lvl -->; #X text 30 709 automatically start DSP -->; #X obj 76 582 hip~ 3; #X obj 138 582 hip~ 3; #X obj 21 454 r $0-master-out; #X obj 313 564 r $0-master-lvl; #X obj 7 61 hsl 128 15 15 35 0 1 empty empty Richness -2 -6 0 8 -241291 -1 -1 7300 0; #X obj 7 30 hsl 128 15 70 90 0 1 empty empty Volume -2 -6 0 8 -250685 -1 -1 10900 0; #X text 213 30 Cobbled together output~ and waveshape example in the documentation.; #X connect 0 0 3 1; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 7 0; #X connect 3 0 7 1; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 5 1 1 0; #X connect 6 0 1 0; #X connect 7 0 10 1; #X connect 8 0 9 0; #X connect 8 0 10 0; #X connect 9 0 11 0; #X connect 10 0 9 1; #X connect 11 0 44 0; #X connect 11 0 45 0; #X connect 12 0 3 0; #X connect 13 0 12 0; #X connect 14 0 13 0; #X connect 15 0 17 0; #X connect 16 0 19 0; #X connect 17 0 36 0; #X connect 18 0 36 0; #X connect 19 0 15 0; #X connect 19 1 20 0; #X connect 20 0 18 0; #X connect 21 1 17 1; #X connect 22 0 27 0; #X connect 24 0 34 0; #X connect 24 0 25 0; #X connect 25 0 26 0; #X connect 27 0 24 0; #X connect 31 0 23 0; #X connect 31 0 37 0; #X connect 32 0 16 0; #X connect 34 0 26 1; #X connect 38 0 16 1; #X connect 38 0 21 0; #X connect 44 0 25 1; #X connect 45 0 34 1; #X connect 46 0 22 0; #X connect 47 0 31 0; #X connect 48 0 2 0; #X connect 49 0 37 0; #X connect 49 0 23 0; #X coords 0 -1 1 1 175 80 1 0 0;
Hallo, David F. Place hat gesagt: // David F. Place wrote:
Imagine my delight when I first enrolled in the PD list a few days ago to find that you've all resolved to give up grumpiness so as not to put off newbies like me! It gave me courage to put forward my first effort for criticism and feedback.
Ah, the effort pays off! ;)
The patch implements a tone generator for Pythagorean tuning with syntonic comma offsets. I hope it will help my renaissance flute consort to learn to play in just intonation in the style of Zarlino.
I'm currently far away from a running Pd, so I will have to take a look at your patch later, but I just wanted to mention the "tunetof" abstraction that you can find in the CVS on pure-data.sf.net in /abstractions/footils/tunetof. It is a kind of "mtof" for just and other tunings and supports tuning definitions in Scala format. Or rather, there is a Python script included that can convert Scala tunings to numerical lists that then can be used inside tunetof's internal lookup table. Some examples are already included in their converted format. (I think Zarlino scales as well). This may be interesting for you, too, because it fits rather nicely into the normal way of working with "scales" in Pd, that is, using integer numbers specifiying the positions of notes in a scale.
Frank Barknecht _ ______footils.org_ __goto10.org__
Hallo, David F. Place hat gesagt: // David F. Place wrote:
The patch implements a tone generator for Pythagorean tuning with syntonic comma offsets. I hope it will help my renaissance flute consort to learn to play in just intonation in the style of Zarlino.
So, it has to be usable by non-electronic music people. It does what I want. I would appreciate if anyone could review it for style and understanding. I suspect that I have done some unnecessary things do to my imperfect understandingOne thing in particular that it does in a way I don't like is setting the note name. I would prefer to pass the note name as an argument to the noteSelector abstraction instead of having that bit of [set( and [send] circuitry off to the side of the noteSelector, but I couldn't figure out how.
Now I could look at your patch, very nice work and a great idea to start with. The solution to your "set note name"-question isn't too hard:
Besides numbers you can also pass symbols as argument, so you could call noteSelector like this: [noteSelector 32 27 F-Natural $0]. Then "$3" inside the abstraction would be replaced by "F-Natural". However of course you cannot use a [f F-Natural] as that is illegal, you need to use [symbol F-Natural] instead. Connect a message [set $1( afterwards and send it to "$0-note" or rather [s $4-note] if you pass $0 as fourth argument.
Btw: A generic container for both float- and symbol-arguments is [list append] like this: [list append $3] here is equivalent to [symbol $3], but if $3 would hold a number, [list append $3] would be equivalent to [f $3], because [list] automatically converts single-element lists in a smart way to float- or symbol-messages.
I have one criticism to make as well. Long term pd-list readers will already guess what's coming now: Sooner or later you may run into problems with the execution order in your patch because you didn't use a single [trigger] object in almost all of your abstractions. (Only two triggers are used, which you copied from the examples.)
Triggers are important to use wherever you have "fanning" connections, that is, more than one patch-cord running out of a single object. The order, in which the messages are transported along each of these patchcords, is *undefined* in Pd! You may consider it as randomly (even when in reality it isn't).
You have a lot of these, for example every bng-object in your patch is source for several patch cords. This may work now because you're lucky and the connections actually fire in the correct order by coincidence, but as soon as you edit the patch a bit more and re-connect stuff, it *will* break. Promised.
Attached patch illustrates one of the ways your patches will break.
So you really should make yourself familiar with the way, execution order in Pd works and with the trigger-object and replace all fanning connections with correct triggers.
Frank Barknecht _ ______footils.org_ __goto10.org__
What kind of question is that? You think you can just come here and
be all friendly and expect a response?!?
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
Ok, hope the tone came across right there... Sounds like a
interesting use of Pd, I always like to hear about things being
stretched a bit here and there.
.hc
On Nov 30, 2006, at 8:44 AM, David F. Place wrote:
Hello PD Virtuosi:
Imagine my delight when I first enrolled in the PD list a few days
ago to find that you've all resolved to give up grumpiness so as
not to put off newbies like me! It gave me courage to put forward
my first effort for criticism and feedback.The patch implements a tone generator for Pythagorean tuning with
syntonic comma offsets. I hope it will help my renaissance flute
consort to learn to play in just intonation in the style of
Zarlino. So, it has to be usable by non-electronic music
people. It does what I want. I would appreciate if anyone could
review it for style and understanding. I suspect that I have done
some unnecessary things do to my imperfect understandingOne thing in particular that it does in a way I don't like is
setting the note name. I would prefer to pass the note name as an
argument to the noteSelector abstraction instead of having that bit
of [set( and [send] circuitry off to the side of the noteSelector,
but I couldn't figure out how.Thanks in advance for your attention.
Cheers, David
#N canvas 33 25 349 877 12; #X floatatom -20 76 5 0 0 2 frequency - -; #X obj -19 36 r $0-freq; #X obj -20 255 s $0-note; #X msg -20 231 set D-natural; #X obj -18 308 s $0-note; #X obj -21 363 s $0-note; #X obj -23 419 s $0-note; #X obj -21 473 s $0-note; #X obj -21 526 s $0-note; #X obj -21 582 s $0-note; #X obj -21 637 s $0-note; #X obj -22 687 s $0-note; #X obj -23 741 s $0-note; #X obj -24 796 s $0-note; #X obj -23 851 s $0-note; #X msg -21 340 set E-natural; #X msg -23 396 set F-natural; #X msg -21 450 set F-sharp; #X msg -21 502 set G-natural; #X msg -21 556 set G-sharp; #X msg -21 611 set A-natural; #X msg -22 662 set B-flat; #X msg -23 717 set B-natural; #X msg -24 772 set C-natural; #X msg -23 826 set C-sharp; #X msg -18 285 set E-flat; #X text -20 10 Pythagorean Tone Generator; #X obj -20 118 *; #X floatatom 51 94 5 0.25 2 0 - - -; #X obj 69 33 octaveSelector; #X obj 104 231 noteSelector 1 1 $0; #X obj 104 285 noteSelector 256 243 $0; #X obj 104 340 noteSelector 9 8 $0; #X obj 104 397 noteSelector 32 27 $0; #X obj 104 450 noteSelector 81 64 $0; #X obj 104 503 noteSelector 4 3 $0; #X obj 104 557 noteSelector 729 512 $0; #X obj 105 610 noteSelector 3 2 $0; #X obj 106 663 noteSelector 128 81 $0; #X obj 105 717 noteSelector 27 16 $0; #X obj 106 771 noteSelector 16 9 $0; #X obj 106 824 noteSelector 243 128 $0; #X obj 202 33 pitchSelector; #X obj -20 141 toneGenerator; #X obj 202 92 noteDisplay $0; #X connect 0 0 27 0; #X connect 1 0 0 0; #X connect 3 0 2 0; #X connect 15 0 5 0; #X connect 16 0 6 0; #X connect 17 0 7 0; #X connect 18 0 8 0; #X connect 19 0 9 0; #X connect 20 0 10 0; #X connect 21 0 11 0; #X connect 22 0 12 0; #X connect 23 0 13 0; #X connect 24 0 14 0; #X connect 25 0 4 0; #X connect 27 0 43 0; #X connect 28 0 27 1; #X connect 29 0 27 0; #X connect 29 1 28 0; #X connect 30 0 3 0; #X connect 31 0 25 0; #X connect 32 0 15 0; #X connect 33 0 16 0; #X connect 34 0 17 0; #X connect 35 0 18 0; #X connect 36 0 19 0; #X connect 37 0 20 0; #X connect 38 0 21 0; #X connect 39 0 22 0; #X connect 40 0 23 0; #X connect 41 0 24 0; #N canvas 204 45 837 771 12; #X floatatom 178 353 5 0 0 0 - - -; #X obj 143 33 bng 15 250 50 0 empty empty +0 0 -6 0 8 -90133 -1 -1 ; #X obj 267 338 * 81; #X obj 267 361 / 80; #X floatatom 434 445 5 0 0 0 - - -; #X obj 161 33 bng 15 250 50 0 empty empty +1 0 -6 0 8 -250685 -1 -1 ; #X floatatom 9 448 5 0 0 0 - - -; #X obj 125 33 bng 15 250 50 0 empty empty -1 0 -6 0 8 -250685 -1 -1 ; #X obj 96 338 * 80; #X obj 96 361 / 81; #X obj 178 281 * $1; #X obj 178 304 / $2; #X msg 9 493 set sc-1; #X msg 178 396 set sc-0; #X msg 434 492 set sc+1; #X obj 178 373 s $3-freq; #X obj 9 469 s $3-freq; #X obj 434 467 s $3-freq; #X obj 178 419 s $3-comma; #X obj 9 517 s $3-comma; #X obj 434 517 s $3-comma; #X obj 103 289 outlet; #X obj 107 33 bng 15 250 50 0 empty empty -2 0 -6 0 8 -257472 -1 -1 ; #X obj 179 33 bng 15 250 50 0 empty empty +2 0 -6 0 8 -257472 -1 -1 ; #X floatatom -80 617 5 0 0 0 - - -; #X obj -29 550 * 80; #X obj -29 573 / 81; #X obj -80 638 s $3-freq; #X obj -80 686 s $3-comma; #X obj 457 549 * 81; #X obj 457 572 / 80; #X floatatom 537 614 5 0 0 0 - - -; #X obj 537 636 s $3-freq; #X obj 537 686 s $3-comma; #X msg 537 661 set sc+2; #X msg -80 662 set sc-2; #X floatatom 434 420 5 0 0 0 - - -; #X floatatom 9 419 5 0 0 0 - - -; #X obj 178 256 r pitch; #X connect 0 0 15 0; #X connect 1 0 0 0; #X connect 1 0 13 0; #X connect 1 0 21 0; #X connect 2 0 3 0; #X connect 3 0 36 0; #X connect 4 0 17 0; #X connect 5 0 4 0; #X connect 5 0 14 0; #X connect 5 0 21 0; #X connect 6 0 16 0; #X connect 7 0 6 0; #X connect 7 0 12 0; #X connect 7 0 21 0; #X connect 8 0 9 0; #X connect 9 0 37 0; #X connect 10 0 11 0; #X connect 11 0 0 0; #X connect 11 0 2 0; #X connect 11 0 8 0; #X connect 12 0 19 0; #X connect 13 0 18 0; #X connect 14 0 20 0; #X connect 22 0 24 0; #X connect 22 0 21 0; #X connect 22 0 35 0; #X connect 23 0 31 0; #X connect 23 0 21 0; #X connect 23 0 34 0; #X connect 24 0 27 0; #X connect 25 0 26 0; #X connect 26 0 24 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 31 0 32 0; #X connect 34 0 33 0; #X connect 35 0 28 0; #X connect 36 0 4 0; #X connect 36 0 29 0; #X connect 37 0 6 0; #X connect 37 0 25 0; #X connect 38 0 10 0; #X coords 0 -1 1 1 100 50 1 100 0; #N canvas 0 0 450 300 10; #X symbolatom 103 160 0 0 0 2 syntonic_comma - -; #X symbolatom 104 128 0 0 0 2 note - -; #X obj 51 42 r $1-note; #X obj 123 42 r $1-comma; #X connect 2 0 1 0; #X connect 3 0 0 0; #X coords 0 -1 1 1 110 80 1 100 100; #N canvas 416 394 589 407 10; #X obj 172 141 f 1; #X msg 205 87 2; #X msg 240 86 4; #X floatatom 172 184 5 0 0 0 - - -; #X obj 6 30 bng 15 250 50 0 empty empty -2 0 -6 0 8 -99865 -1 -1; #X msg 172 87 1; #X msg 135 88 0.5; #X msg 99 88 0.25; #X obj 27 30 bng 15 250 50 0 empty empty -1 0 -6 0 8 -128992 -1 -1 ; #X obj 50 30 bng 15 250 50 0 empty empty 0 0 -6 0 8 -166441 -1 -1; #X obj 71 30 bng 15 250 50 0 empty empty +1 0 -6 0 8 -195568 -1 -1 ; #X obj 94 30 bng 15 250 50 0 empty empty +2 0 -6 0 8 -233017 -1 -1 ; #X obj 172 210 outlet; #X obj 172 23 loadbang; #X obj 40 211 outlet; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 12 0; #X connect 4 0 7 0; #X connect 4 0 14 0; #X connect 5 0 0 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X connect 8 0 6 0; #X connect 8 0 14 0; #X connect 9 0 5 0; #X connect 9 0 14 0; #X connect 10 0 1 0; #X connect 10 0 14 0; #X connect 11 0 2 0; #X connect 11 0 14 0; #X connect 13 0 5 0; #X coords 0 -1 1 1 120 50 1 0 0; #N canvas 514 147 452 535 10; #X floatatom 53 193 5 0 0 0 - - -; #X floatatom 53 118 5 0 0 0 - - -; #X obj 53 139 * 2; #X obj 53 163 / 3; #X msg 8 73 408; #X msg 52 73 415; #X msg 93 72 440; #X obj 8 32 bng 15 250 50 0 empty empty 408 0 -6 0 8 -262144 -1 -1 ; #X obj 53 220 s pitch; #X obj 135 39 loadbang; #X obj 34 32 bng 15 250 50 0 empty empty 415 0 -6 0 8 -262144 -1 -1 ; #X obj 62 33 bng 15 250 50 0 empty empty 440 0 -6 0 8 -262144 -1 -1 ; #X connect 0 0 8 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 1 0; #X connect 7 0 4 0; #X connect 9 0 6 0; #X connect 10 0 5 0; #X connect 11 0 6 0; #X coords 0 -1 1 1 85 50 1 0 0; #N canvas 261 25 840 825 12; #X obj 456 295 line~; #X obj 456 271 pack 0 50; #X floatatom 458 160 0 0 0 0 - - -; #X obj 306 232 *~; #X obj 456 196 / 10; #X obj 456 220 moses 0; #X msg 456 244 0; #X obj 326 265 *~; #X obj 265 265 sig~ 1; #X obj 275 318 /~; #X obj 290 292 +~; #X obj 275 370 hip~; #X obj 305 205 osc~; #X obj 304 179 / 2; #X obj 304 147 inlet; #X obj 344 880 t b; #X obj 344 827 f; #X obj 344 905 f; #X msg 458 904 0; #X obj 344 857 moses 1; #X obj 458 876 t b f; #X obj 424 837 moses 1; #X obj 20 487 dbtorms; #X msg 290 700 ; pd dsp 1; #X obj 20 560 line~; #X obj 55 632 *~; #X obj 55 662 dac~; #X obj 20 517 pack 0 50; #X text 129 854 test if less than 1 -->; #X text 95 881 if true convert to bang -->; #X text 91 486 <-- convert from dB to linear units; #X floatatom 314 609 3 0 100 0 dB - -; #X obj 141 15 bng 30 250 50 0 empty empty mute -38 7 0 12 -44926 -1 -1; #X text 109 516 <-- make a ramp to avoid clicks or zipper noise; #X obj 145 631 *~; #X text 364 768 MUTE logic:; #X obj 344 931 s $0-master-lvl; #X obj 314 669 s $0-master-out; #X obj 424 808 r $0-master-out; #X text 51 400 Level control abstraction , used in many of the Pd example patches. The "level" and "mute" controls show up on the parent , calling patch.; #X text 57 907 previous nonzero master-lvl -->; #X text 129 811 recall previous; #X text 129 829 value of master-lvl -->; #X text 30 709 automatically start DSP -->; #X obj 76 582 hip~ 3; #X obj 138 582 hip~ 3; #X obj 21 454 r $0-master-out; #X obj 313 564 r $0-master-lvl; #X obj 7 61 hsl 128 15 15 35 0 1 empty empty Richness -2 -6 0 8
-241291 -1 -1 7300 0; #X obj 7 30 hsl 128 15 70 90 0 1 empty empty Volume -2 -6 0 8 -250685 -1 -1 10900 0; #X text 213 30 Cobbled together output~ and waveshape example in the documentation.; #X connect 0 0 3 1; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 7 0; #X connect 3 0 7 1; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 5 1 1 0; #X connect 6 0 1 0; #X connect 7 0 10 1; #X connect 8 0 9 0; #X connect 8 0 10 0; #X connect 9 0 11 0; #X connect 10 0 9 1; #X connect 11 0 44 0; #X connect 11 0 45 0; #X connect 12 0 3 0; #X connect 13 0 12 0; #X connect 14 0 13 0; #X connect 15 0 17 0; #X connect 16 0 19 0; #X connect 17 0 36 0; #X connect 18 0 36 0; #X connect 19 0 15 0; #X connect 19 1 20 0; #X connect 20 0 18 0; #X connect 21 1 17 1; #X connect 22 0 27 0; #X connect 24 0 34 0; #X connect 24 0 25 0; #X connect 25 0 26 0; #X connect 27 0 24 0; #X connect 31 0 23 0; #X connect 31 0 37 0; #X connect 32 0 16 0; #X connect 34 0 26 1; #X connect 38 0 16 1; #X connect 38 0 21 0; #X connect 44 0 25 1; #X connect 45 0 34 1; #X connect 46 0 22 0; #X connect 47 0 31 0; #X connect 48 0 2 0; #X connect 49 0 37 0; #X connect 49 0 23 0; #X coords 0 -1 1 1 175 80 1 0 0; _______________________________________________ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/ listinfo/pd-list
If you are not part of the solution, you are part of the problem.