has someone got a shaper filter patch? preferably one where i can draw the frequency responce curve into an array.
cheers
2007/2/5, hard off hard.off@gmail.com:
has someone got a shaper filter patch? preferably one where i can draw the frequency responce curve into an array.
Well, don't sndsource -> fft -> multiply(fft_result, freq_response_array) -> rfft -> do the same? (See doc/3.audio.examples/I03.resynthesis.pd for the implementation.)
2007/2/6, hard off hard.off@gmail.com:
i was hoping to do it without resynthesis.
So, what resolution of the drawed curve do you want? If you want to parametrize freq. resp. curve with small set of numbers, it's just conventional equalizer that lets you do so. When you want a curve with arbitrary many points that represents A(F) as precisely as possible, then you can't avoid rfft of the curve (to convolute with the audio stream; the convolution in integral form in itself requires element-by-element vector multiplication). Resynthesis just adds an fft. AFAIC.
cheers denis, thanks for your replies. i want to get something that does the same job as the shaper filter in the k2000 synth....but from reading a bit, i still don't have too much idea, but i think that maybe it's just a combination of a waveshaper and a filter.
i will read more.
On Wed, 7 Feb 2007 00:17:01 +0900 "hard off" hard.off@gmail.com wrote:
cheers denis, thanks for your replies. i want to get something that does the same job as the shaper filter in the k2000 synth....but from reading a bit, i still don't have too much idea, but i think that maybe it's just a combination of a waveshaper and a filter.
The Kawai K2000, K5 and K5000 are all "additive" synthesisers. They are not real additive synthesisers with discrete oscillators, but employ the closed form method for a harmonic series using a trigonometric identity. It is the tweaking of those input parameters that creates the filter-like effect. I don't think the k5/2000 have any real filters at all, maybe in the K5000 which has an architecture a bit like
[oscillator bank] | [shaper] | [post filter]
But those filters are pretty weak, simple remedial filters to top and tail the spectrum. The real spectra shaping happens early in the chain, (there's a group of envelopes that set the levels of the initial partials) rather than later as per traditional subtractive synths.
i will read more.
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
cheers denis, thanks for your replies. i want to get something that does the same job as the shaper filter in the k2000 synth....but from
The Kawai K2000, K5 and K5000 are all "additive" synthesisers. They are not
Isnt the K2000 the Kurzweil with the socalled VAST synthesis engine? Its a sample based synth which can plug in some dsp processing blocks in the signal flow, maybe there is a shaping filter without resynthesis? I dont have a Kurzweil nor worked with one, always wanted one but they where to expensive and now I got pd, which is real VAST.
I don't think the k5/2000 have any real filters at all, maybe in the K5000 which has an architecture a bit like
[oscillator bank] | [shaper] | [post filter]
But those filters are pretty weak, simple remedial filters to top and tail the spectrum. The real spectra shaping happens early in the chain, (there's a group of envelopes that set the levels of the initial partials) rather than later as per traditional subtractive synths.
The architecture is correct for the K5000, but the filters are far from weak. The shaping or morph filter rides on the additive parameters as you described and gives resultats simular the FreqTweak Program on Linux, lot of digital sparkle. They let you define another spectral curve on top of your already exisiting ones. Loads of parameters to edit. Behind the scene these parameters are added/multiplied together to control the indiviual sines.
They tacked on a dsp filter which can do and sound like the usual subtractive stuff complete with resonance. It can be overdriven which sounds rather harsh in terms of digital harsh, no simulated analogue beauty. These dsp filters are also available for the cheesy short PCM samples they build in, mainly for the transients.
Cheers,
Malte
Isnt the K2000 the Kurzweil with the socalled VAST synthesis engine?
yes. sorry i forgot that the kawai's also share a model number.
maybe there is a shaping filter without resynthesis?
yes, there definately is a shaping filter. and i'm pretty sure that it does not include any resynthesis.
i just found this (not about the k2000, but probably similar:
"The resonant filter is actually an FIR Comb filter with very tight bands. In addition, it is pre-programmed with an envelope shape for a really dynamic sweeping effect."
this would be basically the same as a formant filter then, wouldn't it?
I dont have a Kurzweil nor worked with one, always wanted one but they where to expensive and now I got pd, which is real VAST.
yeah. me too.
yes. sorry i forgot that the kawai's also share a model number.
actually there was never a Kawai K2000, only K1,K3,K4, K5 and K5000 (and another K1, K1 II or something like that)
yes, there definately is a shaping filter. and i'm pretty sure that it does not include any resynthesis.
i just found this (not about the k2000, but probably similar:
"The resonant filter is actually an FIR Comb filter with very tight bands. In addition, it is pre-programmed with an envelope shape for a really dynamic sweeping effect."
so something with bandpass filters would be great, which are used for formant filters and vocoders. Have you checked out the Lattice filter object? Of course these approaches are not as precise as resynthesis but have a destinct sound without the additive sparkle. I am about to create a morphing filter synthesizer with some bandpasses in pd with the Emu Morpheus in mind. Although they interpolate the filter coefficients to create the dynamic morph. Can the biquad or FIR objects do this? How dynamic are they, I nether tried them... I once wrote a nasty digital sounding VSTi (as opposite to the 303 clones) called Microcomputer, not the biggest financial suggest due to its alien nature. Its filter also blend between different coefficients but it could easy get unstable. Coefficients are sort of small convolution anyway...
Cheers,
Malte Steiner media art + development -www.block4.com-
On Wed, 07 Feb 2007 00:16:18 +0100 Malte Steiner steiner@block4.com wrote:
actually there was never a Kawai K2000, only K1,K3,K4, K5 and K5000 (and another K1, K1 II or something like that)
Yeah I had both K5 and K1 for a while. If I remember correctly K1 was 4 part per voice, just 4 static spectra with an envelope for each and you could modulate two of them together which made some neat ringmod type effects.
It was advertised as an easier to program version of the K5, but in fact it was nothing like it. The K5 had some really fancy breakpoint envelopes that were very flexible, with a kind of matrix to assign each env to one or more groups of sinewaves. It needed plenty of time and patience to program but made some sounds that were unrivalled at the time.
I also get those mixed up. The K2000 was a Kurtzweil now I recall, a development of the K1000 additive synthesiser. That one really had individual sines and was quite a beast.
"The resonant filter is actually an FIR Comb filter with very tight bands. In addition, it is pre-programmed with an envelope shape for a really dynamic sweeping effect."
Ah yes, that would be lush to follow up an additive stage with. Placing the bands at some ratio (a/b * f) of the harmonics would make them all pop in and out in some sequence when you sweep it. Follow that up with a bit of delay and you have a very sparkly sound.
so something with bandpass filters would be great, which are used for formant filters and vocoders. Have you checked out the Lattice filter object? Of course these approaches are not as precise as resynthesis but have a destinct sound without the additive sparkle. I am about to create a morphing filter synthesizer with some bandpasses in pd with the Emu Morpheus in mind. Although they interpolate the filter coefficients to create the dynamic morph.
Sounds great, look forward to hearing that one.
Can the biquad or FIR objects do this? How dynamic are they, I nether tried them...
No. Well not by interpolating the coefficients directly. It will go unstable and blow up at lots of places. You need to do the interpolation of the parameters before the intermediate stage variables. But that's not very expensive.
Yeah I had both K5 and K1 for a while. If I remember correctly K1 was 4 part per voice, just 4 static spectra with an envelope for each and you could modulate two of them together which made some neat ringmod type effects.
It was advertised as an easier to program version of the K5, but in fact it was nothing like it.
Indeed, the only exciting thing was the ringmodulation imho. I would favour the K4 which at least offered the same with filters but I neither ownd one of these. The top was certainly the K3, an hybrid. It offers digital waves of which one of them could be changed and put it through analogue filters and amps, kinda the british OSCar. But it was rare and not so easy to find as the K4 when I was more in second hand gear. But I always love hybrid synths, offering best of both worlds. Have you ever put a pd patch through an analoge filter :)
The K5 had some really fancy breakpoint envelopes that were very flexible, with a kind of matrix to assign each env to one or more groups of sinewaves. It needed plenty of time and patience to program but made some sounds that were unrivalled at the time.
And the K5 had incredible aliasing (but I love intended aliasing). The K5000 is improved, a bit. You need SoundDiver to program it, otherwise you go crazy. A pd patch would be great but a lot of work (see the posts about the universal editor).
I also get those mixed up. The K2000 was a Kurtzweil now I recall, a development of the K1000 additive synthesiser. That one really had individual sines and was quite a beast.
The K1000 was are fine rompler for those who needed it. But the K150 was a so called Fourirsynth and always mystic for me, you needed an Apple II but I never found a screenshot. But now with the power of google and interweb you can download a pdf from the company themself.
http://www.kurzweilmusicsystems.com/support.html?Id=482
Check out also http://machines.hyperreal.org/manufacturers/Kurzweil/info/kurzweil.K-150.txt
The K2000 is sample based but they have some wired compression for the data under the hood which is certainly patented. It has filters which can be exchanged with other dsp processes like waveshapers (to get back on topic), which they called VAST (Variable Architecture Synthesis Technology) synthesis, long live marketing.
Sounds great, look forward to hearing that one.
I have a deep interest to (re)create some all-purpose synths (some with oldschool sound but also some with new methods) with pd recently, to get away from the 1 pd patch is 1 song paradigm which is inherent in all kind of modular synthesis. While its a need to record and break a patch on an actual analogue modular system, its not the case on the computerbased systems. But I know it from some Reaktor using friends and also from my Nord Modular habits. I usually create pieces from scratch and reuse only a little which is ok for a certain kind of music but waste for other as I noticed that I recreate to often the same patch. Biggest personal change is for me a rather tiny incident which happend recently. I use pd since late 90s but with an adventurous latency setting. Some weeks ago I installed 64Studio and happend the first time to have a computer with around 2ms latency, maybe even below but I didn't dared yet. So now the laptop reacts the same or better than my midi gear so hmmmm, the gear become a bit more obsolete. Or better, as I never sell equipment, pd and other audio software, or more precisly, the computerplatform underneath becomes that good.
I checked out some techniques to store parameters which is essential (for instance with the datastructs or a IEM external) and will soon share some patches with an insane drumsynthesizer and a warm polysynth (the ladder only for Linux because it is built around a nice LADSPA oscillator) which sounds a bit oldschool but sometimes I am in need for exactly that.
Biggest quest is to offer a good userinterface and a good mapping (hello Hans) of the parameters to the sweet spot, something which the big manufacturers had to face too. They even had to squish all to the 127 midisteps or, when I remember right, 99 steps in the case off Yamaha DX7. A great userinterface to additive synthesis was the Canadian Technos Acxel, I guess they used the LED as emitter and sensor trick which Jeff Hann demonstrated rather recently. But also great would be to have Jeffs multitouch screen for all kinds of userinterfaces, or maybe Reactable.
Cheers,
Malte Steiner media art + development -www.block4.com-
well, i downloaded the manual for the k2000, and from what i can gather, the shaper filter that my friend told me about is not actually a filter at all, but a waveshaper not very far removed from pd's [cos~] object, but with a couple of important tweaks.
sounds ok. think i will string a few together and detune them and make some funky envelopes...but for the moment here is the basic patch if u care.
aaarrhh! watch your speakers if you play that patch, it will start making sound as soon as it is opened, and it's pretty loud.
hard off a écrit :
.but for the moment here is the basic patch if u care.
Excellent! It reminds me the sound of a famous song I don't remember the name, I tried to make the sequence of this song gimmick in the attached patch
#N canvas 120 84 807 552 10; #N canvas 0 22 458 308 (subpatch) 0; #X array v.a.s.t 131 float 1; #A 0 0 0 0 0 0 0 0 0.0169492 0.0338983 0.0508475 0.0677966 0.0847458 0.101695 0.135593 0.169492 0.20339 0.220339 0.20339 0.20339 0.220339 0.237288 0.254237 0.254237 0.254237 0.271186 0.305085 0.322034 0.338983 0.372881 0.40678 0.440678 0.474576 0.491525 0.457627 0.440678 0.457627 0.457627 0.457627 0.440678 0.372881 0.254237 0.220339 0.254237 0.305085 0.288136 0.254237 0.20339 0.186441 0.169492 0.186441 0.186441 0.135593 0.0847458 0.0338983 -0.0338983 -0.101695 -0.169492 -0.271186 -0.355932 -0.423729 -0.440678 -0.423729 -0.474576 -0.559322 -0.576271 -0.508475 -0.423729 -0.40678 -0.457627 -0.508475 -0.59322 -0.677966 -0.711864 -0.728814 -0.779661 -0.864407 -0.966102 -1 -0.966102 -0.898305 -0.79661 -0.711864 -0.711864 -0.745763 -0.762712 -0.711864 -0.627119 -0.576271 -0.627119 -0.711864 -0.779661 -0.813559 -0.813559 -0.762712 -0.677966 -0.576271 -0.508475 -0.508475 -0.474576 -0.355932 -0.254237 -0.220339 -0.135593 0 0.0677966 0.0169492 -0.0508475 -0.0677966 0.0169492 0.135593 0.169492 0.101695 0.0338983 0.0677966 0.152542 0.288136 0.423729 0.474576 0.457627 0.474576 0.559322 0.644068 0.677966 0.644068 0.576271 0.576271 0.542373 0.525424 0.508475 0.508475 0.525424; #X coords 0 1 130 -1 200 140 1; #X restore 31 177 graph; #X floatatom 622 265 5 0 0 0 - #0-downphasor -; #X obj 17 76 soundfiler; #X obj 17 35 openpanel; #X obj 16 13 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 622 303 phasor~ 0.1; #X floatatom 430 270 5 0 1000 0 - #0-sigfreq -; #X obj 468 287 mtof; #X obj 18 93 t b; #X msg 16 56 read $1 v.a.s.t; #X msg 17 112 ; v.a.s.t normalize; #N canvas 0 22 524 570 shaper 0; #X obj 206 454 cos~; #X obj 211 329 >~ 2; #X obj 246 330 <~ -2; #X obj 227 366 ==~ 0; #X obj 193 396 *~; #X obj 204 429 +~ 0.25; #X obj 89 196 *~; #X obj 182 106 *~; #X obj 293 277 * -1; #X obj 187 291 *~ 2; #X obj 287 198 t b f; #X obj 293 238 * 2; #X obj 347 213 * 2; #X obj 213 80 / 64; #X obj 213 56 r $0-deps; #X obj 347 170 r $0-deps; #X obj 346 66 r $0-lims; #X obj 346 136 / 256; #X obj 347 113 abs; #X obj 347 88 - 257; #X obj 347 191 / 64; #X obj 80 36 inlet~ signal; #X obj 178 36 inlet~ envelope; #X obj 207 478 outlet~; #X connect 0 0 23 0; #X connect 1 0 3 0; #X connect 2 0 3 0; #X connect 3 0 4 1; #X connect 4 0 5 0; #X connect 5 0 0 0; #X connect 6 0 9 0; #X connect 7 0 6 1; #X connect 8 0 2 1; #X connect 9 0 1 0; #X connect 9 0 2 0; #X connect 9 0 4 0; #X connect 10 0 11 0; #X connect 10 1 11 1; #X connect 11 0 8 0; #X connect 11 0 1 1; #X connect 12 0 11 0; #X connect 13 0 7 1; #X connect 14 0 13 0; #X connect 15 0 20 0; #X connect 16 0 19 0; #X connect 17 0 10 0; #X connect 18 0 17 0; #X connect 19 0 18 0; #X connect 20 0 12 0; #X connect 21 0 6 0; #X connect 22 0 7 0; #X restore 467 393 pd shaper; #X obj 623 283 / -100; #X floatatom 696 442 5 0 256 0 - #0-depr #0-deps; #X floatatom 648 442 5 0 256 0 - #0-limr #0-lims; #X text 648 426 limit; #X text 696 427 depth; #X text 654 481 (scaled 0-256); #X text 344 268 input signal~; #X text 621 245 filter envelope~; #X text 646 464 shaper parameters; #X obj 465 511 dac~; #X obj 252 483 s $0-limr; #X obj 321 483 s $0-depr; #X msg 255 461 128; #X msg 322 459 128; #X obj 288 417 loadbang; #X obj 45 477 s $0-sigfreq; #X obj 138 479 s $0-downphasor; #X msg 138 458 50; #X msg 49 454 24; #X msg 554 277 0; #X obj 495 260 t a b; #X obj 467 310 tabosc4~ v.a.s.t; #X msg 468 211 40; #X msg 494 210 43; #X msg 524 210 35; #X msg 552 211 45; #X msg 585 212 47; #X obj 469 69 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 470 125 i; #X obj 494 125 + 1; #X msg 617 213 50; #X obj 468 149 mod 24; #X obj 468 171 sel 0 3 5 6 9 12 15 17 20 21 23; #X obj 349 111 s $0-limr; #X obj 349 42 avg~; #X obj 349 22 osc~ 0.02; #X obj 349 63 * 50; #X obj 349 86 + 50; #X obj 282 44 avg~; #X obj 282 113 s $0-depr; #X obj 282 24 osc~ 0.1; #X obj 282 65 * 40; #X obj 282 90 + 60; #X obj 447 479 *~ 0.1; #X obj 490 479 *~ 0.1; #X msg 536 109 0; #X obj 536 84 sel 1; #X obj 469 101 metro 160; #X msg 561 109 0; #X obj 591 136 s $0-volr; #X floatatom 546 403 5 0 100 0 - #0-volr -; #X obj 519 443 dbtorms; #X text 544 386 volume; #X msg 600 101 80; #X msg 531 35 ; pd dsp 1; #X text 440 68 play; #X obj 476 11 loadbang; #X connect 1 0 12 0; #X connect 2 0 8 0; #X connect 3 0 9 0; #X connect 4 0 3 0; #X connect 5 0 11 1; #X connect 6 0 7 0; #X connect 7 0 33 0; #X connect 8 0 10 0; #X connect 9 0 2 0; #X connect 11 0 55 0; #X connect 11 0 56 0; #X connect 12 0 5 0; #X connect 24 0 22 0; #X connect 25 0 23 0; #X connect 26 0 24 0; #X connect 26 0 25 0; #X connect 26 0 29 0; #X connect 26 0 30 0; #X connect 29 0 28 0; #X connect 30 0 27 0; #X connect 31 0 33 1; #X connect 31 0 5 1; #X connect 32 0 7 0; #X connect 32 1 31 0; #X connect 33 0 11 0; #X connect 34 0 32 0; #X connect 35 0 32 0; #X connect 36 0 32 0; #X connect 37 0 32 0; #X connect 38 0 32 0; #X connect 39 0 58 0; #X connect 39 0 59 0; #X connect 40 0 41 0; #X connect 40 0 43 0; #X connect 41 0 40 1; #X connect 42 0 32 0; #X connect 43 0 44 0; #X connect 44 0 34 0; #X connect 44 1 34 0; #X connect 44 2 35 0; #X connect 44 3 36 0; #X connect 44 4 36 0; #X connect 44 5 37 0; #X connect 44 6 37 0; #X connect 44 7 38 0; #X connect 44 8 42 0; #X connect 44 9 38 0; #X connect 44 10 42 0; #X connect 46 0 48 0; #X connect 47 0 46 0; #X connect 48 0 49 0; #X connect 49 0 45 0; #X connect 50 0 53 0; #X connect 52 0 50 0; #X connect 53 0 54 0; #X connect 54 0 51 0; #X connect 55 0 21 0; #X connect 56 0 21 1; #X connect 57 0 40 1; #X connect 58 0 57 0; #X connect 58 0 65 0; #X connect 58 1 60 0; #X connect 59 0 40 0; #X connect 60 0 61 0; #X connect 62 0 63 0; #X connect 63 0 56 1; #X connect 63 0 55 1; #X connect 65 0 61 0; #X connect 68 0 66 0; #X connect 68 0 39 0;
When I run this, I get a inlet expected got float error?? (sorry no time to debug, going for 'instant gratification').
mcg
-----Original Message----- From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of Patco Sent: Wednesday, February 07, 2007 8:43 AM To: hard off; pd-list@iem.at Subject: Re: [pd] shaper filter
hard off a écrit :
.but for the moment here is the basic patch if u care.
Excellent! It reminds me the sound of a famous song I don't remember the name, I tried to make the sequence of this song gimmick in the attached patch
Great pulse/clav sound guys.
On Wed, 7 Feb 2007 14:33:35 -0600 "Michael Garrett" mgarrett@garrett-tech.com wrote:
When I run this, I get a inlet expected got float error?? (sorry no time to debug, going for 'instant gratification').
Do a find-last-error and it should take you to the missing object.
mcg
-----Original Message----- From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of Patco Sent: Wednesday, February 07, 2007 8:43 AM To: hard off; pd-list@iem.at Subject: Re: [pd] shaper filter
hard off a écrit :
.but for the moment here is the basic patch if u care.
Excellent! It reminds me the sound of a famous song I don't remember the name, I tried to make the sequence of this song gimmick in the attached patch
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
heh heh, cheers patco. i was expecting that patch to sink to the depths of the great patch ocean.
nice mod.
michael garrat, as far as i can see, the only external used is in the zexy library, which you can easily get by installing pd extended from hans:
On Fri, 9 Feb 2007 01:57:05 +0900 "hard off" hard.off@gmail.com wrote:
michael garrat, as far as i can see, the only external used is in the zexy library, which you can easily get by installing pd extended from hans:
Was that [avg~] ? I think it was. One way to avoid that and stay vanilla is to use [env~] for your LFOs.
[osc~ 0.5] | [*~ 0.5] | [+~ 0.5] | [env~] | [* scaling_factor]
Because [env~] returns RMS it's absolute, that's why you make the waveform positive first. It's output is 0-100 so it probably needs rescaling. If you want bipolar LFOs you'll want to re-center it around zero too.
no, it was [>~ ]
i think there's probably an [expr~] equivalent, but couldn't be assed to figure it out.
Seems to be <~ >~ and ==~ ..
-----Original Message----- From: hard off [mailto:hard.off@gmail.com] Sent: Thursday, February 08, 2007 11:26 AM To: padawan12 Cc: mgarrett@garrett-tech.com; megalegoland@yahoo.fr; pd-list@iem.at Subject: Re: [pd] shaper filter
no, it was [>~ ]
i think there's probably an [expr~] equivalent, but couldn't be assed to figure it out.
Aha, righty ho! Hmm, that's a surprise. I thought those were intrinsic. I believe they should be.
On Thu, 8 Feb 2007 11:30:33 -0600 "Michael Garrett" mgarrett@garrett-tech.com wrote:
Seems to be <~ >~ and ==~ ..
-----Original Message----- From: hard off [mailto:hard.off@gmail.com] Sent: Thursday, February 08, 2007 11:26 AM To: padawan12 Cc: mgarrett@garrett-tech.com; megalegoland@yahoo.fr; pd-list@iem.at Subject: Re: [pd] shaper filter
no, it was [>~ ]
i think there's probably an [expr~] equivalent, but couldn't be assed to figure it out.
[expr~ $v1 >= $v2] should do it.
a.