Complete string identification for each played note in MG3 Standard = MG3HEX for everyone with MG3 HEX as teach-in programmer for MG3 Standard

Summary:
Each string has a unique footprint of fundamental frequency range, overtone intensities and damping characteristics, and the temporal development of the amplitudes of the overtones (e.g. decay behavior) is also string-specific.

With the complete string identification in MG3 Standard/MBass3, all hex-specific modules can also be used in MG3 Standard/MBass3 in the future. Another big step by @JamO in its mission to democratize MidiGuitar for everyone :muscle:

In addition, the general recognition of the notes in MG3 Standard/MBass3 could be improved by the additional information on which string the note is played and possibly even a faster recognition of the notes similar to what is already possible in MG3 HEX.

The complete string identification procedure for MG3/MBass3
The tuning/scan procedure in my feature request open string recognition for MG3 Standard I suggest to extend it for a complete string identification, so that now the respective open string and its corresponding octave on the 12th fret are done in a tuning/scan procedure with the polytuner.

The creation of a reference data set with the spectral signature for each individual string of the guitar or bass during the tuning/scan procedure, which is necessary for a complete string identification, does not have to take place in real-time recognition as with guitar playing.
This is beneficial for accurate analysis, especially the analysis of the decay behavior of the string harmonics involved, as determining the damping constant characteristic of the string can be more time consuming (>100 ms).

It might therefore be possible to use slower but more accurate training methods for the creation of spectral signature sets, which are then fast in their prediction, i.e. during real-time tone recognition for each tone played, they can also recognize the string involved just as quickly and reliably.

User handling:
In addition to the open strings recognition tuning/scan procedure, the user now only has to strike the octave of the respective open string at the 12th position and is thus only a few seconds away from MG3HEX happiness.

After a successful tuning/scan procedure, indicate in the polytuner or MG3 Standard : Display: e.g. complete string identication o.k., i.e. all HEX modules can now be used.

If in MG3 Standard these hex modules are selected/used without having completed a successful tuning/scan procedure for complete string identification, it should be pointed out, e.g. in a tooltip, that it does not yet work (modules e.g. retuning module with hex functionality then hatched/greyed out) etc. and request that this is only done with tuning/scan for complete string identification, perhaps with a tooltip hint on how to do this.

1 Like

perhaps instead of repeatedly explaining to jamo what you imagine to be possible you should first present a business-oriented use case:

  • sales-wise, how many new users would this feature bring in? (ie: are there actually people not buying mg3 because it doesn’t provide string id?)
  • what percentage of mg3 users would regularly use this feature? (recall that everyone is humming along just fine as is)
  • how would this technology be implemented without cpu bloat (right now mg3 is svelte like audrey hepburn was svelte. do we really want a pamela anderson version?)

Do you have a set of sufficient and necessary conditions identified for this to be applicable to all kinds of guitars? I mean, standard MG3 is not differentiating between nylon string acoustic guitars, and say steel string baritone electric. What are the common denominators for a ā€œthird stringā€, whatever the guitar?

I am asking because I don’t know. Do you have something like a general criteria for what is a fifth string as opposed to a sixth? Personally, I am thinking this is a functionality-dependent definition. Whatever I use as a sixth string is my sixth.

Hi
I’m new to Jam origin, midi guitars, etc so please forgive me if my question is too basic.

Is a hex pickup required in order to use MG3 and get accurate note detection on each fret and string?

Or is this a software-only solution to accurately identify string and fret?

My admittedly simplistic thought here is that you could ā€œtrainā€ the software by tuning each string and then it would recognize the fret without needing a hex pickup.

Thank you for considering my question.

You don’t need a HEX pickup to get accurate note detection on each fret and string with MG3.

In its standard version MG3 extracts polyphonic pitch information from you guitars standard audio (i. e the audio from your traditional magnetic pickups)

You can use an hexaphonic pickup to provide six streams of audio to MG3 in its Hex-version (MGHEX). In that case MGHEX converts each audio stream independently, with the result of you getting even better separation beteween notes in bigger chords.

There is a difference in degrees, where the monophonic conversion of the six channels of audio of course is going provide a better foundation for a conversion due to the amount and (relative) isolation of pitch information to be identified.

None of these versions identifies neither strings nor frets, just pitch (on/off), pitch bends, velocity, aftertouch/pressure, brightness.

1 Like

For a basic understanding of how to think about the MIDI data extraction from audio, I made this:

1 Like

Hi @Kimyo, if @JamO had dollar signs in his eyes, MG3 would hardly exist, at least not in the great way it is already usable for the user. I would like to remind you once again that @JamO has a mission that he has published on the website:

ā€œNo Hardware Requirements
No need for inconvenient special pickups and no physical mods. Our solution is a pure software solution that will work on any of your guitars, not just one. It integrates seamlessly with your digital audio workstation and can process old recordings as well as live playing.ā€

@JamO has said he wants to develop the best Midi Guitar for all guitar players out there together with us users and so we are all part of this mission here in the forum, including you with your many helpful and inspiring comments.

But we in the forum are only a small part of the users, and therefore MIDI Guitar should be thought of and developed on a much larger scale. My basic suggestions should be a small contribution to furthering this mission :slight_smile:

@Lofileif, thank you for your precise question.
First of all, my suggestion in the simplest and currently most promising way is that you simply tune/scan all the strings of the guitar you are currently using with the polytuner, including the 12th position, the octave of the open string.

