Hi,
does anyone know of an external or abstraction that behaves like the buzz and gbuzz opcodes in Csound?
If you don't know [g]buzz, they output a set of harmonically related [co]sine partials. I tried simulating this with sinesum arrays and tabosc, but the interesting part in buzz is, that one can change the amplitudes of the partials at control rate. But changing the array while running the wavetable oscillator in PD is not an option, as it gives nasty glitches.
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
hi Frank,
you may try to simulate buzz effects with filters. Or maybe swapping and crossfading a pair of arrays would do (but probably only for slow control rates)? Similar to using dual-head delay line for harmonizer effect (but with a different window). Something like
...fotzsyzrkFILLkrz... ...zrkFILLkrzysztof...
Btw. converting Csound opcodes into Pd externals is easy, and with clever little preprocessing they should be possible to generate `on demand' (for research and educational purposes only), bypassing all the licensing clashes. Has anyone thought about this?
Frank Barknecht wrote: ...
does anyone know of an external or abstraction that behaves like the buzz and gbuzz opcodes in Csound?
...
amplitudes of the partials at control rate. But changing the array while running the wavetable oscillator in PD is not an option, as it gives nasty glitches.
Hi Krzysztof,
Krzysztof Czaja hat gesagt: // Krzysztof Czaja wrote:
you may try to simulate buzz effects with filters. Or maybe swapping and crossfading a pair of arrays would do (but probably only for slow control rates)? Similar to using dual-head delay line for harmonizer effect (but with a different window). Something like
...fotzsyzrkFILLkrz... ...zrkFILLkrzysztof...
And what does _that_ mean? It is not Polish: My parents lived in Poland until about 40 years ago and they speak Polish and I never heard them say "fotzsyzrkFILLkrz" ^_^
Now seriously: How is crossfading two arrays done? I understand the harmonizer, "fotzsyzrkFILLkrz" does mean a tape running backwards?
Btw. converting Csound opcodes into Pd externals is easy, and with clever little preprocessing they should be possible to generate `on demand' (for research and educational purposes only), bypassing all the licensing clashes. Has anyone thought about this?
I came to PD from Csound. Working in Csound is totally different from working with PD, and I feel a lot more at home with Miller's way of thinking, expressed in PD. On the other hand, I really miss some opcodes, mainly because I would like to try some things from the Csound Book, which I never tried when I was still using Csound. As Csound also is a major source of dsp source code, I was thinking of starting to port some opcodes to PD (after I grok writing externals, but there's the HOWTO)
But then I looked at the buzz code in csound, and I simply didn't understand it yet :( Now I am waiting for my "Dogde: Computer Music" to arrive, which supposedly also has a description of the buzz generator.
But this opcode porting (for educational and research purpuses only, except the non-MIT-licensed ones) seems to be a very good idea.
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
HI all,
It's in
Moorer, J. A., "The synthesis of complex audio spectra by means of discrete summation formulae," Journal of the Audio Engineering Society, 24/8, 1976, pp. 717-727.
There are some abstruse bits.
cheers Miller
On Fri, Jan 25, 2002 at 07:50:18PM +0100, Frank Barknecht wrote:
Hi Krzysztof,
Krzysztof Czaja hat gesagt: // Krzysztof Czaja wrote:
you may try to simulate buzz effects with filters. Or maybe swapping and crossfading a pair of arrays would do (but probably only for slow control rates)? Similar to using dual-head delay line for harmonizer effect (but with a different window). Something like
...fotzsyzrkFILLkrz... ...zrkFILLkrzysztof...
And what does _that_ mean? It is not Polish: My parents lived in Poland until about 40 years ago and they speak Polish and I never heard them say "fotzsyzrkFILLkrz" ^_^
Now seriously: How is crossfading two arrays done? I understand the harmonizer, "fotzsyzrkFILLkrz" does mean a tape running backwards?
Btw. converting Csound opcodes into Pd externals is easy, and with clever little preprocessing they should be possible to generate `on demand' (for research and educational purposes only), bypassing all the licensing clashes. Has anyone thought about this?
I came to PD from Csound. Working in Csound is totally different from working with PD, and I feel a lot more at home with Miller's way of thinking, expressed in PD. On the other hand, I really miss some opcodes, mainly because I would like to try some things from the Csound Book, which I never tried when I was still using Csound. As Csound also is a major source of dsp source code, I was thinking of starting to port some opcodes to PD (after I grok writing externals, but there's the HOWTO)
But then I looked at the buzz code in csound, and I simply didn't understand it yet :( Now I am waiting for my "Dogde: Computer Music" to arrive, which supposedly also has a description of the buzz generator.
But this opcode porting (for educational and research purpuses only, except the non-MIT-licensed ones) seems to be a very good idea.
bye,
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______ / __// __ /__/ __// // __ \ / / __ \ ___\ / / / ____/ / / / // ____// /\ \ ___\____ \ /_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
There are LADSPA plugins for many of the csound opcodes. I'm pretty sure buzz and gbuzz are in there.
On Fri, 2002-01-25 at 20:42, Miller Puckette wrote:
HI all,
It's in
Moorer, J. A., "The synthesis of complex audio spectra by means of discrete summation formulae," Journal of the Audio Engineering Society, 24/8, 1976, pp. 717-727.
There are some abstruse bits.
jfm3 hat gesagt: // jfm3 wrote:
There are LADSPA plugins for many of the csound opcodes. I'm pretty sure buzz and gbuzz are in there.
Now that you said it, it dug out my old q2ladspa distribution, which indeed also tried a port of ugens4 and the included buzz opcode. Unfortunatley I cannot get this to work as a LADSPA plugin. Compilation of q2ladspa yields a lot of errors and although some opcodes work, ugens4 does not. I cannot find a new version of q2ladspa, even the link on www.ladspa.org is broken.
Krzysztof, q2ladspa is a try to semi-automatically generate code out of the Csound opcodes, like you suggested. Paul Barton-Davis seemingly did a lot of work to make Csound parseable, maybe that could be helpful for PD now.
Regarding this csound~ object available for Max/MSP, I'm not sure if that would be that helpful. As I said, I miss some opcodes, but really I don't miss orc+sco files, no I don't.
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
Miller Puckette hat gesagt: // Miller Puckette wrote:
It's in
Moorer, J. A., "The synthesis of complex audio spectra by means of discrete summation formulae," Journal of the Audio Engineering Society, 24/8, 1976, pp. 717-727.
Thanks for this reference. I couldn't find the document on the net, but looking for it at NEC's citeseer led me to John Lazzaro and John Wawrzynek's "Subtractive Synthesis without Filters", which describes the buzz opcode as used in SAOL.
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
Frank Barknecht hat gesagt: // Frank Barknecht wrote:
Miller Puckette hat gesagt: // Miller Puckette wrote:
Moorer, J. A., "The synthesis of complex audio spectra by means of discrete summation formulae," Journal of the Audio Engineering Society, 24/8, 1976, pp. 717-727.
Thanks for this reference. I couldn't find the document on the net, but looking for it at NEC's citeseer led me to John Lazzaro and John Wawrzynek's "Subtractive Synthesis without Filters", which describes the buzz opcode as used in SAOL.
Using this last text as reference, I implemented Equation (3) from Lazzarro/Wawrzynek in a buzz~ like abstraction using lots of fexpr~ and expr objects. I do not yet fully understand what I implemented ;), but I think it does indeed sound quite like the buzz from Csound, without using any of its code.
Attached is the buzz~ instrument and a testpatch, buzzrun.pd , which in turn needs my nice graphical ADSR wrapper "gadsr".
__ __
Frank Barknecht ____ ______ ____ __ trip\ \ / /wire ______
/ __// __ /__/ __// // __ \ / / __ \ ___\
/ / / ____/ / / / // ____// /\ \ ___\____ \
/_/ /_____/ /_/ /_//_____// / \ \_____\_____
/_/ _\
hi,
catching up with mail after weekend, I would like to clear up this one:
Frank Barknecht wrote: ...
Krzysztof Czaja hat gesagt: // Krzysztof Czaja wrote:
...
...fotzsyzrkFILLkrz... ...zrkFILLkrzysztof...
...
Now seriously: How is crossfading two arrays done? I understand the harmonizer, "fotzsyzrkFILLkrz" does mean a tape running backwards?
Indeed, it was not very helpful...
Even if it looked like, I did not mean retrograding (as in a sampling technique of two-way crossfade looping of a single sample), but simply crossfading any two different waveforms.
This was kind of a general remark: if there is a periodic discontinuity of a signal source (like filling a table once a control period), then a declicking/smoothing method would be to use two copies of a source and a flip-flop crossfading scheme similar to that of a simple double-headed harmonizer. Not useful, if there is an opcode (like your external or former abstraction) with continuously modifiable parameters, of course.
And yes... the most efficient, and reliable way in this, like in many similar cases, and very often the most straightforward, is to make an external (also in a permutation case discussed in another thread).
Krzysztof