building w/ custom faust plugins?

Post Reply
autumncheney
Posts: 21
Joined: 03 Jun 2021 07:10

building w/ custom faust plugins?

Post by autumncheney »

hi. i know practically nothing about customizing programs, and especially not radium's inner workings, but i was wondering how i could get started with building radium with my own custom faust plugins

preferably i'd like for them to appear in the same way that the zita reverb and stk instruments do already: with both non-gui controls and a gui

thanks in advance!
kjetil
Site Admin
Posts: 582
Joined: 20 Jul 2017 20:45

Re: building w/ custom faust plugins?

Post by kjetil »

It might not be that hard. If you look at the tapiir plugin, for instance, it uses one .dsp file: audio/faust-examples/tapiir.dsp
Then I would run "git grep faust_tapiir", and use this information as a template for what you have to do:

Code: Select all

Makefile.Qt:OBJ_FAUST=$(T)zita_rev.o $(T)stk_flute.o $(T)stk_bowed.o $(T)stk_blow_bottle.o $(T)stk_bass.o $(T)stk_blow_hole.o $(T)stk_brass.o $(T)stk_clarinet.o $(T)stk_flute_stk.o $(T)stk_glass_harmonica.o $(T)stk_harpsi.o $(T)stk_modal_bar.o $(T)stk_NLF_eks.o $(T)stk_NLF_fm.o $(T)stk_piano.o $(T)stk_saxophony.o $(T)stk_sitar.o $(T)stk_tibetan_bowl.o $(T)stk_tuned_bar.o $(T)stk_uni_bar.o $(T)stk_voice_form.o $(T)faust_tapiir.o $(T)faust_system_eq.o $(T)faust_system_tremolo.o $(T)faust_system_lowpass.o $(T)faust_system_highpass.o $(T)faust_system_lowshelf.o $(T)faust_system_highshelf.o $(T)faust_multibandcomp.o
Makefile.Qt:$(T)faust_tapiir.o: audio/faust_tapiir.cpp
Makefile.Qt:    $(CCC2) audio/faust_tapiir.cpp $(FAUST_OPTS2) -DCLASSNAME=Tapiir_dsp -DDSP_NAME=\"Tapiir\" -DCREATE_NAME=create_faust_tapiir_plugin 
Makefile.Qt:audio/faust_tapiir.cpp: audio/faust-examples/tapiir.dsp $(FAUST_DEPENDENCIES)
Makefile.Qt:    cd audio/faust-examples && $(FAUST) -cn Tapiir_dsp -a ../Faust_plugins_template.cpp tapiir.dsp -o ../faust_tapiir.cpp
audio/SoundPluginRegistry.cpp:  create_faust_tapiir_plugin();
audio/SoundPluginRegistry_proc.h:extern void create_faust_tapiir_plugin(void);
build_clean.sh:rm -f audio/zita_rev.cpp audio/stk_flute.cpp audio/stk_bowed.cpp audio/stk_blow_bottle.cpp audio/stk_bass.cpp audio/stk_blow_hole.cpp audio/stk_brass.cpp audio/stk_clarinet.cpp audio/stk_flute_stk.cpp audio/stk_glass_harmonica.cpp audio/stk_harpsi.cpp audio/stk_modal_bar.cpp audio/stk_NLF_eks.cpp audio/stk_NLF_fm.cpp audio/stk_piano.cpp audio/stk_saxophony.cpp audio/stk_sitar.cpp audio/stk_tibetan_bowl.cpp audio/stk_tuned_bar.cpp audio/stk_uni_bar.cpp audio/stk_voice_form.cpp audio/faust_tapiir.cpp audio/faust_multibandcomp.cpp audio/faust_system_eq.cpp audio/faust_system_tremolo.cpp audio/faust_system_lowpass.cpp audio/faust_system_highpass.cpp audio/faust_system_lowshelf.cpp audio/faust_system_highshelf.cpp audio/system_compressor.cpp 
autumncheney
Posts: 21
Joined: 03 Jun 2021 07:10

Re: building w/ custom faust plugins?

Post by autumncheney »

alright, so i was actually able to do this, using templates like you described; it wasn't that hard either

although, for the faust dev instrument normally i use llvm, since i have it on my self-compiled binary, but it seems that when compiling the program it uses the interpreter backend. llvm runs code faster and since some of my faust plugins are a bit cpu intensive i'm going to see if i can recompile radium's faust with llvm

if i make a pull request i'm not sure if i'll be able to have llvm enabled; would that be possible? or is being llvm agnostic a requirement for the radium source?

thanks!
autumncheney
Posts: 21
Joined: 03 Jun 2021 07:10

Re: building w/ custom faust plugins?

Post by autumncheney »

oh wait, it looks like faust's c++ backend is separate from llvm and interpreter. is it?

sorry if i'm being dumb
kjetil
Site Admin
Posts: 582
Joined: 20 Jul 2017 20:45

Re: building w/ custom faust plugins?

Post by kjetil »

autumncheney wrote: 21 Feb 2024 01:14 oh wait, it looks like faust's c++ backend is separate from llvm and interpreter. is it?

sorry if i'm being dumb
Yes, that's right. :-)
The built-in faust plugins in Radium are compiled into c++, they don't use llvm or the interpreter.

(sorry for late reply, I didn't get an email notification. Seems like there's something wrong with the webserver)
Post Reply