Announcing GuitarMidi-lv2 version 2.0 for linux. This version is a massive upgrade incorporating a custom neural net Release on May the 8th on github:
https://github.com/geraldmwangi/GuitarMidi-LV2
Stay tuned
GuitarMidi-LV2 v2.0 for linux is out:
I highlighted the current drawbacks in the release notes. Happy testing
Here the announcement video:
Hi @jimsondrift ,
I am very curious to try your plugin. Do you also have a AARCH64 (PI5 ARM8) version?
Cheers,
Maarten
not yet
will start porting to the mod dwarf today. I think that it is under powered and i might need to add support for the Coral accelerator from google
Hi @jimsondrift ,
Great!! Looking forward to your lv2. ![]()
Meanwhile I am trying to compile it on my zynthian.
I noticed that the compilation is done for “-mcpu=cortex-a72 -mtune=cortex-a72”.
Would it be benifitial to optimize this time critical app per processor?
Thanks and cheers,
Maarten
(PS PI5 = a76)
Hi. I couldnt reply since Im only allowed 5 messages a day. Have you managed to compile it on the zynthian? I want to compile it for my mod dwarf. I think you should turn on all arm cortex related optimizations especially those for XNNPack
I built this on a RPi5 but it does not work. Hosting with jalv: jalv http://github.com/geraldmwangi/GuitarMidi-LV2 shows errors:
Loading plugin
Using butterworth filtersSetting up filterbank
Setting up filterbank with 148 filters and windowsize 256
DO NOT USE_ELLIPTIC_FILTERS
DO NOT USE_ELLIPTIC_FILTERS
... repeated many times...
Connecting MIDI OUTPUT PORT
Connecting MIDI OUTPUT PORT
Activating GuitarMidi-LV2 Plugin
ERROR: Could not open '/usr/lib/lv2/guitarmidi.lv2/guitarmidi.tflite'.
Error at /root/GuitarMidi-LV2/src/modelinferencer.cpp:42
can you build and install with
cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/lib/lv2 ..
cmake --build .
cmake --install .
Yes, that is what I did. jalv loads the plugin but it then gives the warnings and errors I described and sits, consuming 100% of one core without actually finishing initialisation.
thats weird: I did the same on ubuntu 24.04:
GuitarMidi-LV2/build(master○) » cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/lib/lv2 ..
GuitarMidi-LV2/build(master○) » cmake --build .
GuitarMidi-LV2/build(master○) » sudo cmake --install .
start:
GuitarMidi-LV2/build(master○) » jalv GitHub - geraldmwangi/GuitarMidi-LV2: A concept for guitar to midi as an lv2 plugin · GitHub
Plugin: GitHub - geraldmwangi/GuitarMidi-LV2: A concept for guitar to midi as an lv2 plugin · GitHub
JACK Name: Guitar Midi
Sample rate: 48000 Hz
Block length: 256 frames
MIDI buffers: 32768 bytes
Comm buffers: 524288 bytes
Update rate: 30.0 Hz
Scale factor: 1.0
Loading plugin
Using butterworth filtersSetting up filterbank
Setting up filterbank with 148 filters and windowsize 256
DO NOT USE_ELLIPTIC_FILTERS
DO NOT USE_ELLIPTIC_FILTERS
DO NOT USE_ELLIPTIC_FILTERS
DO NOT USE_ELLIPTIC_FILTERS
..
Connecting MIDI OUTPUT PORT
Connecting MIDI OUTPUT PORT
onsetsmoothing = 0.500000
offsetsmoothing = 0.500000
onsetthr = 0.800000
offsetthr = 0.100000
Activating GuitarMidi-LV2 Plugin
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
=== Pre-invoke Interpreter State ===
Connecting MIDI OUTPUT PORT
does that file exist and is it readable for the user starting jalv?
ls -l /usr/lib/lv2/guitarmidi.lv2
total 9756
-rw-r–r-- 1 root root 8988816 Mai 9 20:29 guitarmidi.so
-rw-r–r-- 1 root root 984408 Mai 9 20:22 guitarmidi.tflite
-rw-r–r-- 1 root root 2525 Mai 9 20:22 guitarmidi.ttl
-rw-r–r-- 1 root root 325 Nov 13 20:46 manifest.ttl
New video released https://www.youtube.com/watch?v=EQhcgh-e5gY
I use GuitarMidi-LV2 to play the Protein synthesizer with my guitar
Get the plugin for linux at
You can donate to keep the development and the channel going:
Hi @jimsondrift!
This is some great work you are doing. In zynthian, we have fully integrated Aubionotes for audio to MIDI which can be enabled in the admin menu (although I have just noticed a regression that breaks this!!!) Aubionotes has some limitations, including the range of notes detected (not reaching the low E on a guitar). It would be great to integrate your GuitarMIDI as an input stage for zynthian but I don’t want to do that until it will work robustly with most/all zynthians.
Do you have a timescale for when you may resolve the fixed buffer size and samplerate, and is there anything we can do to assist?
Hi. Thanks for the kind words. I am targeting end of the year to produce a commercial VST version. That will include updating the lv2 to be flexible in terms of buffersize and samplerate. I could need help on the buffersize problem, that is 100% c++. The samplerate is imho a bigger issue since it necessitates producing models for the different standard samplerates, if one wants to avoid sr conversion. Im open to dev discussions, just dm me. However, i dont own a zynthian so I cant test any builds
I have a moddwarf though which I am targeting
There will be people here (including me) happy to help test on zynthian. I think having 2 samplerates (48000 & 44100) may be advantageous and possibly sufficient to allow most zynthian users to use this. We could constain its use based on user’s samplerate, i.e. hide its integration if zynthian samplerate is not supported… so even a 48000 fps only processor could work. (The default samplerate for zynthian is 48000 fps.)
The buffer size would certainly be beneficial because users will want to adjust this to balance latency with performance / xruns.
Good luck with this. I see the code is released under GPL so we could still use it in zynthian. I am not sure if the LV2 (with associated host, like jalv) or a standalone module would be best for us - I will take a look.
I will try to find some time to take a look at the source code to see if I can offer some advice.
I want to do some test of performance to check the benefit vs resource balance… more time needed!!!
This uses similar hardware to zynthian so is a resonable target to validate things should work over here. ![]()