With this tuning/scanning procedure MG3 Standard creates a specific spectral signature data set exactly for the 6 strings of this current guitar, with which you then successfully unlock the hex-specific modules in MG3 Standard exactly for this currently used guitar with which you now want to play.

Whether personalized profiles for several guitars or more general models than for individual types such as steel or nylon guitars etc. could prove useful later on, remains to be seen in practice.

why do you think this is ā€˜simple’? have you implemented any similar tech before? do you have a physics or other engineering background which allows you to make this judgement?

and again, from a business perspective:

  • how much time do you estimate it would take to implement this technology?
  • what priority should it be given? (should it supersede the creation of a manual, for instance)
  • if this new process results in increased latency, is that acceptable to you?

if your answer to the last is ā€˜no it won’t increase latency’ just stop now. you have no knowledge of the internals and thus cannot have an informed opinion. kindly speculate elsewhere.

It does sound to me like you have had some success with a model of your own? So, when you say:

Do you mean I should just pluck every open string and pick its octave, and that is it? I don’t understand how a poly tuner derivies the relevent spectral data from just these two data points? What kind of spectral analysis do you use?

Spectral Centroid, High-Frequency Energy, Harmonic Content, ZCR, Spectral Flatness, or something else?

I must admid I get a bit confused when you add:

Do you have anything like a concept for this tuner/scanner model developed?

@kimyo, all your important questions lead to the only possible practicable answer, which ultimately only @JamO as developer can give: Creating a well-functioning complete string identification in MG3 Standard, in whatever form and at whatever time, remains his decision alone.

@lpspecial, where did you get such an assumption from? how do you arrive at a latency of 100 ms with what probability?

Hi @Lofileif, thanks for your specific questions.

So far, I am not aware of a generalized method for complete string identification that is easy to use and practicable for all types of guitars.

The open string and its corresponding octave are more than just 2 ā€œdata pointsā€, they are 2 multidimensional events with a temporal course with many parameters that can support such a string identification and could be approximated by mathematical methods for each note played on the string in question. I suspect that advanced processes will probably be able to do this in the future using open string recognition alone, without any other ā€œdatapointsā€.

Therefore, the proposed way of individually recording the 6 strings of a single guitar with the tuning/scanning method I described and the specific software in the background based on it to determine the spectral and temporal signature data set currently seems to me to be a first practicable possibility as a workaround, although the final answer to this can only be given by @JamO as the developer.

No, there is no programmed model for this. In addition to the numerous (static) analysis methods, including those you mentioned, reservoir computing with its modern variants of liquid state machines, for example, could also be a worthwhile approach for complex dynamic systems, as others in my environment have pointed out to me.

Here is a basic article on RESERVOIR COMPUTING &LIQUID STATE MACHINE:

I will say no more about this, only @JamO as the developer can judge the further use of these methods in a specific application, if he isn’t already doing so :wink:

How sensible is it from a business perspective to develop more and more features for free?
MG3Hex is a paid add-on for MG3. Why would @Jamo spend time integrating something similar into MG3 where he only earns money from new customers because existing users expect it for free?
Further I’m doubting that it would be that easy to do. Such a development probably takes years of testing. I believe that a magnetic PU is the ā€œwrongā€ source for your concept with too many uncontrollable factors starting from ambient conditions over string deterioration to picking position of the string?

Hi @dutti67, the answer to your first question is simple: while only 1 percent of all guitarist customers can currently only use the HEX-specific variants in MG3HEX, namely only if they have also invested in the entire HEX technology, MG3 Standard with all hex-specific functions could become additionally attractive for 99 percent of all guitarist customers with a traditional magnetic pickup on the guitar and buy the product for this very reason.

To the 2nd question only @JamO can give a final answer by developing these hex functions for MG3 Standard or not.

Hi @lpspecial, thank you for your honest answer and all the best for you.

Not everyone wants to know exactly how MG3 works internally, but of course everyone wants to be sure that MG3 works exactly.

We’ll definitely meet again when practical tests are due.

Suggestion to @JamO: is it possible to record on a guitar with normal magnetic pickup and HexPickup while playing with MG3 Hex and MG3 Standard at the same time and to train the algorithms of MG3 Standard by the currently even better MG3Hex single string recognition for a complete single string identification of MG3 Standard?

My suggestion here is also only to be seen as temporary until there is an exact new purely algorithmic solution for complete string identification in MG3 Standard, which can then also open up many other possibilities for the future up to comprehensive modeling of single strings as well as guitars/basses and other stringed instruments of all kinds…

if jamo listened to you, he’d invest dozens if not hundreds of hours of precious time solving a problem which he has already solved.

if you need these features, you need mg3hex.

would you kindly stop necro posting. once every three days was pretty terrible. i thought you had finally wound it down but once every ten days is also quite annoying.

let jamo work on the manual, on the next release, on enhancements which will provide revenue.

please. for the love of all that is holy. please stop.

Hi @kimyo, your contributions here in the forum are always appreciated, even by me.

As far as we are of opposite opinion here, this does not encourage me to keep quiet, but rather to think constructively and comment further in the forum.

Even if I regard complete string identification for MG3 Standard as a centrally important topic and the missing link for the holy grail of playing in MG3 Standard:

Regardless of this, despite the largely self-explanatory program, I also ultimately consider a good manual / know how wiki to be important, as you do. What could be done right now would be better discussed in a new topic.