HISE Logo Forum
    • Categories
    • Register
    • Login
    1. HISE
    2. xander
    X
    • Profile
    • Following 0
    • Followers 0
    • Topics 10
    • Posts 19
    • Groups 0

    xander

    @xander

    8
    Reputation
    8
    Profile views
    19
    Posts
    0
    Followers
    0
    Following
    Joined
    Last Online

    xander Unfollow Follow

    Best posts made by xander

    • Sinefold distortion

      For anyone who wants it.
      Here is a simple sinefold distortion, with a hardclip threshold

      //Xander'
      import("stdfaust.lib");
      
      //sinefold function
      distortion(x) = aa.sine(strength * x) 
      with {
      	strength = hslider("strength", 1, 1,100,0.01) : si.smooth(0.999);
      };
      
      //clip function
      clip = min(thresh_linear) : max(0 - thresh_linear)
      with {
      	threshold = hslider("threshold", -0.3, -100,0, 0.01) : si.smooth(0.999);
      	thresh_linear = pow(10, threshold/ 20);
      }; 
      
      //variable for individual input, including effect and input and output gain
      stereo = *(pregain_linear) : (distortion : clip) * postgain_linear
      with {
      
      	pregain = hslider("pregain", 1, -100,20,0.01) : si.smooth(0.999);
      	pregain_linear = ba.db2linear(pregain);
      
      	postgain = hslider("postgain", 0, -100,20,0.01) : si.smooth(0.999);
      	postgain_linear = ba.db2linear(postgain);
      };
      
      process = stereo, stereo;
      
      posted in Faust Development
      X
      xander
    • Stereo lofi dropout effect.

      This is just a super simple stereo dropout effect, but I hope it can be of help to someone to get an idea on how to do it. If you have any ideas to improve it let me know!

      import("stdfaust.lib");
      import("noises.lib");
      
      process = signalL, signalR;
      
      //======================================================= dropouts
      clamp(nmin, nmax) = min(nmax) : max(nmin);
      
      dropout_noiseL(rate) =
          lfnoise(rate+0.6) + lfnoise(rate) : clamp(0, 1);
      dropout_noiseR(rate) =
          lfnoise(rate+0.5) + lfnoise(rate) : clamp(0, 1);
      
      
      //dropout_curve, number between 1.2 and 10
      dropout_nonlinear(rate, intensity, dropout_curve, phase) = 
          -tanh(
          ba.if(phase < 1, 
          dropout_noiseL(rate),
          dropout_noiseR(rate))
          * dropout_curve - dropout_curve)
          + (1 - intensity);
      
      
      dropout(phase, x) = x * (dropout_nonlinear(r, strength, curve, phase))
      with{
          r = hslider("rate", 1, 0.4, 10, 0.01);
          strength = hslider("intensity", 0, 0, 1, 0.01);
          curve = hslider("curve", 4, 1.4, 10, 0.01);
      };
      
      signalL = dropout(0);
      signalR = dropout(2);
      
      posted in Faust Development
      X
      xander
    • AudioAnalyser in Floating tile LAG!

      In HISE version 3.6, when I used a floating tile set to audio analyser (specifically the spectral analyser or index 2), I could easily run higher sample sizes with 0 to no lag. In HISE 4, however, if the spectral analyser has a sample size higher or equal to 8192, it causes the program to drop a huge amount of frames (this is not a PC thing; my RAM and my CPU are barely touched). Is there some setting I can change to fix this issue?

      posted in General Questions
      X
      xander

    Latest posts made by xander

    • RE: Animation lag.

      @ustk This didn't fix it completely, but it definitely helped a lot, thank you

      posted in General Questions
      X
      xander
    • RE: Animation lag.

      @Christoph-Hart, I'm developing in Windows, and it seems to correlate directly to how fast my PC is running. Now, I am doing this with knobs. Would turning them into Lottie animations fix this, possibly?

      posted in General Questions
      X
      xander
    • Animation lag.

      I am working on a cassette plugin that has wheels that are animated. For some reason, the wheels stutter and aren't smooth. I'm thinking the culprit is the absence of delta time, but I'm not sure. This is the code:

      Content.makeFrontInterface(900, 600);
      
      const var wheel_timer = Engine.createTimerObject();
      const var wheel = Content.getComponent("wheel");
      const var wheel1_b = Content.getComponent("wheel1_b");
      const var wheel2_b = Content.getComponent("wheel2_b");
      
      
      const var wheel2 = Content.getComponent("wheel2");
      var i = 100;
      var j = 100;
      
      wheel_timer.setTimerCallback(function()
      {
      	i = i - 1;
      	
      	if (i%2 == 0) {
      		j -= 1;
      	};
      	
      	if (i > 1) {	
      		wheel.setValue(i);
      		wheel2_b.setValue(i);
      	} else {
      		i = 100;
      	};
      	
      	if (j > 1) {	
      			wheel2.setValue(j);
      			wheel1_b.setValue(j);
      		} else {
      			j = 100;
      		};
      	
      	
      });
      
      wheel_timer.startTimer(20);
      
      posted in General Questions
      X
      xander
    • Stereo lofi dropout effect.

      This is just a super simple stereo dropout effect, but I hope it can be of help to someone to get an idea on how to do it. If you have any ideas to improve it let me know!

      import("stdfaust.lib");
      import("noises.lib");
      
      process = signalL, signalR;
      
      //======================================================= dropouts
      clamp(nmin, nmax) = min(nmax) : max(nmin);
      
      dropout_noiseL(rate) =
          lfnoise(rate+0.6) + lfnoise(rate) : clamp(0, 1);
      dropout_noiseR(rate) =
          lfnoise(rate+0.5) + lfnoise(rate) : clamp(0, 1);
      
      
      //dropout_curve, number between 1.2 and 10
      dropout_nonlinear(rate, intensity, dropout_curve, phase) = 
          -tanh(
          ba.if(phase < 1, 
          dropout_noiseL(rate),
          dropout_noiseR(rate))
          * dropout_curve - dropout_curve)
          + (1 - intensity);
      
      
      dropout(phase, x) = x * (dropout_nonlinear(r, strength, curve, phase))
      with{
          r = hslider("rate", 1, 0.4, 10, 0.01);
          strength = hslider("intensity", 0, 0, 1, 0.01);
          curve = hslider("curve", 4, 1.4, 10, 0.01);
      };
      
      signalL = dropout(0);
      signalR = dropout(2);
      
      posted in Faust Development
      X
      xander
    • RE: Frequencies past Nyquist folding.

      @griffinboy Will do! If you have any resources you could point me towards, it'd be a big help

      posted in Faust Development
      X
      xander
    • Frequencies past Nyquist folding.

      I have created a simple saw wave here.
      When the saw wave happens to produce frequencies above half the sample rate the frequencies fold so all the higher notes sound very ugly. Is there anyway I can create a fix for this in Faust?

      // xander
      import("stdfaust.lib");
      
      // midi controls
      freq = hslider("freq", 440, 1, 16000, 1);
      t = button("gate");
      
      // simple phasor
      phasor(f) = (+(freq / ma.SR)) ~ ma.frac;
      
      // subtle smoothing
      saw(f) = sin(phasor(f) * 2.0 - 1.0);
      
      // signal
      signal = saw(freq) * en.adsr(0.01, 1.5, 0.5, 1, t);
      
      // subtle harmonics
      tape(x) = x + aa.sine2(x^3) / 3;
      
      // process
      process = tape(signal), tape(signal);
      
      posted in Faust Development
      X
      xander
    • Sinefold distortion

      For anyone who wants it.
      Here is a simple sinefold distortion, with a hardclip threshold

      //Xander'
      import("stdfaust.lib");
      
      //sinefold function
      distortion(x) = aa.sine(strength * x) 
      with {
      	strength = hslider("strength", 1, 1,100,0.01) : si.smooth(0.999);
      };
      
      //clip function
      clip = min(thresh_linear) : max(0 - thresh_linear)
      with {
      	threshold = hslider("threshold", -0.3, -100,0, 0.01) : si.smooth(0.999);
      	thresh_linear = pow(10, threshold/ 20);
      }; 
      
      //variable for individual input, including effect and input and output gain
      stereo = *(pregain_linear) : (distortion : clip) * postgain_linear
      with {
      
      	pregain = hslider("pregain", 1, -100,20,0.01) : si.smooth(0.999);
      	pregain_linear = ba.db2linear(pregain);
      
      	postgain = hslider("postgain", 0, -100,20,0.01) : si.smooth(0.999);
      	postgain_linear = ba.db2linear(postgain);
      };
      
      process = stereo, stereo;
      
      posted in Faust Development
      X
      xander
    • RE: ControlCallback not working

      @d-healey Thank you! Makes sense, guess I can hardcode the parameter values.

      posted in General Questions
      X
      xander
    • RE: ControlCallback not working

      @d-healey Yes, not via code, but just with the side panel.

      posted in General Questions
      X
      xander
    • ControlCallback not working

      Having issues with setControlCallback not working with knob. When I change the knob it is not calling the controlback function at all (I've tried Console.Print("..") in the inline function and it didn't print anything). Am I missing something, or is this something you can't do? (And yes I have tried timers, they cause Hise to crash for some reason).

      const var decay_time_label = Content.getComponent("decay_time_label");
      const var decayTime = Content.getComponent("decay_time");
      
      
      inline function onDecayControl(component,value)
      {
      	decay_time_label.set("text", decayTime.getValue());
      };
      
      decayTime.setControlCallback(onDecayControl);
      
      posted in General Questions
      X
      xander