• Updated Build instructions

    Pinned Locked
    2
    14 Votes
    2 Posts
    3k Views
    Christoph HartC

    UPDATE (3/24/23):

    HISE now builds against the Faust version 2.54.0+ as default. If you want to keep on using the old Faust version 2.50.6 you will have to enable the projucer flag in the hi_faust_types modules HI_FAUST_NO_WARNING_MESSAGES, then save and recompile HISE. This should be the case on all platforms

    Relevant forum topic:

    https://forum.hise.audio/topic/7356/faust-2-58-11-to-test/10

  • Faust is here...

    Pinned
    96
    15 Votes
    96 Posts
    42k Views
    DabDabD

    For Mac users if you are having "Unable to find libncurses.6.dylib" error, and if HISE crashes, please use the FAUST 2.50.6-x64
    https://forum.hise.audio/topic/7026/unable-to-find-libncurses-6-dylib-when-launching-hise-faust/22?_=1673534840758

    Download : FAUST 2.50.6 -x64
    https://github.com/grame-cncm/faust/releases/tag/2.50.6

    If you get stdfaust.lib error please choose the FAUST path properly from the preference.

    Enjoy FAUST & HISE on Mac OSX.

  • LLM and Faust MCP

    3
    4 Votes
    3 Posts
    105 Views
    S

    Code to be tested here.

    import("stdfaust.lib"); declare name "brightOrgan"; declare author "Claude AI"; // Safe frequency limit (well below Nyquist) MAX_FREQ = ma.SR / 2 - 1000; // Safe filter function - clamps frequency to safe range safe_resonlp(f, q, gain) = fi.resonlp(min(f, MAX_FREQ * 0.4), q, gain); safe_lowpass(order, f) = fi.lowpass(order, max(20, min(f, MAX_FREQ * 0.9))); // 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 { // Clamp frequency to safe range safe_f = min(f, MAX_FREQ); // Square wave with odd harmonics square = os.square(safe_f); // Low-pass filter to soften the sound cutoff = safe_f * (2 + brightness * 8); filtered = square : safe_lowpass(2, cutoff); // Characteristic organ breath noise (with safe filter) breath = no.noise * 0.015 : safe_resonlp(safe_f, 1, 1); pipe = filtered + breath; }; // Flute pipe (more sinusoidal) flute_pipe(f) = pipe with { // Clamp frequency to safe range safe_f = min(f, MAX_FREQ); // Dominant sinusoidal fundamental fundamental = os.osc(safe_f); // Some harmonics (only if frequency allows) h2 = os.osc(min(safe_f * 2, MAX_FREQ)) * 0.25 * (safe_f * 2 < MAX_FREQ); h3 = os.osc(min(safe_f * 3, MAX_FREQ)) * 0.08 * (safe_f * 3 < MAX_FREQ); // Flute breath noise (with safe filter) breath = no.noise * 0.02 : safe_resonlp(safe_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 <: _,_;
  • Faust Ambisonics (HOA) library doesn't work

    3
    0 Votes
    3 Posts
    90 Views
    JulesVJ

    @sletz Thanks for the suggestion. I tried that and same result.

    Now I understand that rather than versions, it is about input output numbers.

    For example the below one. Naturally Hise complains about the input output channels. I am not sure how to handle that.

    Screen Shot 2025-12-30 at 23.05.26.png

    Screen Shot 2025-12-30 at 23.09.38.png

  • Selecting different functions in Faust

    4
    0 Votes
    4 Posts
    98 Views
    S

    @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.

  • Faust Aural Exciter

    9
    0 Votes
    9 Posts
    1k Views
    C

    This might be helpful for people wanting to emulate the AurEx, this is a schematic version. The low band distortion is a classic hard clip config.

    The high band distortion has a more cross over distortion type characteristic, not sure what the best way to program that is.

    The clean signal is blended in with the two distortion paths.

    57273f51-149e-4b6b-acb8-d257d303eb0b-image.png

  • Cant enable Faust on windows 11

    2
  • Faust Gate

    8
    0 Votes
    8 Posts
    1k Views
    resonantR

    @Mighty23

    Thank you for the explanation. I don't mean a graphic, but a modulation like the one in the image below. Not separate Right and Left, but a single one (like the scriptnode gate, comp...etc.).

    alt text

  • Good Faust Reverb or Chorus

    4
    0 Votes
    4 Posts
    564 Views
    HISEnbergH

    @resonant I really like vital_rev, you can find all the stock reverbs here:
    https://github.com/grame-cncm/faustlibraries/blob/master/reverbs.lib

  • Faust tutorial videos

    4
    0 Votes
    4 Posts
    504 Views
    A

    @pcs800 the best faust tutorials are unfortunately reading the source code of the library effects. Find it on github. Feed the main syntax docs into a good LLM like o3 or Gemini Pro, then ask it questions about the specific library effect that you're reading.

    Of course, read the whole syntax reference yourself first.

  • How do i properly compile plugin in AAX format?

    2
    0 Votes
    2 Posts
    490 Views
    HISEnbergH

    @casibeets did you compile the AAX SDK already? Avid has pretty good documentation on getting it setup

  • How to include external .dsp files into the faust node?

    3
    0 Votes
    3 Posts
    744 Views
    JulesVJ

    @Lindon said in How to include external .dsp files into the faust node?:

    @JulesV open the included file - copy its contents into your Faust file....

    Thanks. I think I need those t-shirts now :))

  • Stereo lofi dropout effect.

    1
    3 Votes
    1 Posts
    415 Views
    No one has replied
  • Frequencies past Nyquist folding.

    5
    0 Votes
    5 Posts
    846 Views
  • Sinefold distortion

    2
    4 Votes
    2 Posts
    475 Views
    LindonL

    @xander maybe put this in the HISE Faust github?

  • Simple gain vst3: interface does not work

    11
    0 Votes
    11 Posts
    2k Views
    A

    Additionally, if you had some script code, remember to adjust some elements of the code, which could otherwise be the cause of parameter- or UIcomponent- breakage.
    5ff88664-9060-43c1-abd5-4db1b42cca56-image.png
    Replace the scriptFX node name in getEffect by the hardcodedmasterfx node name.
    And replace the scriptFX parameter name by the name of the parameter you see when clicking on the hardcodedmasterFX node.

  • why does short decay make the sound quieter...

    6
    0 Votes
    6 Posts
    1k Views
    rglidesR

    @Morphoice happens here too, no idea why

  • Windows Hise build -> Faust copy issues with system path

    Unsolved
    3
  • Faust using more CPU in Apple Silicon

    6
    0 Votes
    6 Posts
    2k Views
    S

    @Morphoice Yep, but the CPU usage is reduced in the compiled Plugin.

  • I can't build simplest faust dsp

    9
    0 Votes
    9 Posts
    2k Views
    DabDabD

    @parabuh First Remove the duplicated import ("stdfaust.lib");

    Next right click on Reverb > AllowCompilation to Enabled
    ac6aa970-f4f5-4861-99ea-91394c38218a-image.png

    and Save it from here
    6c5dfdce-daa0-4bac-b36f-e6d3297d91c1-image.png

    Next Compile DSP network as dll. It should work

10

Online

2.1k

Users

13.2k

Topics

114.0k

Posts