Tonecarver Blur - First VCV Module!

Testing on Windows 7 here. Very promising module so far, spectral processing stuff is always nice!

Couple of observations :

  • Even if the module wouldn’t support actual polyphonic operation, it should still sum the channels of an incoming polyphonic input. (Blur currently doesn’t appear to be doing that.) (*)
  • The Blur parameter (together with its CV modulation) could use some kind of exponential mapping which favors lower parameter settings for the internal DSP. At the moment the sound pretty much turns into noise after around 0.25 of the parameter value and the remaining 0.25 to 1.00 range doesn’t appear to make a huge difference in the sound. This could of course be a bit subjective and maybe doesn’t happen with all kinds of sound inputs, I only did some limited testing so far.

(*) This is a trivial fix to make, in your module process method you currently have :

float in = inputs[AUDIO_IN_INPUT].getVoltage();

That can simply be changed to :

float in = inputs[AUDIO_IN_INPUT].getVoltageSum();
1 Like

Thanks, good ideas!

Quickly testing this seems to give a better response for the Blur parameter :

fSpread += params[BLUR_SPREAD_ATTENUVERTER_PARAM].getValue() * getCvInput(BLUR_SPREAD_CV_INPUT);    
fSpread = clamp(fSpread, 0.f, 1.f);
fSpread = std::pow(fSpread,3.0f);

(And yes, I know using std::pow isn’t ideal, but the fillOutputFrame is called only once for every FFT frame, I think?)

1 Like

You were right, now doing it the right way - thanks

I think Xcode 9.0.1 is the correct version for your cross compile scripts ?

  • Edit: didn’t run on Catalina, trying Xcode 12.5.1
  • Xcode 12.4 is the latest that runs on Catalina (Xcode - Wikipedia)

this is a really promising beta module,

just had some minutes for testing and did try it on some random sounds, and it can produce nice ambient textures from these with the add of some delay and reverb,

:+1:

is it maybe a bug: when I change the FFT sice from the right click menue it goes silent. I need to delete it and reload it then. maybe it is due to my faulty use.

Hmmm … silence after changing FFT size sounds like a bug. What platform/host are you running on (win, Linux, Mac, ?)

I’m on Win10

might be a bug, the colored lights from the semitone and Robot knobs don’t change the lights anymore although the popup display shows 0 and 1 changes when clicking the “lights” with the mouse.

I tried it again, and after initializing it Blur started wotking again.

@ bdavies00, are you the man behind Nova3 VST? That’s my absolute favorite sequencer in the VST world.

1 Like

While I’m familiar with FFT terminology I agree with Omri that it would be helpful to see the conversion values somewhere. Also, I agree with Xenakios about the scaling for the Blur parameter.

I ran into a problem with module duplication. I noted that if I duplicated a first instance the lights no longer worked. Nor did the second instance. When I loaded a second instance from the modules browser the lights worked but that instantiation was still silent. So at this point it seems only one instance at a time will work, is that expected behavior ?

I also spent some time on a little demo I’ll post later today. I got some very interesting sounds from it, you’re definitely headed in the right direction. :slight_smile:

Yes, Nova3 was one of my VST creations. Glad you enjoy it :slight_smile: Also, check out “Transitions” by CodeFN42. Not my work, but a very nice evolution of a similar concept (rovers in a matrix). Transition

1 Like

It is definitely a bug that second and third instances are not working correctly.Will investigate.Thanks.

1 Like

The dreaded static or global variables that should be class members?

Yes, that was my first thought too. Looking now … but experiencing that other dreaded conundrum … “it works in my environment” :slight_smile:

I could not see anything obvious that would cause lights not to work and audio not to pass. For those of you with issues:

  • What version of VCV Rack are you running? (I am on v1.1.6)
  • Which OS are you using (I am on Win 10, 64 bit)
  • Can you provide a patch file or a video that demonstrates the problem?

Version 1.0.0a is out on dropbox and up on GitHub.

This version includes a few tweaks to Blur (robot gain adjusted, blur control scaled per @Xenakios suggestion, misc tweaks) and introduces the Morse module.

Morse takes a clock input and generates gate output using Morse code patterns based on random characters. The vision is to eventually be able to read those characters (or binary bytes) from a user specified file. Right now only Clock and Out(gate) do anything.

Found a bug in Blur where things could go bad under certain combinations of sample rate, fft size, and oversample. Version 1.0.0b uploaded to Dropbox:

Let me know if this fixes the ‘no light’ and ‘silent audio’ problems.

1 Like

the v1.0.0b seems to fix the bugs,
I tried it and I could run 3 instances of it, and I tried hard to break them,
but I couldn’t. I tried all extreme settings and combinations of them,
all 3 modules worked flawless and the sound was fine and VCV didn’t crash.
I’m on Win10 64bit with VCV 1.1.6.

1 Like

Most recent changes not in github repo or am I looking in the wrong place ?

Last night’s patch silent after loading it this morning, nothing coming out of the Blur module. Btw, I’m on Linux, Ubuntu 18.04, GCC 7.5.0.

Had the push to guthub on my todo list and missed it. Changes for 1.0.0b are there now.

1 Like

Version 1.0.0c for Blur is up. This version runs on VCV Rack 1.1.6.

Updates: (thanks for the suggestions)

  • Freeze button - freezes audio history contents. Incoming audio is ignored. This is the same effect as setting the Frame Drop to max
  • Phase Reset button - resets the phase history tables that can accumulate tiny errors over time as phases are manipulated by blur, pitch, etc.
  • Pitch Quantization - pitch changes are quantized to: smooth (not quantized), semitones, fifths, and octaves
  • Mix - Dry / Wet mix
  • Frequency Isolation - the Freq Center and Freq Span parameters define the central point and width of a global frequency range. Each effect block (Blur, Pitch, Gain) has an individual frequency range application selector that defines which freq range is affected by the block. ‘Inside’ applies the effect to the frequencies within the global freq range. ‘Outside’ applies the effect to the frequencies that are outside the global freq range. ‘All’ applies the effect to the entire audio range. For Pitch, there 2 additional modes. ‘Inside Only’ applies the effect to the frequenciess inside the global freq range and suppresses frequencies outside that range. Conversely, ‘Outside only’ applies the effect to the frequencies outside the global freq range and suppresses the frequencies within.

Try combinations of Blur, Pitch and Gain freq selections while sweeping the Freq Center and Freq Span controls.

image

Source is in GitHub. Windows distribution is here:

3 Likes

I tested the new build 1.0.0c
I couldn’t find any bugs yet (Win10 64bit VCV v1.1.6)

:+1:

1 Like