Frank wrote:
It's not so much the tool, as it is the skills that makes music sound good.
That is true for really good tools. Needless to say that Pd is one of them.
But there are a lot of tools out there with which it is not so much the skills as it is the tool that makes music sound good - meaning that a completely unskilled musician can make something that sounds "pretty good", and a skilled musician cannot make things sound much better (and usually won't use such tools). In those cases the music usually "sounds like the tool". Those are bad tools for making music, though they can be excellent tools for having fun.
If you use a [phasor~] as a sawtooth oscillator source, you're "wrong" in both Max and Pd.
Sorry may I ask why? Do you mean that using a sawtooth oscillator source is a wrong starting point for creating interesting music, or that [phasor~] is not the right object to use as a sawtooth oscillator?? In the latter case, what should you use instead??
(ohhh, I see maybe: it is because of aliasing isn't it? indeed I always wondered: how do you simulate a sawtooth oscillator and avoid aliasing [without a huge oversampling and filtering]?)
Matteo Sisti Sette a écrit :
Frank wrote:
It's not so much the tool, as it is the skills that makes music sound good.
That is true for really good tools. Needless to say that Pd is one of them.
But there are a lot of tools out there with which it is not so much the skills as it is the tool that makes music sound good - meaning that a completely unskilled musician can make something that sounds "pretty good", and a skilled musician cannot make things sound much better (and usually won't use such tools). In those cases the music usually "sounds like the tool". Those are bad tools for making music, though they can be excellent tools for having fun.
If you use a [phasor~] as a sawtooth oscillator source, you're "wrong" in both Max and Pd.
Sorry may I ask why? Do you mean that using a sawtooth oscillator source is a wrong starting point for creating interesting music, or that [phasor~] is not the right object to use as a sawtooth oscillator?? In the latter case, what should you use instead??
(ohhh, I see maybe: it is because of aliasing isn't it? indeed I always wondered: how do you simulate a sawtooth oscillator and avoid aliasing [without a huge oversampling and filtering]?)
you can find lot's of band limited saw oscillator. the one i love best can be find here : http://www.chnry.net/ch/?083-Nusmuk-audio
cyrille
On Mar 28, 2010, at 8:13 AM, cyrille henry wrote:
Matteo Sisti Sette a écrit :
Frank wrote:
It's not so much the tool, as it is the skills that makes music sound good.
That is true for really good tools. Needless to say that Pd is one
of them. But there are a lot of tools out there with which it is not so much
the skills as it is the tool that makes music sound good - meaning
that a completely unskilled musician can make something that sounds
"pretty good", and a skilled musician cannot make things sound much
better (and usually won't use such tools). In those cases the music
usually "sounds like the tool". Those are bad tools for making
music, though they can be excellent tools for having fun.If you use a [phasor~] as a sawtooth oscillator source, you're "wrong" in both Max and Pd.
Sorry may I ask why? Do you mean that using a sawtooth oscillator
source is a wrong starting point for creating interesting music, or
that [phasor~] is not the right object to use as a sawtooth
oscillator?? In the latter case, what should you use instead?? (ohhh, I see maybe: it is because of aliasing isn't it? indeed I
always wondered: how do you simulate a sawtooth oscillator and
avoid aliasing [without a huge oversampling and filtering]?)you can find lot's of band limited saw oscillator. the one i love best can be find here : http://www.chnry.net/ch/?083-Nusmuk-audio
This looks like a very useful library. I tried the distortion~-
help.pd and it had [../bin/distortion~] for the object, so needless to
say, that didn't work.
If you want to easily build it on all platform and debianize it, you
can use the new libdir template in externals/Makefile. It'll also
make the dist tarball with "make dist".
.hc
I have the audacity to believe that peoples everywhere can have three
meals a day for their bodies, education and culture for their minds,
and dignity, equality and freedom for their spirits. - Martin
Luther King, Jr.
yep,
i've got lot's of work to do on this lib. but no time.
the help file can work with a minor adjustement so i will not update it now.
cyrille
Hans-Christoph Steiner a écrit :
On Mar 28, 2010, at 8:13 AM, cyrille henry wrote:
Matteo Sisti Sette a écrit :
Frank wrote:
It's not so much the tool, as it is the skills that makes music sound good.
That is true for really good tools. Needless to say that Pd is one of them. But there are a lot of tools out there with which it is not so much the skills as it is the tool that makes music sound good - meaning that a completely unskilled musician can make something that sounds "pretty good", and a skilled musician cannot make things sound much better (and usually won't use such tools). In those cases the music usually "sounds like the tool". Those are bad tools for making music, though they can be excellent tools for having fun.
If you use a [phasor~] as a sawtooth oscillator source, you're "wrong" in both Max and Pd.
Sorry may I ask why? Do you mean that using a sawtooth oscillator source is a wrong starting point for creating interesting music, or that [phasor~] is not the right object to use as a sawtooth oscillator?? In the latter case, what should you use instead?? (ohhh, I see maybe: it is because of aliasing isn't it? indeed I always wondered: how do you simulate a sawtooth oscillator and avoid aliasing [without a huge oversampling and filtering]?)
you can find lot's of band limited saw oscillator. the one i love best can be find here : http://www.chnry.net/ch/?083-Nusmuk-audio
This looks like a very useful library. I tried the distortion~-help.pd and it had [../bin/distortion~] for the object, so needless to say, that didn't work.
If you want to easily build it on all platform and debianize it, you can use the new libdir template in externals/Makefile. It'll also make the dist tarball with "make dist".
.hc
I have the audacity to believe that peoples everywhere can have three meals a day for their bodies, education and culture for their minds, and dignity, equality and freedom for their spirits. - Martin Luther King, Jr.
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
On 3/28/10 2:05 PM, Matteo Sisti Sette wrote:
[phasor~] is not the right object to use as a sawtooth oscillator?? In the latter case, what should you use instead??
Because it has DC offset...the signal is only in the positive domain. If you don't care about aliasing, you can do this:
[*~ 2] | [-~ 1]
http://en.flossmanuals.net/PureData/DCOffset
(ohhh, I see maybe: it is because of aliasing isn't it? indeed I always wondered: how do you simulate a sawtooth oscillator and avoid aliasing [without a huge oversampling and filtering]?)
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
http://en.flossmanuals.net/PureData/GeneratingWaveforms
Best, Derek
On Sun, 2010-03-28 at 14:14 +0200, Derek Holzer wrote:
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
Why is that? I thought, when just playing so many partials of the waveform, so that all of them fit in below the nyquist frequency, there won't be any aliasing? Is that wrong?
Very illustrative.
Roman
Well, that is only if all the partials remain under the Nyquist frequency. The idea is to limit the higher harmonics to the ones described by whatever formula you use to generate the waveforms, but if you eliminated all of them them you would just have a sine wave again ;-) So what you get is considerably less aliasing, but without oversampling and filtering you will still get some.
Of course I'm no DSP guru, perhaps someone more mathematically inclined could give a better answer.
Best! D.
On 3/28/10 2:57 PM, Roman Haefeli wrote:
On Sun, 2010-03-28 at 14:14 +0200, Derek Holzer wrote:
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
Why is that? I thought, when just playing so many partials of the waveform, so that all of them fit in below the nyquist frequency, there won't be any aliasing? Is that wrong?
Very illustrative.
Roman
On Sun, 2010-03-28 at 15:04 +0200, Derek Holzer wrote:
Well, that is only if all the partials remain under the Nyquist frequency. The idea is to limit the higher harmonics to the ones described by whatever formula you use to generate the waveforms, but if you eliminated all of them them you would just have a sine wave again ;-) So what you get is considerably less aliasing, but without oversampling and filtering you will still get some.
Let's assume you can make sure, that the maximum number of partials usually is played, but the highest partials is never exceeding the nyquist frequency, which means you use different tables for different frequencies of the waveform generator, then you won't get any aliasing, will you?
Roman
Yes that would work!!!
D.
On 3/28/10 3:24 PM, Roman Haefeli wrote:
On Sun, 2010-03-28 at 15:04 +0200, Derek Holzer wrote:
Well, that is only if all the partials remain under the Nyquist frequency. The idea is to limit the higher harmonics to the ones described by whatever formula you use to generate the waveforms, but if you eliminated all of them them you would just have a sine wave again ;-) So what you get is considerably less aliasing, but without oversampling and filtering you will still get some.
Let's assume you can make sure, that the maximum number of partials usually is played, but the highest partials is never exceeding the nyquist frequency, which means you use different tables for different frequencies of the waveform generator, then you won't get any aliasing, will you?
Roman
Roman Haefeli escribió:
On Sun, 2010-03-28 at 14:14 +0200, Derek Holzer wrote:
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
Why is that? I thought, when just playing so many partials of the waveform, so that all of them fit in below the nyquist frequency, there won't be any aliasing? Is that wrong?
I don't think it's wrong. Obviously, if you generate only ONE table (with sinesum for example) with all the partials necessary for using it at low frequency, and then use it at higher frequencies, it will alias. But if you use different tables for different frequencies, always summing only the sines that are below the nyquist frequency, there can't be any aliasing.
By the way thanks Derek for the link. Now I see why sinesum is _so_ useful (indeed I could/should have seen it before -lol)
On Sun, 2010-03-28 at 15:37 +0200, Matteo Sisti Sette wrote:
Roman Haefeli escribió:
On Sun, 2010-03-28 at 14:14 +0200, Derek Holzer wrote:
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
Why is that? I thought, when just playing so many partials of the waveform, so that all of them fit in below the nyquist frequency, there won't be any aliasing? Is that wrong?
I don't think it's wrong. Obviously, if you generate only ONE table (with sinesum for example) with all the partials necessary for using it at low frequency, and then use it at higher frequencies, it will alias. But if you use different tables for different frequencies, always summing only the sines that are below the nyquist frequency, there can't be any aliasing.
Thanks for clarification, Matteo and Derek. This is actually what I initially thought as well, but the sentence 'however higher frequencies will still alias' sounded to me, as if more measures would be necessary in order to get completely rid of aliasing, which would have been unkown to me.
Roman
I realize that I should have written "however higher playback frequencies of the arrays will still alias"--meaning that if any of the partials went above Nyquist, you'd still have aliasing. Sorry for the confusion.
D.
On 3/28/10 4:03 PM, Roman Haefeli wrote:
On Sun, 2010-03-28 at 15:37 +0200, Matteo Sisti Sette wrote:
Roman Haefeli escribió:
On Sun, 2010-03-28 at 14:14 +0200, Derek Holzer wrote:
Generate bandlimited waveforms. Works for lower frequencies, however higher frequencies will still alias...
Why is that? I thought, when just playing so many partials of the waveform, so that all of them fit in below the nyquist frequency, there won't be any aliasing? Is that wrong?
I don't think it's wrong. Obviously, if you generate only ONE table (with sinesum for example) with all the partials necessary for using it at low frequency, and then use it at higher frequencies, it will alias. But if you use different tables for different frequencies, always summing only the sines that are below the nyquist frequency, there can't be any aliasing.
Thanks for clarification, Matteo and Derek. This is actually what I initially thought as well, but the sentence 'however higher frequencies will still alias' sounded to me, as if more measures would be necessary in order to get completely rid of aliasing, which would have been unkown to me.
Roman
On Sun, 2010-03-28 at 16:09 +0200, Derek Holzer wrote:
I realize that I should have written "however higher playback frequencies of the arrays will still alias"--meaning that if any of the partials went above Nyquist, you'd still have aliasing. Sorry for the confusion.
No problem at all.
Roman
On Sun, Mar 28, 2010 at 02:05:01PM +0200, Matteo Sisti Sette wrote:
Frank wrote:
If you use a [phasor~] as a sawtooth oscillator source, you're "wrong" in both Max and Pd.
...
(ohhh, I see maybe: it is because of aliasing isn't it? indeed I always
wondered: how do you simulate a sawtooth oscillator and avoid aliasing
[without a huge oversampling and filtering]?)
Indeed, it's mainly about the aliasing, and also a bit about some other things like making your oscillators more interesting by modulating phase or frequency and changing their harmonic contents.
But for anti-aliasing, the rj library includes several oscillators that apply the "Transition Splicing" principle explained in Miller's book. It's a cheap way both in memory and CPU to get phat squares and saws. The rj-versions even are a bit cheaper as the examples in the docs because they only use [tabread~] instead of [tabread4~] at the transitions. rj is geared towards mobile devices with slower CPUs. For even better sounding oscillators, check Cyrille's versions.
I support Max Mathews' recommendation of reading "The Theory and Technique of Electronic Music" once you're past the initial learning curve of Pd. It's an invaluable ressource for making nice sounding things (not only) in Pd.
Frank Barknecht Do You RjDj.me? _ ______footils.org__