Closed rusk911 closed 1 year ago
The download link on the main readme.md has been corrected.
--config most certainly is a command-line option for CMake. See https://cmake.org/cmake/help/v3.6/manual/cmake.1.html. If you have reason to beleive that it no longer is, let know, and I'll revise the build commands to use the inverted invocation: mkdir build && cd build && cmake ... something that references ".."...
tbh, I'm not sure what the Release directory is. I don't have any such directory in my local build. On my system, the CMake build files are placed in the build directory. (specified by the
z is is a missing dependency for zlib.so. On raspberry pi, it's installed as part of the OS.
My system says that libz.so was installed by the package libz1g-dev, which is installed by the OS (Rasberry PI OS).
I think the resolution for you is
sudo apt install zlib1g-dev
If that resolves the issue, let me know and I'll add the line to build instructions for ToobAmp.
The CMake issues are more puzzling. Could you let me know what version of CMake you're using. Run
cmake --version
@rusk911 It's entirely possible that the missing directory is "build", not "Release". Try the following:
cd to the project root.
mkdir build
./config
and if that works
./bld
An easy fix, if you can confirm for me that it works. If not, we can try the more common way to invoke cmake:
cd build&&cmake etc etc etc
I'd have to look up the exact invocation; but also an easy fix.
I just checked. ./config
does do the right thing.
./config:
#!/bin/sh
mkdir build
cd build
cmake .. --config Release
cd ..
You did run ./config first, right?
--config most certainly is a command-line option for CMake. See https://cmake.org/cmake/help/v3.6/manual/cmake.1.html.
I'm not familiar with cmake, but here I see this syntax:
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
So correct line should look like this:
cmake --build .. --config Release
Same I see on stackoverwlow in comments https://stackoverflow.com/questions/67778148/cmake-config-since-version-3-20
But it doesn't work for me. The only thing worked is removing --config from cmake line. Finally config script looks like this and it's working.
#!/bin/sh
mkdir -p build/Release
cd build
cmake .. Release
cd ..
I just checked.
./config
does do the right thing../config:
#!/bin/sh mkdir build cd build cmake .. --config Release cd ..
You did run ./config first, right?
Yes, I run ./config first and got errors mentioned above. cmake version 3.22.1
It's entirely possible that the missing directory is "build", not "Release". Try the following:
cd to the project root. mkdir build ./config
This is exactly what I did first as written in README.
After all changes and successefully running edited ./config I run ./bld and it stopped on linking stage with errors:
[ 56%] Linking CXX shared library ToobAmp.so
/usr/bin/ld: cannot find -lz: No such file or directory
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/CMakeFiles/ToobAmp.dir/build.make:1138: src/ToobAmp.so.0.1.7] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1045: src/CMakeFiles/ToobAmp.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
This error I can't investigate..
My system says that libz.so was installed by the package libz1g-dev, which is installed by the OS (Rasberry PI OS).
I think the resolution for you is
sudo apt install zlib1g-dev
If that resolves the issue, let me know and I'll add the line to build instructions for ToobAmp.
Yes, it solved the problem. BTW after install I am able to load plugins but ML amplifier is not useful as it eats 100% CPU G3260 @ 3.30GHz
So the problem is that you've built the plugins without turning on compiler optimization. The build type is not optional during configuration for this project. The correct version of ./config for your OS is:
#!/bin/sh
mkdir build
cd build
cmake -S .. `-D CMAKE_BUILD_TYPE=Release`
cmake .. --config Release
cd ..
The remaining shell scripts should be OK.
The tick characters look a little suspect. But let's go with it. The -D CMAKE_BUILD_TYPE=Release argument is required for ninja and make builds, according to the stackexchange post. And CMake should probably be using ninja (it does on my OS, but it may be using make on yours).
Let me know how that works out. I will be very interested to hear what the CPU use of the TooB ML plugin will be. It is totally untested on an x64 build. But there's no reason why it should not produce equivalent or better performance on your processor.
The ML code relies very much on use of SIMD math extensions --NEON for Arm processors, and either SSE or AVX floating point extensions for x64. As far as I know, the code should use SSE or AVX on an x64 build without any modifications. It is possible that the compiler needs an extra argument to enable AVX.
I'd expect ~10-15% CPU use for your processor. If you don't get that I can poke around to see what needs to be done to enable SSE/AVX.
I'm afraid I'm on the verge of a fairly significant v1.1 commit that contains convolution reverb and ir plugins, so I can't test it myself. But I will get to it as soon as I make the commit (either today or tomorrow).
Thank you for your efforts so far. I would be pleased to get the build running on Mint and x64..
The correct version of ./config for your OS is:
Just tried it. The result is:
H81M-S1:~/ToobAmp$ ./config
./config: line 4: -D: command not found
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- RTNeural -- Using xsimd backend
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dima/ToobAmp/build
CMake Error: Unknown argument --config
CMake Error: Run 'cmake --help' for all supported options.
Remaining worked ok, but with same result. 100% CPU usage and on lowlatency kernel resulted freezing desktop. If you want I can post whole build log to pastebin.
I'm thinking.. get rid of the backticks around the -D argument.
Logs are not that useful unfortunately because diagnostic output hasn't really been enabled.
On Thu, Apr 20, 2023, 10:53 rusk911 @.***> wrote:
The correct version of ./config for your OS is:
Just tried it. The result is:
H81M-S1:~/ToobAmp$ ./config ./config: line 4: -D: command not found
-- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- RTNeural -- Using xsimd backend -- Configuring done -- Generating done -- Build files have been written to: /home/dima/ToobAmp/build CMake Error: Unknown argument --config CMake Error: Run 'cmake --help' for all supported options.
Remaining worked ok, but with same result. 100% CPU usage and on lowlatency kernel resulted freezing desktop. If you want I can post whole build log to pastebin.
— Reply to this email directly, view it on GitHub https://github.com/rerdavies/ToobAmp/issues/21#issuecomment-1516473182, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXK2DA4VMS4MSZUZLVUCJLXCFEVJANCNFSM6AAAAAAXELDMVU . You are receiving this because you commented.Message ID: @.***>
Changes to address build issues on Linux Mint have been checked in to the branch Linux-Mint-Build.
If you could try it, I'd be grateful. If it works, I'll merge it into the main branch.
In addition, the dependency sudo apt install zlib1g-dev
has been added to the build instructions.
Note that the names of the shell scripts have been changed. They are now:
config.sh # configure CMake
build.sh # build the project
install.sh # install the project.
fwiw, sudo makePackage
should also produce a valid .deb file for Linux Mint, if you really want to try that. (Completely unnecessary)
Also, the FLAC decoder libraries are now statically linked, which may prevent versioning problems with the .deb package in future releases (but not the most recent release).
FLAC++/decoder.h is missing.
~/ToobAmp$ ./build.sh
Consolidate compiler generated dependencies of target RTNeural
[ 1%] Built target RTNeural
Consolidate compiler generated dependencies of target processCopyrights
[ 3%] Built target processCopyrights
[ 4%] Built target CopyrightBuild
[ 4%] Built target copy-files
[ 5%] Building CXX object src/CMakeFiles/ToobAmp.dir/FlacReader.cpp.o
/home/dima/ToobAmp/src/FlacReader.cpp:25:10: fatal error: FLAC++/decoder.h: No such file or directory
25 | #include <FLAC++/decoder.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [src/CMakeFiles/ToobAmp.dir/build.make:76: src/CMakeFiles/ToobAmp.dir/FlacReader.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1047: src/CMakeFiles/ToobAmp.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
Make sure you're synced with the branch (an additional commit took place about 20 minutes ago).
Run
sudo apt install libflac++-dev
(already added to the build notes, but you wouldn't have seen it).
And then run the build again.
Close!
Now it stopped on 53%
[ 53%] Linking CXX shared library ToobAmp.so
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libz.a(zutil.o): warning: relocation against `z_errmsg' in read-only section `.text'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libz.a(deflate.o): relocation R_X86_64_PC32 against symbol `z_errmsg' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/CMakeFiles/ToobAmp.dir/build.make:1154: src/ToobAmp.so.1.0.9] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1047: src/CMakeFiles/ToobAmp.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
Sooo painful. Sorry.
Synch to the branch again, and give it another try.
On Tue, Apr 25, 2023 at 1:41 PM rusk911 @.***> wrote:
Now it stopped on 53%
[ 53%] Linking CXX shared library ToobAmp.so /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libz.a(zutil.o): warning: relocation against
z_errmsg' in read-only section
.text' /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libz.a(deflate.o): relocation R_X86_64_PC32 against symbol `z_errmsg' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: final link failed: bad value collect2: error: ld returned 1 exit status gmake[2]: [src/CMakeFiles/ToobAmp.dir/build.make:1154: src/ToobAmp.so.1.0.9] Error 1 gmake[1]: [CMakeFiles/Makefile2:1047: src/CMakeFiles/ToobAmp.dir/all] Error 2 gmake: *** [Makefile:166: all] Error 2— Reply to this email directly, view it on GitHub https://github.com/rerdavies/ToobAmp/issues/21#issuecomment-1522173202, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXK2DHOPO2VTIX2HE6EEQLXDAEFJANCNFSM6AAAAAAXELDMVU . You are receiving this because you commented.Message ID: @.***>
Sooo painful. Sorry.
I feel your pain. I'm also programmer, just know nothing about cpp and desktop applications development.
Synch to the branch again, and give it another try.
Nothing changed.
dima@dima-H81M-S1:~/ToobAmp$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Total 4 (delta 3), reused 4 (delta 3), pack-reused 0
Unpacking objects: 100% (4/4), 332 bytes | 166.00 KiB/s, done.
From https://github.com/rerdavies/ToobAmp
0d61be3..41d5952 Linux-Mint-Build -> origin/Linux-Mint-Build
Updating 0d61be3..41d5952
Fast-forward
src/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
dima@dima-H81M-S1:~/ToobAmp$ rm -rf build
dima@dima-H81M-S1:~/ToobAmp$ ./config.sh
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- RTNeural -- Using xsimd backend
-- CMAKE_DEB_HOST_ARCH: amd64
-- CMAKE_CXX_FLAGS_DEBUG: -g -D_GLIBCXX_DEBUG -march=sandybridge -mtune=sandybridge
-- CMAKE_CXX_FLAGS_RELEASE: -Ofast -DNDEBUG -march=sandybridge -mtune=sandybridge
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dima/ToobAmp/build
dima@dima-H81M-S1:~/ToobAmp$ ./build.sh
.......
[ 52%] Building CXX object src/CMakeFiles/ToobAmp.dir/LsNumerics/PitchDetector.cpp.o
[ 53%] Linking CXX shared library ToobAmp.so
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libogg.a(bitwise.o): warning: relocation against `oggpack_write' in read-only section `.text'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/libogg.a(bitwise.o): relocation R_X86_64_PC32 against symbol `oggpack_write' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
gmake[2]: *** [src/CMakeFiles/ToobAmp.dir/build.make:1154: src/ToobAmp.so.1.0.9] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1047: src/CMakeFiles/ToobAmp.dir/all] Error 2
gmake: *** [Makefile:166: all] Error 2
If you're still willing to make it working on desktop x86_64 system, you can try booting linux from USB stick without installing it, it could be much faster.
Which version of Mint are you using?
On Wed, Apr 26, 2023, 04:44 rusk911 @.***> wrote:
If you still willing to make it working on desktop x86_64 system, you can try booting linux from USB stick without installing it, it could be much faster.
— Reply to this email directly, view it on GitHub https://github.com/rerdavies/ToobAmp/issues/21#issuecomment-1523018852, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXK2DFJDIUODV43HPBXEETXDDN6DANCNFSM6AAAAAAXELDMVU . You are receiving this because you commented.Message ID: @.***>
Which version of Mint are you using?
Fresh one Linux Mint 21.1 "Vera" installed a week ago. kernel 5.15.0-69-lowlatency.
So.... I fired up a clean install of Linux Mint 21.1 "Vera", and built ToobAmp from the main branch. And... it built, without errors! My best guess: a combination of minor build changes in the mainline plus revised install instructions fixed the issue.
I was able to replicate your build issue in the branch. I corrected the issue, and I'm in the process of merging the branch in the master build [edit: it has been merged]. Linking the FLAC decoder libraries statically seems like an improvement to me, especially given that the library seems to have caused a long chain of build breaks for packages all over the internet.
To be honest, I did use Visual Studio Code to do the build. If your build issues still persist, I recommend that you build using Visual Studio Code. But I think you will get a clean build. I think it's preinstalled in Mint. Do NOT use the version in Software Sources which is hideously broken and out of date; install it using apt instead. It's not immediately clear to me which version of the GCC compilers will be used by the shell scripts. I compiled with GCC 12.1.0; but I don't think it should make a difference if you use GCC 11.3 instead.
Steps that were added to the configuration steps that you may or may not have performed yet:
sudo apt install build-essential # installs g++, which isn't installed by default.
sudo apt install cmake # can't imagine you haven't done that.
Get a fresh copy of the master branch, and try once more.
Huh,. So linking the FLAC libraries statically causes a runtime error on Raspberry Pi OS.
The current main branch reverts the static linkages, but should still build on Mint. Let me know.
build-essential is already the newest version (12.9ubuntu3) cmake is already the newest version (3.22.1-1ubuntu1.22.04.1). gcc (Ubuntu 11.3.0-1ubuntu1~22.04) Switched to master branch now and it builds successefully. But now it crashed Ardour. Here is gdb trace of Toob ML Amplifier caused Ardour crash https://pastebin.com/1fk9im9v
Same crash in Carla Plugin host.
OK. I had configured the project to use AVX instructions.
Remind me, what CPU are you using? I'll downgrade the machine requirement.
On Thu, Apr 27, 2023 at 10:20 AM rusk911 @.***> wrote:
Same crash in Carla Plugin host.
— Reply to this email directly, view it on GitHub https://github.com/rerdavies/ToobAmp/issues/21#issuecomment-1525785152, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXK2DAGY6ANYSUC7NTQUE3XDJ6DBANCNFSM6AAAAAAXELDMVU . You are receiving this because you commented.Message ID: @.***>
OK. I had configured the project to use AVX instructions. Remind me, what CPU are you using? I'll downgrade the machine requirement. … On Thu, Apr 27, 2023 at 10:20 AM rusk911 @.> wrote: Same crash in Carla Plugin host. — Reply to this email directly, view it on GitHub <#21 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXK2DAGY6ANYSUC7NTQUE3XDJ6DBANCNFSM6AAAAAAXELDMVU . You are receiving this because you commented.Message ID: @.>
CPU G3260 @ 3.30GHz
Built and tested on Linux Mint, using Carla. The fixes have been pushed to the main branch.
If you want to use TooB Convolution Reverb and TooB Cab IR, you'll need to do this:
https://rerdavies.github.io/pipedal/RTThreadPriority.html
if you haven't done so already. You definitely want to do it. It increases the available CPU time for running plugins about 5x. Neither plugin will work if you don't. And Carla silently ignores the error message given by the plugins which would explain how to fix the problem.
A not-so-brief explanation why:
https://github.com/rerdavies/pipedal/discussions/99
Incidentally, if you haven't already done so, you should install the Mint realtime kernel:
sudo apt install linux-realtime
What a nice feature! Getting an Ubuntu realtime kernel is incredibly painful. I haven't done Mint before, but I'm hooked. I'll never do Ubuntu again.
Things you should know: TooB Convolution Reverb works with Carla. You can click on the "settings" button in the top-left corner of the plugin display to upload files. Unfortunately, what Carla does not do is save the state of LV2 plugins (neither basic settings, like knobs and dials,, nor advanced settings, like the filename of the impulse response file you're using) which might make Carla less useful than you might think. I've tested with other LV2 plugins, which all have the same problem. , A bit disappointing. Maybe you should give Ardour a try. (Reaper won't work).
Sorry for the runaround. I should have fired up a VM a week ago. And thank you for all the work you've done helping to get this fixed.
Built and tested on Linux Mint, using Carla. The fixes have been pushed to the main branch.
If you want to use TooB Convolution Reverb and TooB Cab IR, you'll need to do this:
https://rerdavies.github.io/pipedal/RTThreadPriority.html
if you haven't done so already. You definitely want to do it. It increases the available CPU time for running plugins about 5x. Neither plugin will work if you don't. And Carla silently ignores the error message given by the plugins which would explain how to fix the problem.
A not-so-brief explanation why:
Incidentally, if you haven't already done so, you should install the Mint realtime kernel:
sudo apt install linux-realtime
What a nice feature! Getting an Ubuntu realtime kernel is incredibly painful. I haven't done Mint before, but I'm hooked. I'll never do Ubuntu again.
Things you should know: TooB Convolution Reverb works with Carla. You can click on the "settings" button in the top-left corner of the plugin display to upload files. Unfortunately, what Carla does not do is save the state of LV2 plugins (neither basic settings, like knobs and dials,, nor advanced settings, like the filename of the impulse response file you're using) which might make Carla less useful than you might think. I've tested with other LV2 plugins, which all have the same problem. , A bit disappointing. Maybe you should give Ardour a try. (Reaper won't work).
Sorry for the runaround. I should have fired up a VM a week ago. And thank you for all the work you've done helping to get this fixed.
Ok. Finally I have a clean build and install and successefully loaded plugin into Ardour DAW with around 5-10% CPU usage by plugin itself with 128 samples buffer size which is very good on this CPU. BTW I wasn't able to get any usable sound from it. All I hear is some sort of non guitar related random noise with clean guitar on background. Seems no errors in app output, but plugin is not functional at all. With any model from list. Compared with Neural Amp Modeler LV2 in same chain. NAM producing very good guitar sound, Toob ML amplifier - just noise. Tried also Carla, seems in Carla it changes model just once, other dropdown manipulations doesn't change the sound. And it's not a guitar sound, just random noise.
Indeed I have lowlatency kernel, as I mentioned above.
It sounds like you're using a debug rather than a release build.
Do this:
# clean out any mis-built binaries.
sudo rm -rf /usr/lib/lv2/ToobAmp.lv2/
sudo rm -rf /usr/local/lib/lv2/ToobAmp.lv2/
And install this package (which definitely has release builds)
https://github.com/rerdavies/ToobAmp/releases/download/v1.0.10-beta-amd64/toobamp_1.0.10_amd64.deb
I'm unable to run stable audio of any kind in my VM when running Ardour 6.9. I did test and fix bugs when running in Ardour 5 on Raspberry Pi. The load-once bug has definitely been fixed.
My results: stable Convolution Reverb even for very large impulse files, running Ardour 5, using ALSA audio with 128x3 buffers. Pipewire/Jack ran fine with no UI activity (Ardour minimized), but was very fragile at pretty much any buffer size.
Let me know what happens.
It sounds like you're using a debug rather than a release build.
Do this:
# clean out any mis-built binaries. sudo rm -rf /usr/lib/lv2/ToobAmp.lv2/ sudo rm -rf /usr/local/lib/lv2/ToobAmp.lv2/
And install this package (which definitely has release builds)
https://github.com/rerdavies/ToobAmp/releases/download/v1.0.10-beta-amd64/toobamp_1.0.10_amd64.deb
I'm unable to run stable audio of any kind in my VM when running Ardour 6.9. I did test and fix bugs when running in Ardour 5 on Raspberry Pi. The load-once bug has definitely been fixed.
My results: stable Convolution Reverb even for very large impulse files, running Ardour 5, using ALSA audio with 128x3 buffers. Pipewire/Jack ran fine with no UI activity (Ardour minimized), but was very fragile at pretty much any buffer size.
Let me know what happens.
Same result. No any usable sound from Toob ML amplifier, but very good sound from NAM in the same chain with same input level, audio settings and cab sim. Seems like noise/distortion is applied to something else, but not guitar input, which remains clean across all models.
Reproduced and fixed. I managed to get a USB audio adapter running in my VM. Dramatically impressive now.
Committed to the main branch, downloadable here:
https://github.com/rerdavies/ToobAmp/releases/download/v1.0.11/toobamp_1.0.11_amd64.deb
Let me know. Thank you.
Reproduced and fixed. I managed to get a USB audio adapter running in my VM. Dramatically impressive now.
Committed to the main branch, downloadable here:
https://github.com/rerdavies/ToobAmp/releases/download/v1.0.11/toobamp_1.0.11_amd64.deb
Let me know. Thank you.
still no usable sound. just noise.
Link to deb file shows 404 page. Trying to compile on Mint 21 getting errors:
CMake Error: Unknown argument --config
Google says: "--config never existed like that (a standalone flag). CMake prior to 3.20 pretty much ignored unknown arguments and the command line parser has been changed to actually detect such issues rather than silently accepting them. So I tried to remove it."
Second error - Release dir does not exist. Created it. Likely missing directory creation at first line of config script. After creating the dir config ran successefully.
Finally ran bld script and it ended with error