I agree with the principles of this approach, but perhaps not the complexity. The FLOSS Manual doesn't exist as a way to teach DSP. That's what Miller's stuff is for. It exists as a way to get people who are put off by the existing documentation, which is very very heavy in math, DSP and computer science. These are the people I get in my workshops every time. They just want to get an idea of how to do things and not be intimidated. Thus the emphasis on simple solutions rather than "correct" ones.
If people are ready for a deeper understanding of DSP, that's where Miller's book, and pd-tutorial.com and the Roads CMT book and all the rest come in. And perhaps your Portuguese one as well. I don't want this book to step into a niche which already has many options, I want it to fill a niche which is still wide open: Pd for absolute beginners, no prerequisites required.
D.
Alexandre Porres wrote:
you know, yeah, but the thing is that phasor is not actually an oscilator at all !!!
the name actually refers to phase, and not sawtooth.
Apart from [osc~], oscilators in puredata are basically wavetable oscilators. You have objects such as [tabosc4~] and that is it.
What [phasor~] was designed to do is to indicate the phase of the waveform on a table. So you have to adjust phsor to be compatible with the table size. You do that simply by multiplying phasor (wich ramps up to one) to the table size. So what it is meant to do is tell the position (or "phase") in a table. That is why it goes from 0 to 1. If it did go from -1 to 1, as an ocilator, then it wouldnt work that way.
So there is a misconception of [phasor~] being a sawtooth wave generator that can be misleading. As an oscilator, [phasor~] has a DC Offset. In order to [phasor~] became an oscilator with no DC Offset, we have to correct it.
Maybe it is nice to be explicit about it in Floss Manuals, and say that Pd mostly works out with Table lookup oscilators, and that [osc~] is a special and unique object that is meant to be a Cosine wave oscilator.
Then, when explaining how to get other kinds of wavefroms on Pd, such as sawtooth, square, triangle, we could emphasize that we are creating them, and building them up with the objects we have. Thast also makes it implicit that there is more than one way to di it, and that there is no official or built in Square wave, for instance.
I actually talk a lot about that on my book. And I present examples on how to get a triangle waveform on a table using the sinesum comand, that is, by summing up harmonics.
Cheers Alex
On Mon, Mar 30, 2009 at 3:02 PM, Derek Holzer <derek@umatic.nl mailto:derek@umatic.nl> wrote:
Is it really DC offset when the value goes from 0 to 1 instead of -1 to 1? I mean, that's the way [phasor~] comes right out of the box. D. Alexandre Porres wrote: I tried again, and now it works much better than before... so I guess there was something wrong before. Well Claude, it seems it almost works as the [triangle~] object. Do you guys know about this one? It comes in some external library. Were you who did it anyway Claude? :) [triangle~] works in a similar fashion, it goes smoothly from inverse sawtooth to triangle and the sawtooth depending on the parameter (from 0 to 1). The thing is that Triangle corrects the DC Offset, which could easily be done in the expr. But now I may start to sound like an obssessed DC Offset maniac. Cheers Alex On Mon, Mar 30, 2009 at 1:25 PM, Claude Heiland-Allen <claudiusmaximus@goto10.org <mailto:claudiusmaximus@goto10.org> <mailto:claudiusmaximus@goto10.org <mailto:claudiusmaximus@goto10.org>>> wrote: Alexandre Porres wrote: On Mon, Mar 30, 2009 at 12:02 PM, Claude Heiland-Allen < claudiusmaximus@goto10.org <mailto:claudiusmaximus@goto10.org> <mailto:claudiusmaximus@goto10.org <mailto:claudiusmaximus@goto10.org>>> wrote: [phasor~] [r~ shape] [expr~ if($v1<$v2,$v1/$v2,(1-$v1)/(1-$v2))] I tried that, but it didnt actually worked, I just get actual sawtooths, and no real triangles. Sorry for the shortness/lack of explanation, 0<shape<1, where 1 for phasor, 0.5 for triangle, 0 for backwards phasor. considering shape as a constant, obviously you get weird results if you modulate it, but that's half the fun: 0.0 <= input <= shape ~> 0.0 <= output <= 1.0 (rising ramp) shape <= input <= 1.0 ~> 1.0 >= output >= 0.0 (falling ramp) Hope this helps, Claude -- http://claudiusmaximus.goto10.org -- Alexandre Torres Porres cel. (11)8179-6226 Website: http://porres.googlepages.com/home http://www.myspace.com/alexandretorresporres -- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 35: "Consider transitions"
-- Alexandre Torres Porres cel. (11)8179-6226 Website: http://porres.googlepages.com/home http://www.myspace.com/alexandretorresporres