stazed / rakarrack-plus Goto Github PK
View Code? Open in Web Editor NEWRakarrack plus LV2s
License: GNU General Public License v2.0
Rakarrack plus LV2s
License: GNU General Public License v2.0
The user directory preference is by default set to DATADIR
which is defined as DATADIR="${CMAKE_INSTALL_PREFIX}/share/rakarrack-plus"
. This however is usually not writable by the user and @jujudusud reported this caused R+ to display an error on launch.
Ideally R+ should
src/Config_fltk.C
) to something like ~/.rakarrack-plus
or ~/.local/share/rakarrack-plus
Can't tell what exactly is missing here, but this does not happen for any other plugin.
$ lv2lint https://github.com/Stazed/rakarrack-plus#midi_converter
<https://github.com/Stazed/rakarrack-plus#midi_converter>
[FAIL] Plugin Instantiation
failed to instantiate
seeAlso: <http://lv2plug.in/ns/lv2core>
[FAIL] Plugin Symbols
binary exports superfluous globally visible symbols:
* _ZN4Ring10setpanningEi
* _ZN8Resample8mono_outEPfS0_idi
* _ZN9MuTroMojo9setpresetEi
* _ZN12AnalogFilter11filterout_sEf
* _ZN8Sequence7cleanupEv
* _ZN8VaryBand10initializeEv
* _ZN5ArpieD0Ev
* _ZN8Echotron6getparEi
* _ZN10StereoHarm7cleanupEv
* _Z10run_voclv2Pvj
* ... there is more, but the rest is being truncated
seeAlso: <http://lv2plug.in/ns/lv2core#binary>
[WARN] Plugin Project
lv2:project doap:name not found
seeAlso: <http://lv2plug.in/ns/lv2core#project>
{4 : MIDI_IN}
[FAIL] Port Atom Port
atom:AtomPort requires urid:map feature
seeAlso: <http://lv2plug.in/ns/ext/urid#map>
{5 : MIDI_OUT}
[FAIL] Port Atom Port
atom:AtomPort requires urid:map feature
seeAlso: <http://lv2plug.in/ns/ext/urid#map>
Hello,
I am no graphic designer but I've used a fair share of plugins so I tried my hand at an alternative UI. Here is the result so far:
This was all done using standard FLTK in fluid
(and some sed
). I think it is no masterpiece but I think it looks a bit less dated than the original rakarrack UI, since it is flatter.
I can't get the combo boxes not to show borders, though.
What do you think about it (keeping in mind that I am not a designer)? Sadly, I can't easily deploy it due to #22 - sorry but I am no FLTK expert!
There are some pretty effective busker friendly Vocal Harmonizer stomp-boxes like Zoom V3, Boss VE-2, TC Helicon Perform-VG or TC-Helicon VoiceLive etc, which can do vocal harmony that do typically the following to the signal chain in real-time:
Hello,
I am making an openSUSE package for rakarrack-plus. Having "release" in release tag is a bit nonstandard, could you please use simple version numbers like 1.0.5
, so that the tarball is named rakarrack-plus-1.0.5
? Thank you!
For release version 1.2.5, the LV2 plugin names have been changed to be prefixed with RKRP instead of RakarrackPlus.
This change is only cosmetic and is fully compatible with prior versions. The change was made to provide for better display of plugin type in plugin host modules that often have limited space for name display. You will now find the LV2s in host plugin choosers under RKRP instead of RakarrackPlus.
Hi Stazed. I didn't know that you were working on this project for a long time. I'm very glad you are. I'd like to merge our projects and work together. Do you see any obstacles for doing so? AFAICT I think I can just close out rkrlv2 and point people here since you have the plugins merged already IIUC. Does that seem appropriate? Lets talk about it. If you'd like to discuss on IRC or something let me know, or we can email, or discuss here, whatever you prefer.
Minimalist zyn ADsynth.
Hello.
I tried rakarrack-plus NSM support, but the main NSM goal seems to not work at all: save the rakarrack-plus NSM client doesn't saves anything !
and changes are forgotten :(
Cheers
Mathieu
See out() FIXME comment.
Check filter range - LPF vs HPF.
Need to bypass final limiter.
When r-plus is started under NSM with GUI visible, it forgets to send to NSM server /nsm/client/gui_visible.
Then the r-plus GUI is hidden for the NSM server GUI, and click on the GUI button changes nothing (it make NSM server send to rakarrack-plus /nsm/client/show_optional_gui, but the r-plus GUI is already shown in reality).
to reproduce:
I'm in the process of adding a small but powerful feature to the 'analog phaser' effect. It's essentially a tick box called "static LFO" which when enabled, makes the 'frequency' slider directly control the LFO position instead of the frequency (which stays at zero). I've been using this trick for decades on a Behringer unit (only phaser i've used which has this feature) to make killer tone filters that really beef up (or can even sometimes replace) a speaker cab sound.
It could also be used to create some kinds of wah-like effects by mapping a midi control to the LFO position parameter. The Boss GT-PRO has such wah models that are phaser/flanger based, and they sound pretty similar to what could be achieved with this.
I'd like to ask if there are any 'code of conduct' guidelines/rules for writing the code, i can see the code in aphaser.{h,C,c*} is pretty hectic in its indentation and style, so i'm not expecting something too strict there. How about submitting patches / pull requests, what would be the best way to do this when this feature is functional?\
EDIT:
Looking at the LFO code (src/EFX_common/EffectLFO.{h,C} it looks like it would make more sense to implement this feature there (ie. add a LFO type "static") than directly in the phaser FX as i'm currently doing. Also the added benefit would be that it can easily be applied to other effects in the same way. What do you guys think?
CMake doesn't fail with BuildCarlaPresets=ON
if python is not available, which may lead to errors later during installation.
Hi! I am trying to compile this on Fedora 37. I have installed both the fltk
and fltk-devel
packages, but I get this:
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find FLTK (missing: FLTK_FLUID_EXECUTABLE)
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake/Modules/FindFLTK.cmake:329 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:81 (find_package)
Do you have any idea how to solve this?
Thanks!
Hola, he detectado que Rakarrack Plus no reacciona con un valor MIDI de Program Change igual a 0, es necesario darle un valor de 1 para que nos ubique en el preset 1. Esto no debería ser así, ya que, la mayoría de los programas de computadora aceptan el Valor 0 para ubicarse en el primer preset.
Hiya there!
So I compiled and everything works wonderfully in the standalone application, but I can't get Ardour 7 to see the LV2.
It is correctly installed in usr/local/lib/lv2
, tried to copy the folder to /usr/lib/lv2/
but still no success.
Any ideas on how to solve this?
Thanks!
Hello,
I am building rakarrack-plus in a virtualized environment (Open Build System) and the current build is a bit uncomfortable, because it requires that an environment variable is set and that the lv2 directory already exists, which is not necessarily true in virtualized environments (which are built from scratch for every build, basically).
I did not submit a PR because my change was pretty substantial and you might want to think about an alternative. Here is my solution, which uses a CMAKE variable so that it can be passed via cmake -DLV2_PATH=...
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8efa0d56..7b9fa94d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -210,8 +210,8 @@ endif (BuildRakarrackPlus)
if (BuildLV2Plugins)
pkg_check_modules(LV2 REQUIRED lv2>=1.0.0)
if (LV2_FOUND)
- if (EXISTS $ENV{LV2_PATH})
- set(LV2_INSTALL_DIR $ENV{LV2_PATH} CACHE PATH
+ if (DEFINED LV2_PATH)
+ set(LV2_INSTALL_DIR "${LV2_PATH}/RakarrackPlus.lv2" CACHE PATH
"Specifies where the LV2 libraries should be installed")
else()
set(LV2_INSTALL_DIR lib/lv2/RakarrackPlus.lv2 CACHE PATH
Also, I think there was a typo in the first branch of the if
because the LV2_PATH should not include the RakarrackPlus.lv2
child directory but should be the generic LV2 path, such as /usr/lib/lv2
or /usr/lib64/lv2
Which mean fatal error: FL/Fl_Tiled_Image.H : No file or directory of that type
That is on a gentoo linux amd64 system with fltk-1.3.5 and cmake 3.27.3.
$ make
[ 1%] Building CXX object lv2/CMakeFiles/rakarrack-plus-lv2.dir/rkrlv2.C.o
Dans le fichier inclus depuis /home/dom/softs/Musique/rakarrack-plus/lv2/../src/FX/Effect.h:22,
depuis /home/dom/softs/Musique/rakarrack-plus/lv2/rkrlv2.h:39,
depuis /home/dom/softs/Musique/rakarrack-plus/lv2/rkrlv2.C:21:
/home/dom/softs/Musique/rakarrack-plus/lv2/../src/FX/../global.h:38:10: erreur fatale: FL/Fl_Tiled_Image.H : Aucun fichier ou dossier de ce type
38 | #include <FL/Fl_Tiled_Image.H>
| ^~~~~~~~~~~~~~~~~~~~~
compilation terminée.
make[2]: *** [lv2/CMakeFiles/rakarrack-plus-lv2.dir/build.make:76: lv2/CMakeFiles/rakarrack-plus-lv2.dir/rkrlv2.C.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:269: lv2/CMakeFiles/rakarrack-plus-lv2.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
This append both with the git code and with 1.2.3.
$ cmake -L .
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
USING GNU OPTIMIZATIONS
-- Found aconnect in /usr/bin/aconnect
-- Found rt in /usr/lib64/librt.a
-- Found dl in /usr/lib64/libdl.a
--
-- =========================================================
-- Build Configuration for Rakarrack-plus-1.2.3 for Linux
-- =========================================================
--
-- ___________________ Optimizations________________________
-- Vectorization. . . . . . . . . . . . . . . . . . . . . .: Yes
-- Use altiveck . . . . . . . . . . . . . . . . . . . . . .: No
-- Use sse. . . . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Use sse2 . . . . . . . . . . . . . . . . . . . . . . . .: Yes
--
-- ______________________Library____________________________
-- PkgConfig. . . . . . . . . . . . . . . . . . . . . . . .: Yes
-- FLTK toolkit . . . . . . . . . . . . . . . . . . . . . .: Yes
-- ALSA MIDI Sequencer support. . . . . . . . . . . . . . .: Yes
-- X11 support. . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Freetype support . . . . . . . . . . . . . . . . . . . .: Yes
-- Zlib support . . . . . . . . . . . . . . . . . . . . . .: Yes
-- pthread support (libpthread) . . . . . . . . . . . . . .: Yes
-- JACK Audio Connection Kit library. . . . . . . . . . . .: Yes
-- Fontconfig support . . . . . . . . . . . . . . . . . . .: Yes
-- Fast Fourier Transform (fftw3) . . . . . . . . . . . . .: Yes
-- General audio file (libsndfile). . . . . . . . . . . . .: Yes
-- Samplerate conversion (libsamplerate). . . . . . . . . .: Yes
-- Xft support. . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Xrender support. . . . . . . . . . . . . . . . . . . . .: Yes
-- Xpm support (libxpm) . . . . . . . . . . . . . . . . . .: Yes
-- Liblo support. . . . . . . . . . . . . . . . . . . . . .: Yes
-- LV2 support. . . . . . . . . . . . . . . . . . . . . . .: Yes
--
-- ____________________ User Options________________________
-- Use optimizations. . . . . . . . . . . . . . . . . . . .: Yes
-- Vectorization. . . . . . . . . . . . . . . . . . . . . .: Yes
-- Use altiveck . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Use sse. . . . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Use sse2 . . . . . . . . . . . . . . . . . . . . . . . .: Yes
-- Build Rakarrack-plus . . . . . . . . . . . . . . . . . .: Yes
-- Build LV2s (RakarrackPlus.lv2) . . . . . . . . . . . . .: Yes
-- Build Carla lv2 presets. . . . . . . . . . . . . . . . .: No
-- Build for debug. . . . . . . . . . . . . . . . . . . . .: No
-- NSM session support. . . . . . . . . . . . . . . . . . .: Yes
-- Sysex preset save support. . . . . . . . . . . . . . . .: No
--
--
-- Building for Release
-- Flags: -std=c++11 -Wno-unused-parameter -O3 -ffast-math -pipe -fsigned-char -msse -msse2 -mfpmath=sse -ftree-vectorize -fvect-cost-model
-- Configuring done (0.2s)
-- Generating done (0.1s)
-- Build files have been written to: /home/dom/softs/Musique/rakarrack-plus-1.2.3/build
-- Cache values
BuildCarlaPresets:BOOL=OFF
BuildForDebug:BOOL=OFF
BuildLV2Plugins:BOOL=ON
BuildOptionsBasic:STRING=-std=c++11 -Wno-unused-parameter -O3 -ffast-math -pipe -fsigned-char
BuildOptionsDebug:STRING=-std=c++11 -O0 -g3 -ggdb -Wall -Wextra -Wpointer-arith
BuildOptions_Altivec:STRING=-maltivec
BuildOptions_SSE:STRING=-msse -mfpmath=sse
BuildOptions_SSE2:STRING=-msse -msse2 -mfpmath=sse
BuildOptions_Vectorization:STRING=-ftree-vectorize -fvect-cost-model
BuildRakarrackPlus:BOOL=ON
EnableAltivec:BOOL=ON
EnableNSM:BOOL=ON
EnableOptimizations:BOOL=ON
EnableSSE:BOOL=ON
EnableSSE2:BOOL=ON
EnableSysex:BOOL=OFF
EnableVectorization:BOOL=ON
FLTK_CONFIG_SCRIPT:FILEPATH=/usr/bin/fltk-config
FLTK_FLUID_EXECUTABLE:FILEPATH=/usr/bin/fluid
FLTK_INCLUDE_DIR:PATH=/usr/include/fltk
LV2_INSTALL_DIR:PATH=lib/lv2/RakarrackPlus.lv2
X11_xcb_xkb_INCLUDE_PATH:PATH=/usr/include
FLTK_INCLUDE_DIR is correct and the missing file exist.
Is it something I can do about this?
..doc/help/imagenes/icono_rakarrack_128x128.png.
We should have a contest!!!
Glad to have found this project of creating plugins of the old Rakarrack and improve it, which is something i was considering to undertake myself!
The only thing missing from this is to be able to use them in Renoise, which doesn't (yet) support LV2 plugins, without using a wrapper VST like Carla or similar which adds (a bit of) overhead, usage complication, and possibility of potential issues. Is it possible to compile these as LADSPA plugins, or is there any plans to port them to VST?
I've noticed that Rakarrack-Plus takes about one and a half minutes to start up on my Raspberry Pi 4. Not a bug, necessarily, but When I didn't know to expect the wait, it seemed like one.
It might be a good idea to put up a splash screen of some kind while Rakarrack-Plus is initializing.
Pass to functions with void*.
/arch/package/PKGBUILD
Pan, L/R Cross, out(), presets...
Highly unlikely that any of these old banks are still out there.
Remove bank conversion, and help references also.
I have an interest in using R+ headless and remotely controlling it from a different computer or tablet or phone, etc. The idea being to not open the GUI on the host machine at all to make more CPU time available for the audio.
There was a rakarrack-headless project on GitHub, but it only went so far. There were several issues with being able to use Rak headless. Would you be interested in work in that area?
In terms of remote control, R+ has, I assume, the same default MIDI implementation as the old version. While extensive, it is not complete without functions such as editing every parameter in every FX unit, being able to edit presets and save new ones, changing preferences, etc. I thought I saw that you had added somethings like bank change to the default MIDI. Would you be interested in a more complete remote control system like OSC? I see you have liblo already for NSM support.
In addition to the dependencies you list in the main README, I had to install cmake
and lv2-dev
.
This is on Raspberry Pi OS 10 (Debian Buster)
The listing of user bank presets should list unnamed items as "Untitled (#)". The program change table matches by numeric location from the drop down list. If the user bank has unnamed items which are not listed, then the selection is misaligned with the bank when the program change is sent.
Temporary solution is to fill the user bank in numerical order, left to right, top to bottom with no unnamed presets in between.
In the Install section, you say "The dependencies are: ..." and include "libjack-dev".
Installing "libjack-dev" on my Ubuntu Studio causes the apt package manager to uninstall other packages including studio-controls.
I can avoid this by installing "libjack-jackd2-dev" instead and everything compiles as expected with no packages needing to be removed.
The line:
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} $[BuildOptions_Altivec}")
has a typo after the dollar sign, it should be ${
. This breaks the build if the user is too lazy to fix it locally.
Thank you
On Fedora 36 make command ends up with error:
[ 29%] Linking CXX executable rakarrack-plus /usr/bin/ld: cannot find -ljack collect2: error: ld returned 1 exit status make[2]: *** [src/CMakeFiles/rakarrack-plus.dir/build.make:2625: src/rakarrack-plus] Error 1 make[1]: *** [CMakeFiles/Makefile2:295: src/CMakeFiles/rakarrack-plus.dir/all] Error 2 make: *** [Makefile:136: all] Error 2
jack is installed via pipewire-jack-audio-connection-kit-devel
$ pkgconf jack --libs -L/usr/lib64/pipewire-0.3/jack -ljack $ pkgconf jack --print-provides jack = 1.9.17
I've assume it is Fedora issue is there any way to bypass it?
I modified the .fl files both manually and in fluid
, then I ran
make clean
make
but the build program in ./src/rakarrack-plus
did not change its interface and looked just like it did before.
If a midi program change is received and followed by a controller change (which, presumably, should apply to the newly loaded program) the controller change is ignored. This is due to a race condition: program changes are effectively asynchronous whereas controller changes are immediate and synchronous. As a result, the parameters changed by the controller end up being overwritten by the program change.
I'm in the process of implementing a fix for this. I'll follow up with a PR.
Hello,
Gleam looks very bad on my PC, very 1990s with gradients which aren't almost never used in GUIs:
FLTK looks a lot better, but has some white borders which look weird, and old-style comboboxes:
GTK+ IMHO looks the best, even if those blue controls need to be replaced:
FLTK are GTK+ are both better than Gleam IMHO, even if they need some fixes. I am no graphic designer but if you allow me, I can make some mockups for an user-friendlier interface, with the feedback of some people who use the rakarrack-plus package I made on openSUSE.
Meanwhile, I kindly ask to switch away from Gleam, since it looks very dated and doesn't help people get that this is a modern fork of rakarrack. These are my 2 cents, not as a designer but as a packager and user. Thank you for listening 😸
Only currently needed for echotron taps. Others could be expanded to include stages in MIDI control.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.