-
Notifications
You must be signed in to change notification settings - Fork 3
4. Example Asturias (Leyenda), aka Prelude
So this one had me worried when I first tried to autotranscribe it with gtrsnipe. I was presented at first with a confusing, unplayable mess of numbers all over the place. Here's a sample of the terrible tablature gtrsnipe made for me with all of its Fretboard Mapper algorithm weights at their defaults.
e|--------------------------------------------------------|
B|--------------0-----1----------------0------------------|
G|--------------4--4--5--p4------------4--4--0---h4-------|
D|----2------9---------------7------9----------------2----|
A|------------------------------12-----------10-----------|
E|-------12---------------------------------------------12|
e|-----------------------------------------------------------|
B|-----0-----1----------------0-----------------------0-----1|
G|-----4--4--5--p4------------4--4--0---h4------------4--4--5|
D|--9---------------7------9----------------2------9---------|
A|---------------------12-----------10-----------------------|
E|---------------------------------------------12------------|
WTF? It doesn't even look very musical. So let's run gtrsnipe again, responding by specifying some options and changing the weights of others:
// Transcribed with: gtrsnipe -i x:\asturias-leyenda.mid -o leyenda.tab --sweet-spot-high 9 --string-switch-penalty 1 --ignore-open --sweet-spot-low 4 -y --prefer-open --unplayable-fret-span 3 --high-fret-penalty 50 --dedupe --fretted-open-penalty 0 --movement-penalty 20
e|-----------------------------------------------|
B|-----------------------------------------------|
G|-------------------------------------------4---|
D|-------9--9--9--h10--p9--p7--h9--9--9--p5-----2|
A|----7------------------------------------------|
E|-----------------------------------------------|
e|-----------------------------------------------------|
B|-----------------------------------------------------|
G|--4--4--4--h5--p4--p2--h4--4--4-----4-----4--4--4--h5|
D|---------------------------------5-----2-------------|
A|-----------------------------------------------------|
E|-----------------------------------------------------|
It's in the ballpark of more musical, but it's still an awful transcription. That's ok, I expected to be figuring out combinations of command-line arguments while in early development, finding what works better in certain conditions and to maybe bundle some common ones as presets, so I'll just try again with slightly different weights where it feels like it will help make this tab output better. Extending the "sweet spot" zone down to the nut seems like a good way to maybe not be so focused on that 9 area.
// Transcribed with: gtrsnipe -i x:\asturias-leyenda.mid -o leyenda.tab --sweet-spot-high 9 --string-switch-penalty 1 --ignore-open --sweet-spot-low 0 -y --prefer-open --unplayable-fret-span 3 --high-fret-penalty 50 --dedupe --fretted-open-penalty 0 --movement-penalty 20
e|---------------------------------------------|
B|---------------------------------------------|
G|-------4--4--4--h5--p4--p2--h4--4--4-----4---|
D|----2---------------------------------5-----2|
A|---------------------------------------------|
E|---------------------------------------------|
e|-----------------------------------------------------|
B|-----------------------------------------------------|
G|--4--4--4--h5--p4--p2--h4--4--4-----4-----4--4--4--h5|
D|---------------------------------5-----2-------------|
A|-----------------------------------------------------|
E|-----------------------------------------------------|
Well, it did indeed move it down lower toward the nut, but transcribing those 4's like that, while they are the same pitches in the song, they are meant to ring out and give the song that Spanish feel that these repetitive notes just aren't going to convey. So I asked myself how would I change it were I transcribing it manually? How would I explain it to someone wanting to learn the piece? A-ha! We need a way to tell the Fretboard Mapper that sometimes it isn't all about conservation of hand and finger movements, sometimes it's about letting notes ring out, musically. It's time for a new mapper option. We'll call it --let-ring-bonus and try again once it is implemented.
// Transcribed with: gtrsnipe -i x:\asturias-leyenda.mid -o leyendaz.tab --sweet-spot-high 9 --string-switch-penalty 0 --ignore-open --sweet-spot-low 4 -y --prefer-open --unplayable-fret-span 3 --high-fret-penalty 50 --dedupe --fretted-open-penalty 0 --movement-penalty 20 --let-ring-bonus 100
e|------------------------------------------|
B|-------------0---------------0------------|
G|----------4-----5---------4-----4-----4---|
D|-------9-----------9--p7-----------5-----2|
A|----7-------------------------------------|
E|------------------------------------------|
e|------------------------------------------------|
B|-----0-----1-----------0-----------------0-----1|
G|--4-----4-----4-----4-----4-----4-----4-----4---|
D|-----------------7-----------5-----2------------|
A|------------------------------------------------|
E|------------------------------------------------|
Well that's objectively "better", and it does indeed seem like the strategy implemented causes it to place notes in ways that encourage "ringing", but it still isn't how anyone would play it. And what's with that 9th to 4th D to G jump? That's a 5 fret difference; larger than my --unplayable-fret-span that should penalize and thus avoid big jumps like that. What gives? A-ha! Up to this point, my fret span calculation was only considering spans on the same string, or on multiple strings if played in a chord formation - I did not have the mapper considering diagonal spans across strings for individual notes. Time for yet another new mapper option: --count-fret-span-across-neighbors.
While I was in there adding this feature, it occurred to me that as guitarists we don't just take into account the previous played note when deciding where to fret the next note, especially in a "ringing notes" scenario like this so I went ahead and gave it the ability to take into account the previous two notes/positions when scoring the next fret position possibilities, this way if your finger is held still on one fret for three notes, gtrsnipe won't blindly decide to send you 4 or 5 frets away because it has long lost sight of anything but the previous note; now it knows the previous previous note as well.
So now let's try again. Also, let's add --no-articulations as this is not a piece nor performance that will benefit from gtrsnipe trying to infer times and places for hammer-ons and pull-offs.
gtrsnipe -i x:\asturias-leyenda.mid -o leyenda.tab --sweet-spot-high 9 --string-switch-penalty 0 --ignore-open --sweet-spot-low 4 -y --prefer-open --unplayable-fret-span 3 --high-fret-penalty 50 --dedupe --fretted-open-penalty 10 --movement-penalty 20 --let-ring-bonus 210 --count-fret-span-across-neighbors --no-articulations
e|------------------------------------------|
B|----------0---------0--------0------------|
G|--------------------------4-----4-----4---|
D|-------9-----9--10-----7-----------5-----2|
A|----7-------------------------------------|
E|------------------------------------------|
e|------------------------------------------------|
B|--0-----0-----0-----0-----0-----0-----0-----0---|
G|-----4-----5-----2-----4-----0-----------4-----5|
D|-----------------------------------2------------|
A|------------------------------------------------|
E|------------------------------------------------|
Now we're getting somewhere. Though that opening bar is a little awkward to play and I'd like it a lot more if.. oh! Let's let the sweet spot return to its default of the first 12 frets by removing the sweet-spot options entirely from our command:
// Transcribed with: gtrsnipe -i x:\asturias-leyenda.mid -o leyenda4.tab --string-switch-penalty 0 --ignore-open --prefer-open --unplayable-fret-span 3 --high-fret-penalty 50 --dedupe --fretted-open-penalty 10 --movement-penalty 20 --let-ring-bonus 210 --count-fret-span-across-neighbors --no-articulations
e|-----------------------------------------|
B|-------0-----0-----0-----0-----0-----0---|
G|----------4-----5-----2-----4-----0------|
D|----2-----------------------------------2|
A|-----------------------------------------|
E|-----------------------------------------|
e|------------------------------------------------|
B|--0-----0-----0-----0-----0-----0-----0-----0---|
G|-----4-----5-----2-----4-----0-----------4-----5|
D|-----------------------------------2------------|
A|------------------------------------------------|
E|------------------------------------------------|
e|------------------------------------------------|
B|--0-----0-----0-----0-----0---------------------|
G|-----2-----4-----0-----2--------4-----4-----4---|
D|-----------------------------4-----5-----7-----4|
A|------------------------------------------------|
E|------------------------------------------------|
Alright! This is a perfectly reasonable tab transcription. Now we've got ringing opens and sensible fingerings with no gymnastics and you can tell just by looking at the tabs that this is music now. It was a difficult piece to transcribe resulting in two new features/options in gtrsnipe's fretboard mapper, but it's a good example of what makes gtrsnipe different from any other automated tab generator you have used. Tablature made for you and your preferences and even specific instrument.
Guttersnipe. From audio to ascii. Tablature.