Forum
    • Categories
    • Register
    • Login
    1. Home
    2. sletz
    3. Posts
    S
    • Profile
    • Following 0
    • Followers 1
    • Topics 6
    • Posts 100
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: LGPL Compliance for Commercial Faust Plugins in HISE

      @dannytaurus JPverb and Greyhole Reverbs developed by Julian Parker have been moved to MIT licence some months ago (don't remember the exact date...) after discussion with Julian himself.

      posted in Faust Development
      S
      sletz
    • RE: LLM and Faust MCP

      Code to be tested here.

      import("stdfaust.lib");
      
      declare name "brightOrgan";
      declare author "Claude AI";
      
      // Organ parameters
      freq = hslider("h:Main/freq [style:knob][midi:ctrl 1]", 220, 55, 880, 0.1);
      gate = button("h:Main/gate [midi:ctrl 64]");
      volume = hslider("h:Main/volume [style:knob][midi:ctrl 7]", 0.5, 0, 1, 0.01);
      
      // Organ stops
      foundation8 = hslider("h:Stops/Foundation 8' [style:knob][midi:ctrl 14]", 0.8, 0, 1, 0.01);
      principal4 = hslider("h:Stops/Principal 4' [style:knob][midi:ctrl 15]", 0.5, 0, 1, 0.01);
      fifteenth2 = hslider("h:Stops/Fifteenth 2' [style:knob][midi:ctrl 16]", 0.3, 0, 1, 0.01);
      flute8 = hslider("h:Stops/Flute 8' [style:knob][midi:ctrl 17]", 0.4, 0, 1, 0.01);
      nasard = hslider("h:Stops/Nasard 2 2/3' [style:knob][midi:ctrl 18]", 0.2, 0, 1, 0.01);
      tierce = hslider("h:Stops/Tierce 1 3/5' [style:knob][midi:ctrl 19]", 0.15, 0, 1, 0.01);
      
      // Reverb parameters
      reverbAmount = hslider("h:Reverb/Amount [style:knob][midi:ctrl 91]", 0.3, 0, 1, 0.01);
      reverbDamp = hslider("h:Reverb/Damp [style:knob][midi:ctrl 92]", 0.5, 0, 1, 0.01);
      reverbSize = hslider("h:Reverb/Size [style:knob][midi:ctrl 93]", 0.6, 0, 1, 0.01);
      
      // Organ pipe generator (filtered square wave + breath noise)
      organ_pipe(f, brightness) = pipe
      with {
          // Square wave with odd harmonics
          square = os.square(f);
          
          // Low-pass filter to soften the sound
          cutoff = f * (2 + brightness * 8);
          filtered = square : fi.lowpass(2, min(cutoff, 10000));
          
          // Characteristic organ breath noise
          breath = no.noise * 0.015 : fi.resonlp(f, 1, 1);
          
          pipe = filtered + breath;
      };
      
      // Flute pipe (more sinusoidal)
      flute_pipe(f) = pipe
      with {
          // Dominant sinusoidal fundamental
          fundamental = os.osc(f);
          // Some harmonics
          h2 = os.osc(f * 2) * 0.25;
          h3 = os.osc(f * 3) * 0.08;
          // Flute breath noise
          breath = no.noise * 0.02 : fi.resonlp(f * 1.5, 2, 1);
          
          pipe = fundamental + h2 + h3 + breath;
      };
      
      // Combined stops
      organ = (
          // Foundation 8' (fundamental)
          organ_pipe(freq, 0.3) * foundation8 +
          
          // Principal 4' (upper octave)
          organ_pipe(freq * 2, 0.4) * principal4 +
          
          // Fifteenth 2' (two octaves)
          organ_pipe(freq * 4, 0.5) * fifteenth2 +
          
          // Flute 8'
          flute_pipe(freq) * flute8 +
          
          // Nasard 2 2/3' (perfect fifth)
          flute_pipe(freq * 3) * nasard * 0.7 +
          
          // Tierce 1 3/5' (major third)
          flute_pipe(freq * 5) * tierce * 0.5
      ) / 4;
      
      // Organ envelope (characteristic slow attack)
      env = en.asr(0.1, 1, 0.2, gate);
      
      // Dry signal
      dry = organ * env * volume;
      
      // Smaller reverb with adjustable parameters
      reverb(x) = x : re.mono_freeverb(reverbSize, reverbDamp, 0.3, 6000);
      
      // Dry/wet mix
      output = dry * (1 - reverbAmount * 0.5) + reverb(dry) * reverbAmount;
      
      // Stereo output
      process = output <: _,_;
      
      posted in Faust Development
      S
      sletz
    • RE: LLM and Faust MCP

      Claude + Faust MCP(2).png

      With Claude desktop, which seems like much more capable, and the workflow is much faster...

      posted in Faust Development
      S
      sletz
    • LLM and Faust MCP

      Claude code speaking to Faust MCP: https://drive.google.com/file/d/1SX5-JXjnb3vIMeiEMTfn1VYezMt6P5Fk/view

      Using WIP project: https://github.com/sletz/faust-mcp

      And a bit of ChatGPT: ChatGPT + Faust mcp(2).jpg

      posted in Faust Development
      S
      sletz
    • RE: Selecting different functions in Faust

      @JulesV You can possibly use ba.selectmulti as in:

      process = ba.selectmulti(100, (fx1, fx2, fx3), nentry("Model", 0, 0, 2, 1))
      with {
          fx1 = re.jcrev;
          fx2 = re.zita_rev1_stereo(20, 200, 2000, 3.0, 2.0, 48000);
          fx3 = re.dattorro_rev(200, 0.5, 0.7, 0.6, 0.5, 0.7, 0.5, 0.2);
      };
      

      But yes the 3 branches will always run here.

      posted in Faust Development
      S
      sletz
    • RE: Faust Ambisonics (HOA) library doesn't work

      @JulesV Then updating the Faust version inside HISE is the way to do.

      posted in Faust Development
      S
      sletz
    • RE: Installiez problem on macOS Monterey

      The wanted HISE.app file does not exist;;;, I guess is should be part of the installer yes ?

      posted in General Questions
      S
      sletz
    • RE: Installiez problem on macOS Monterey

      The wanted HISE.app file does not exist;;;, I guess is should be part of the installer yes ?

      posted in General Questions
      S
      sletz
    • Installiez problem on macOS Monterey

      I get this kind of issue with the latest HISE.4.1.0.dmg.macOS.Universal.Binary.dmg

      Any idea why ?

      f7225a22-80f4-4568-84d9-9ff4200b3028-image.png

      posted in General Questions
      S
      sletz
    • RE: is it possible to load a .wav into memory for processing with faust

      I don't think so. This would require using a SoundUI object as explained here: https://faustdoc.grame.fr/manual/architectures/#developing-a-new-soundfile-loader

      But since HISE use based on JUCE, then using the already written JuceReader should be strait forward.

      posted in General Questions
      S
      sletz
    • RE: faust segfaults on zorin 17 based off ubuntu os

      The lastest release is Faust 2.79.3, see https://github.com/grame-cncm/faust/releases

      posted in Bug Reports
      S
      sletz
    • RE: faust segfaults on zorin 17 based off ubuntu os
      /usr/lib/llvm-13/
      

      this LLVM version is too old: use at least LLVM 15.

      posted in Bug Reports
      S
      sletz
    • RE: Paid 3rd party DSP licensing? (Eventide, Sinevibes, Audio Damage etc.)

      @Lindon

      Faust lib reverbs:

      https://faustlibraries.grame.fr/libs/reverbs/ can be tested here: https://faustdoc.grame.fr/examples/reverb/

      Some other Faust coded reverbs here:
      https://github.com/LucaSpanedda/Digital_Reverberation_in_Faust

      posted in General Questions
      S
      sletz
    • RE: soft_bypass and faust

      @sletz Well, I just discovered that https://github.com/grame-cncm/faust/tree/master-dev-ocpp-od-fir-2-FIR. branch is still quite buggy, so no need to rush 😧

      posted in Faust Development
      S
      sletz
    • RE: soft_bypass and faust

      Yes, the code is easy to adapt.

      posted in Faust Development
      S
      sletz
    • RE: soft_bypass and faust

      @aaronventure Trying to create binaries on the GitHub CI, but still some problems to solve.

      In the meantime you can possibly try the Faust IDE Ondemand aware version: https://grame-cncm.github.io/faustide-od/

      posted in Faust Development
      S
      sletz
    • RE: soft_bypass and faust

      @aaronventure Note that in case you can directly compile Faust + LLVM, the WIP branch with ondemand working is here: https://github.com/grame-cncm/faust/tree/master-dev-ocpp-od-fir-2-FIR.

      We are interested in feedback, in case you HISE guys can test it 😊

      posted in Faust Development
      S
      sletz
    • RE: soft_bypass and faust

      @aaronventure The reason is that maintaining this enable/control feature adds complexity in the compiler that we want now to cleanup.

      posted in Faust Development
      S
      sletz
    • RE: soft_bypass and faust

      @aaronventure Guys, we will not maintain enable/control for backward compatibility 😖, so you are warned !

      posted in Faust Development
      S
      sletz