Menu

#77 There is a short but high volume boost during preset change

open
brummer
None
v1.0_(example)
1
2020-01-12
2019-05-29
KJB
No

The volume goes up when you change two presets. It can be heard very well if two distorted predsets are changed there, back, there...

Discussion

  • KJB

    KJB - 2019-05-29

    It is very strong effect, if i use headset my ears get pain. This is a very short but very strong effect.

     
  • KJB

    KJB - 2019-05-29

    It is present during all distrorted preset change.

     
  • brummer

    brummer - 2019-05-30

    Could you please provide the presets you switch, as I never notice that. Also, let us know which version and distribution you use please.

    regards
    hermann

     
  • Anonymous

    Anonymous - 2019-05-30

    Hi Hermann,
    the Guitarix version is 0.36.1. The distro I use is a Puppy Bionic Beaver Linux with RT kernel. I checked that not all effect chaneg is bad, maybe some effect has the problem. I select two presets which you can use to test it.

    Bests,
    Janos

     
  • brummer

    brummer - 2019-05-30

    From what I see the problem could be boild down to the JCM800preamp plugin (I'll investigate). Are you able to get such a noise boost without this one?

     
  • brummer

    brummer - 2019-05-31

    So I dig a bit deeper in the issue and found that it isn't the JCM800preamp's fault. It's the amp simulation itself which produce the pop. That's because of the extreme settings for the amp you use here. Keep in mind that the Master Volume is the control for the overall rack output, not of the amp output.
    In your Dist Dry preset, the amp is far to overdriven, it produce a signal boost from more the +60db, it clips already without any input, so now wonder that it pop's.
    You'll never switch on a real amp with this settings, as it will blow out your ears.
    Truly I could introduce a signal ramping in the amp simulation to reduce this , which will introduce a gap when switching preset, but I couldn't avoid that completely, without reducing the control range.

     
  • KJB

    KJB - 2019-05-31

    Ok, I found that it is not in connection with JCM800 preamp. I'm happy that you found the source. I think that currently with headset this is a painfully dangeorous effect. I don't know how can it be eliminated, but I have two experiences in that topic. I have an old Korg Hyperdistortion which is a full digital distortion. It can store two distorted presets. During change it also have a small gap. The other one is Guit.Rig, there is no hearable gap like by Korg, but I don't know what they do. Maybe a compressor like thing at the start of the boost?

     
  • brummer

    brummer - 2019-06-05

    I found the real culprit now, it's, mmmpppfff, our implemented ramping simply didn't worked, because a value wasn't set up. This seems to be the case for years now.
    So I've repaired that and the loud pop is gone. Additional I've implement a parameter value ramp mode for the amp pregain and distortion settings, so that when you switch it on with full open drive, the amp open with a little ramp. All this introduce a (very) little gap when you switch presets, but it is small enough to be ignored. At least it avoid any unwanted volume boost, pop or noise.

    I hope this fix the bug for you

    regards
    hermann

     
  • KJB

    KJB - 2019-06-06

    Hello Hermann! Thanks for your work in this topic! It is a big improvement in preset change I think. Can I test it somehow? When will the source code change? Sorry for my nescience.

     

    Last edit: KJB 2019-06-06
  • brummer

    brummer - 2019-06-06

    You need to check out our git repository and build guitarix yourself.
    On commandline you've to use:

    git clone git://git.code.sf.net/p/guitarix/git guitarix
    cd guitarix/trunk/
    ./waf configure --prefix=/usr  --includeresampler --convolver-ffmpeg --optimization
    ./waf build
    sudo ./waf install
    

    assuming you could fill the pre-requests for build guitarix (dependencys), The ./waf configure line will tell you what package are missing (if any) to build guitarix from source.

     
  • KJB

    KJB - 2019-06-20

    I'm sorry, I failed with this. Don't you have a deb package (Ubuntu 18.04 64bit) with the modified preset change?

     
  • KJB

    KJB - 2019-06-20

    Aaah, It is succesfully builded now. Tomorrow I will test it!

     
  • KJB

    KJB - 2019-06-21

    Hi Hermann!

    I tested the new version. It's great that the volume boost is gone! Thank you very much! I play fast things and I found that the gap between the change is rather long. I measured it using a recorder and it is ~0.3 sec silence plus the two short ramps. This could be a long time when for example I change from the end of a solo to a rithm effect. The silence could cover up to 2-3 notes. Can I modify/optimize the length of the ramp and test it? Maybe there is a shorter silence which is also good enough to cover the volume boost. Could you please give me some info about that? I checked the git and I found the following. Which parameters generates the silence and the ramp?

    --- a/trunk/src/gx_head/engine/gx_engine_audio.cpp
    +++ b/trunk/src/gx_head/engine/gx_engine_audio.cpp
    @@ -44,6 +44,8 @@
    modules(),
    next_commit_needs_ramp() {
    sem_init(&sync_sem, 0, 0);

    • set_samplerate(96000);
      +
      }

    void ProcessingChainBase::set_samplerate(int samplerate) {

     
  • brummer

    brummer - 2019-06-23

    Hi

    For the ramping, the sequence is setting in gx_engine_audio.cpp line 51.
    You could see there already a alternative set, which is curently commented out.

    void ProcessingChainBase::set_samplerate(int samplerate) {
        steps_down = 8 * (256 * samplerate) / 48000;
        steps_up = steps_down;
        //steps_down = (64 * samplerate) / 48000;
        //steps_up = 4 * steps_down;
        steps_up_dead = 0;
    }
    

    you may comment out the first set, and activate the second one. Lower the values for steps_down and steps_up even more, will reduce the gap evn more.

    For the controller value ramping, you'll find the function:

    bool FloatParameter::ramp_value(float val) {
        if (std::abs(json_value - val) < 10*FLT_EPSILON || std::abs(json_value )> std::abs(val)) {
            json_value = val;
            setJSON_value();
            return false;
        } else if (val<=std_value) {
            json_value = val;
            setJSON_value();
            return false;
        }
        float v = val * 0.1;
        json_value += v;
        setJSON_value();
        //fprintf(stderr, "set value %f of %f\n",json_value, val);
        return true;
    }
    

    in /src/gx_head/engine/gx_paramtable.cpp line 1233.

    the line
    float v = val * 0.1;
    set the ramp for the controller. Increase 0.1 to 0.2 or higher (max 1.0) will fasten the ramp.

    When you found settings which work better for you, let me know please, I would like to make the gap as short as possible as well.

    regards
    hermann

     
  • KJB

    KJB - 2019-06-26

    Hi!

    I tested the ramp with many parameter sets. I found that a symmetric step up/step down is the best. Your parameter set is 2048 x samplerate / 48000 and v was 0.1. I found that 1024 x samplerate / 48000 or 768 x samplerate / 48000 makes it much faster and v is better if it is slightly lower than 0.1. My final set was 768 and 0.05. I also found that the wave shape could be strange around the change. It depends on the presets but it occurs randomly. Sometimes there is a short wave peak at the middle of the gap. This causes irritating click like noise during preset change. I don't see the root cause, maybe a treshold somewhere? Using your parameter set with 2048 makes this occurence less frequent, and I found that under 768 the occurance is very high.

     
  • Anonymous

    Anonymous - 2020-01-02

    This issue still exists. Switching/automating rapidly between two gain settings on gx-amplifier-stereo-x causes a "chirp" of varying intensity. Here is an ardour6 session that illustrates the point.

    https://github.com/thingamagig/plundertones-voice_hayseed_thirty

    At the end of the session, around minute 7, there are some automated "presets" between high and low gain with different cabinets, etc. If you move the playhead between them, you'll hear the problematic chirps.

    My current workaround in all my sessions is to carefully ramp pregain, master gain, and cabinet (although cabinet causes static when automating the level) with automation such that no chirp occurs. This sort of works, but is labor intensive and inefficient. A real solution would be hugely appreciated.

    $ ardev --version
    bind txt domain [gtk2_ardour6] to /usr/share/ardour6/locale
    Ardour6.0.pre0.2931 (built using 6.0-pre0-2931-gc5066dcf38 and GCC version 7.4.0)
    
    $ uname -a
    Linux ok 5.3.0-24-lowlatency #26-Ubuntu SMP PREEMPT Thu Nov 14 02:16:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
    

    Guitarix is the version pulled from sf master on 1/1/2020.

    Thanks in advance and I want you to know how appreciative I am of guitarix, in general. Amazing stuff.

     
  • brummer

    brummer - 2020-01-12

    This is a different issue, as the GxAmplifier didn't use any ramping at all.
    GxAmplifier was made without any automation in mind, as at the time were I develop it, automation in DAW's wasn't a big thing.

     

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB