@toxonic said in Compiling HISE with Faust issue (Linux):
Build with LLVM version 14.0.0
This LLVM version is very old BTW, I suggest using a more recent one if possible.
@toxonic said in Compiling HISE with Faust issue (Linux):
Build with LLVM version 14.0.0
This LLVM version is very old BTW, I suggest using a more recent one if possible.
@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.
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 <: _,_;

With Claude desktop, which seems like much more capable, and the workflow is much faster...
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: 
@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.
@JulesV Then updating the Faust version inside HISE is the way to do.
The wanted HISE.app file does not exist;;;, I guess is should be part of the installer yes ?
The wanted HISE.app file does not exist;;;, I guess is should be part of the installer yes ?
I get this kind of issue with the latest HISE.4.1.0.dmg.macOS.Universal.Binary.dmg
Any idea why ?

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.
The lastest release is Faust 2.79.3, see https://github.com/grame-cncm/faust/releases
/usr/lib/llvm-13/
this LLVM version is too old: use at least LLVM 15.
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
@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 
@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/
@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 
@aaronventure The reason is that maintaining this enable/control feature adds complexity in the compiler that we want now to cleanup.