-
katz
How about this test with the [vcf~] ? It sounds close to me but maybe you are hearing something else.
**edit ** updated with [vcf~] <--> [moog~] low freq cutoff comparison. Try vcf~ with only the right outlet as well.
-
katz
Here is another kind of array object (no structs this time) with free point plotting and curve transitions. There are two layers in the GOP box: the layer with the canvas points and one below with an array-table and a resized slider in front to block mouse interaction.
-
-
katz
Ok here is a final one that simulates the cz waveforms in series by writing half of the array in the first chosen waveform and the other half by the second. If both waveforms are the same, the second phase slider won't do anything.
txcz-wavs3.pdAs far as the array size I am not sure, but I believe at the really low resolutions the actual shape of the waveform is simply altered.
-
katz
I tried your idea with the alternating tables only, but even the "set" messages will cause some clicks, so here is one with tabread4~ & volume alternating that works. The extra cost is one tabread4~ & two sets of line~s and [*~]s but with effective [switch~]ing you could take away the extra tabread4~.
I also experimented with different array sizes (see the switcher at the top-right), and certain waveforms are affected quite a bit while others remain the same, so if someone wants to go this route, the whole setup could be fine-tuned per waveform. In this patch the [*~] before the tabread4~s is changed by a 20ms line~, but if you wanted to change the waveform per voice in a polyphonic setup, before the volume envelope kicked in, and each waveform had a specific table size, this would have to be done immediately with a way to avoid the click.
txcz-wavs2.pd -
katz
I thought it might be nice to group all the waveforms to be read from a single tabread4~ for each operator, and here is the result. The trade-off is that the casio waveforms cannot be modulated at the 2nd input since they are now calculated statically (you can change them live but since the tables are being redrawn, its unusable that way). The feedback is in here too and a comparison w/ the original cos~ style.
txcz-wavs.pd -
katz
I cheated to get some pre-made waveforms with this one (waveforms 2,4,6,8 may not be accurate), and I am wondering if there is an advantage to using the audio math instead, because this one is certaintly lighter. I added a tri-wave at 9 too.
-
katz
Ah that was right there in your first example. Nevertheless, amazing - thanks.
-
katz
I don't have any answers for you to get those arcsin-looking waveforms... but I have also been curious about how to use tables instead of the phasor-cos~ pairing... since the latter generally has nicer sounding modulation
cos_vs_sintable.pd -
katz
I gave the struct challenge a go myself. It seems to have been a success, except for these really annoying graphic drop-outs. I added as many tricks as I could think of to get the structs to reappear in various scenarios.. like edit dragging, menuclose, and first mouse click after opening window. It would be nice to at least have a reliable way to show it as the patch loads.
-
katz
Another version with creation arguments for width and height :
adsr-g.zip -
katz
Hi,
This is a very simple adsr-parameter to array conversion patch for monitoring purposes. It can handle two stage decay addsr too. All parameters are within a 0-1 range. It would be amazing to be able to output new lists from array editing, but this would mean some kind of index change detection. However, I like it as is and hope someone finds it useful. -
-
katz
Hi,
This is a [line] object with added sine-easing. Messages behave
identical to original [line].
line-e.zip
I think the behavior should change during a new message interruption where the easing at the start is removed but kept at the end. Does anyone know how to generate a table with a linear start and sine at the end? An option for sharper sine curve would be useful too. -
katz
@whale-av
Thanks for the info - I'll continue to look into it. The upsample isn't even necessary for lowpass because vcf~ behaves similarly to vcf_lp2~ (some differences with the way the q and amplitude behave) & if you want vcf_lp4~, just stack two vcf~s etc etc. For right now it's useful for the bandpass and highpass and the other "filter~" filters. -
katz
This patch fixes the issue to an extent. There were two different unwanted sounds that I was hearing: 1) a high frequency tambourine-like sound. This went away if I put the filter in a subwindow and upsampled 2x. 2) a pop sound when a large change in filter frequency was made quickly. I created a dual-filter crossfade for this. Each has a switch~ to cut down on CPU, but the vcf_filter~ type which originally used less CPU than the vcf~ now uses more.
Sounds like maybe this isn't an issue for some people, but here it is anyway:
(mp3 with the high frequency sound is included here so it doesn't have to be played in the browser)