New plugin GuitarMidi-LV2

Its not hard to implement codewise, I do this in my dayjob on the daily. The problem is acquiring labeled data. That is: a wide variety of guitars played by a wider group of guitarists with different styles. If I manage to create a community around guitarmidi- lv2, I would like to conduct such an effort.

Thanks. Other tunings are planned. Other instruments not. This project is meant to get the most out of the guitar.

4 Likes

Always happy to provide electric violin-related testing! I don’t know how valuable that information would prove for you, but hey, some guitars have piezos too :sweat_smile:

3 Likes

What I meant by hard to implement is precisely building that database – hence my comment on the possibility that such a database might already be available and/or in the public domain. (The Axon patent has already expired, but whether or not the datasets are in the open is hard to tell.)

The hurdle on building one such is that you’d need all guitar and bass players to follow a very strict set if instructions – following pre-determined, multiple tempos – and report their setups and gear (if more than one) in very precise terms. And it has to be done for all midi notes in the neck, all types of strings (gauges and wound types), all (feasible) types of picks, solid bodies, semi-hollow, hollow, possibly nylon strings, magnetic and piezo pickups, etc.

Unless you get the files in a highly standardised and fixed form, it will be a monstrous task to separate the sounds and – to use your term – label them as needed. So herein lies the difficulty.

2 Likes

Just curious on the progress. Any chance this will be in the beta store soon?

4 Likes

I am tackling some problems with the Overtones. One of my ideas has led to a monophonic pitch detector which goes down to bass frequencies at reasonable latency. So I’m considering releasing a monophonic version first

12 Likes

Polyphonic Pitch Detector for guitars

2 Likes

hi!

I just discovered your plugin, I find it very useful and it works fine for my needs.
I am testing on my computer with Linux Mint.

Are you still planning a release?
The biggest limitation for my needs is the recognition of high notes, do you maybe have a feature branch for such feature?
I would be happy to test it and report back.

5 Likes

I just update the master branch so that it works somewhat well on high notes till the 12th fret
. You have to set jack to 256 frames for it to work. And you also have to cranck up the gain

4 Likes

thanks!

I will try it out in the next days and report back.

2 Likes

I did a quick test right now: after loading GuitarMidi into Carla, the CPU of Carla spikes to 54% and I get a lot of xruns. If I turn off GuitarMidi (leaving the rest of the setup), Carla CPU drops to 5%.
Do you experience the same issue?

I did set jack to 256 samples.

1 Like

My jack settings:
samplerate 48000,
Frames/period 256
Periods/buffer 2
Realtime is ticked.
Kernel: 5.4.0-122-lowlatency
I get 22 xruns in 2min :frowning:
the cpu usage is quite high, at 54%

The pitchdetection is however doing well enough that its enjoyable to play.
I’m playing with a plectrum simple chord on the higher strings
Chords on the lower strings have problems.
Single notes work well on all strings
Guitar: Les paul with bridge humbucker activated. Gain on Komplete 6 USB interface at 50 %

Carla with GuitarMidi-LV2 connected to Helm

2 Likes

ok, thanks for posting your settings.
I do have basically the same settings and getting the same result.
In my case the xruns affects the sound of Helm and it does not sound nice.
I think that 50% of cpu for GuitarMidi is a lot. As a comparison I used GxTuner and it uses only a tiny bit of cpu.
Do you think that something in the code could be changed to improve the performance?

1 Like

For sure! The code is not optimized as I am still figuring out the solution. Can you try running the low latency kernel? That makes a difference for me

1 Like

cool!
I’m already using a low latency kernel (5.13.0-30-lowlatency) and have all other settings as you do.

1 Like

There is room for optimisation but I doubt that CPU usage will go below 20%. Guitarmidi deploys a filter bank with 148 filters to separate the frequency spectrum. In the next days I’ll push an update which exposes important parameters to tweak so that users can find the best settings for their setup.
Please try the low latency kernel

5 Likes

Can you try the 5.4 low latency kernel? I tried the 5.15 low latency kernel and it was horrible.
Not to blame the kernel though, the 5.4 seems to handle my unoptimized code better than the 5.15 kernel

1 Like

I tried the 5.4 low latency kernel but I did not experience any improvement.

1 Like

Can you kindly list all jack parameters? Which synth are you using? Which patch? What are you’re hardware specs (CPU, ram)? Which distro? Do you run jack with realtime priorities?
I’ll try and recreate the problem.

1 Like

sorry for the late answer, I was quite busy in the last few days.

Here are all my setup invormation:
samplerate 48000,
Frames/period 256
Periods/buffer 3
Realtime is ticked.
Kernel: both 5.15.0-43-lowlatency and 5.4.0-122-lowlatency (no difference between them
the cpu usage is quite high, is over 50% sometimes even 62%

The xruns are now under control. the problem was related to the fact I was using Helm through Reaper, for some reason it was making it unusable. If I use only Helm (any patch) with GuitarMidi, there are no clicks in the audio.
I did run in two other problems though:

  1. sometimes a detected note is triggered in another octave too
  2. sometimes some notes do not get a midi off, so eventually multiple notes are on, see the screenshot of Helm’s keyboard
    Screenshot from 2022-08-08 21-11-42
1 Like

Cool that you got it to work.

This is a very hard problem: a note and its higher octave have a lot of the same frequencies. That’s why guitarmidi often interpreted one note as if the higher octave is also played

I hadn’t seen this. I’ll look into it

When you play chords, does guitarmidi work as expected except the two mentioned points?

1 Like