OP here. I need to update the readme, but running it with --help will show you all of the alternate tunings and such. The mapper algorithm is nearly 100% tunable.
As I said, I'll put this info in the README, but last night I made a medium post that shows some of this (--bass, etc).
But this doesn't seem to account for other shape concerns. The bit I am most interested in is whether this mapper can avoid barre chords where possible.
Related, I think there should also be an option to take capo into account.
There's quite a bit more involved in the scoring, such as string hopping, runs on the same string, etc. I invite you to run --help and look at the mapper config tunables. Ideas for improvement are welcome.
Nice! This reminds me of my PhD research! I built some similar tools to go the other way (for comparing similarity with scores) but probably nowhere near as reliable as this. QQ How do you handle repeat segments? I remember having to extrapolate the x2's etc but in your you could detect patterns and do the reverse for compactness.
Thanks! TBH I hadn't thought about handling repeating segments yet - in either direction. Because the tab-to-midi direction is mostly a novelty I haven't done much of it except with tabs generated by gtrsnipe, and since it doesn't handle repeats specially, I haven't had to parse any "x2" type notation, but now that you mention it I should. Thanks again.
I probably need to update the documentation. Since I posted I've added many alternate tunings and it supports from four to seven strings. I'm still improving it. Thanks for checking it out.
Looks like tayuya is also written in Python, on mido and music21. It has a "get all notes to play" feature, mentions LilyPond tab output as a todo, and has a get_key(midi) method built on music21:
https://github.com/vipul-sharma20/tayuya#get-all-notes-to-pl...
Textual is another way to create CLIs for Python scripts.
What about tab playback and CLI-based scrubbing?
There was a post a week or so ago about an LWN article about spotify/pedalboard, which is written in Python and built on JUCE (C++) and supports VST3 and LV2 plugins like a MIDI player or a wavetable synth and a Guitarix effects rack: https://news.ycombinator.com/item?id=44604024#44648290
As I said, I'll put this info in the README, but last night I made a medium post that shows some of this (--bass, etc).
https://medium.com/@scott.vr/about-seven-months-ago-via-hack...
https://github.com/scottvr/gtrsnipe/blob/4cae149e1dac766c3c3...
But this doesn't seem to account for other shape concerns. The bit I am most interested in is whether this mapper can avoid barre chords where possible.
Related, I think there should also be an option to take capo into account.
Previous effort: https://github.com/TylerMclaughlin/midi_to_tidalcycles
Looks like tayuya is also written in Python, on mido and music21. It has a "get all notes to play" feature, mentions LilyPond tab output as a todo, and has a get_key(midi) method built on music21: https://github.com/vipul-sharma20/tayuya#get-all-notes-to-pl...
tayuya.tabs:note_nearest_to_fret: https://github.com/vipul-sharma20/tayuya/blob/master/tayuya/...
Kord has a fretboard visualizer tool: https://github.com/synestematic/kord#fretboard-tool
Textual is another way to create CLIs for Python scripts.
What about tab playback and CLI-based scrubbing?
There was a post a week or so ago about an LWN article about spotify/pedalboard, which is written in Python and built on JUCE (C++) and supports VST3 and LV2 plugins like a MIDI player or a wavetable synth and a Guitarix effects rack: https://news.ycombinator.com/item?id=44604024#44648290