New Vox/Crybaby DSP Model -- Adding voicings

need a feature, suggest here

New Vox/Crybaby DSP Model -- Adding voicings

Postby Transm0grifox » Sun Mar 26, 2017 10:58 pm

I recently got a Bela ( http://bela.io/ ) and was wanting to have a good wah modeler.

I had a first thought to copy the CCRMA wah from Guitarix, but it occurred to me that since it is a model based on a curve-fit to the GCB-95 it's a one-trick pony without directly intuitive ways to apply different voicings of variant circuits.

I sat down and worked out the transfer function and digitized it via bilinear transform. The resultant code allows you to enter resistor and capacitor values directly with potential to create loadable presets.

As such I thought I would share it as a possible feature set to add to the Guitarix wah. Here's where it can be found:
http://cackleberrypines.net/transmogrifox/src/bela/inductor_wah_C_src/
The following 2 files are the whole of it:
inductorwah.h
inductorwah.cpp

It's coded in C, but it would be trivial to convert this to a class so it doesn't look out-of-place in a C++ & faust repository.

The .zip file is the Bela project, which won't be useful for Guitarix.

Under the Analysis folder is a test program which generates a set of frequency response curves and impulse responses so you can compare and tweak with real circuits if more fine-tuning is desired.

Here's the set of frequency response plots for the Vox V847 voicing:
http://cackleberrypines.net/transmogrifox/src/bela/inductor_wah_C_src/Analysis/Vox_V847_Response.png
(BBCODE tags for image resize don't appear to work on this board, so you will have to just click the link)
User avatar
Transm0grifox
 
Posts: 3
Joined: Sun Mar 26, 2017 10:11 pm

Re: New Vox/Crybaby DSP Model -- Adding voicings

Postby brummer10 » Wed Mar 29, 2017 3:50 am

Hi Transm0grifox

Nice one.
I'll check it for sure. :)

As a side note, I've done something similar with our ampsim toolkit.
A Wah plugin which let you select different models like the:
ColorSound Wah
Dallas Wah
Foxx Wah
Jen Wah
Maestro Wah
Selmer Wah
Vox Wah V847
Roland Wah
and for Bass the
ColorSound Bass Wah
and the
Jen Bass Wah.

You may know, that the ampsim toolkit could generate a faust IIR filter from schematic (gschem) files.
As far I know, bella supports faust, so this may also be interesting for you.

regards
hermann
User avatar
brummer10
Site Admin
 
Posts: 692
Joined: Thu Mar 26, 2009 6:57 pm

Re: New Vox/Crybaby DSP Model -- Adding voicings

Postby Transm0grifox » Wed Mar 29, 2017 3:49 pm

Thanks for letting me know about the faust & gschem. Faust in Bela is in beta, but because Faust outputs C++, it is a portable way to use any computer to develop the DSP routine and then compile it into Bela's render.cpp. Wrapper functions for providing inputs and outputs would need to be manually written to provide inputs and outputs.

I wasn't aware of the ampsim toolkit capability to generate a faust IIR filter from schematic. This is something I should look at for future work.

It may be my code duplicates what you already have. Would be interesting to compare frequency sweeps. Perhaps the possible advantage is it directly expresses circuit components within the struct so alternate voicings can be created and loaded by the user.

I do have one thing on my TODO list and that is to apply correct frequency warping terms (or at least improved approximations) to the real-time modulated coefficients. The filter shapes look good when plotted on top of the simulation outputs, but the relationship between pot position and center frequency is...well..warped a little bit. This would make the "feel" of the wah a little bit different. I'm still working on getting a "perfect" overlay of simulation and DSP model, but it is very close as-is just by limiting pot position input variable to range 0....0.8. The other sources of frequency warping error as far as I can see are <0.25 dB which are less than variation from component tolerances.

Have you guys spend any time looking at the pot taper functions for getting the sweep right in your models?
User avatar
Transm0grifox
 
Posts: 3
Joined: Sun Mar 26, 2017 10:11 pm

Re: New Vox/Crybaby DSP Model -- Adding voicings

Postby brummer10 » Wed Mar 29, 2017 4:23 pm

Transm0grifox wrote:Have you guys spend any time looking at the pot taper functions for getting the sweep right in your models?


We using a "logarithmic" taper defined like this ( in faust)

Code: Select all
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);


were a is set to 5 for the hotpotz and x is the pot value between 0 . . 1

that gives a nice sweep point, just I haven't any plots at hand.
User avatar
brummer10
Site Admin
 
Posts: 692
Joined: Thu Mar 26, 2009 6:57 pm

Re: New Vox/Crybaby DSP Model -- Adding voicings

Postby Transm0grifox » Thu Mar 30, 2017 2:46 pm

Good to know. At the moment I soldered wires from my Crybaby (hotpotz) directly to the ADC input on my Bela, but when I get my MIDI controller hooked in then I will need a log pot function :)

I finally got the frequency warping better approximated, so here's a plot of my DSP model with updated frequency warping coefficients overlaid on the SPICE simulation output from a Vox V847:
http://cackleberrypines.net/transmogrifox/src/bela/inductor_wah_C_src/Analysis/Vox_V-847_Sim_Overlaid_Digital.png
For some reason the BBCODE [img width=xxx] tag doesn't work, so I just have to link above (image is too large)
User avatar
Transm0grifox
 
Posts: 3
Joined: Sun Mar 26, 2017 10:11 pm

Re: New Vox/Crybaby DSP Model -- Adding voicings

Postby brummer10 » Fri Mar 31, 2017 3:35 am

Transm0grifox wrote:For some reason the BBCODE [img width=xxx] tag doesn't work, so I just have to link above (image is too large)

Well, I'm sorry, but I didn't like to work on the forum software to fix this.

As a side note note, maybe that's interesting for you to, I've made a switchless wah from the gcb95, like the Morley M2 Maverick.
https://github.com/brummer10/GxSwitchlessWah.lv2

and a envelope controlled one, like the Mutron
https://github.com/brummer10/GxQuack.lv2
User avatar
brummer10
Site Admin
 
Posts: 692
Joined: Thu Mar 26, 2009 6:57 pm


Return to Suggestion Box

Who is online

Users browsing this forum: No registered users and 1 guest

cron