fholger / RocksmithToTab

Exports Rocksmith 2014 songs to Guitar Pro tabs
http://www.rocksmithtotab.de
BSD 2-Clause "Simplified" License
211 stars 36 forks source link

Improvements for slides #22

Closed jnettels closed 8 years ago

jnettels commented 10 years ago

As far as I can tell, there is some room for improvements on how slides are handled:

a) Unpitched slides: After conversion, an unpitched slide does lack its end note in the gp5 file. Only the starting note is shown and the slide attribute, but the information where to slide to is lost. In EOF, an unpitched slide does not have a marker for its end note. That is probably the reason... This is difficult to fix, because afaik TuxGuitar does not even support unpitched slides. But if possible, it would be good to add the end note, so that the slide information is not lost. 4 / 5 (unpitched) becomes 4_ It should just become 4 / 5

b) A regular slide where the start and the end note are played/picked: Here the opposite is happening. The slide is converted to start and end note in gp5, but the next note to be played (the end note) gets a seperate note in pg5. This does also mess up the duration, because now the slide is only half as long. 4 / 5 becomes 4 / 5 5 It should just become 4 / 5

c) A regular slide where the end note is not played: For example you slide to a position and then let the end note ring for a while, without having picked it. This is currently ok, so it should not change if you change anything else. In EOF, this is done with the "linknext" status on the start note, which means that Rocksmith does not require you to play the next note. 4 / 5 (linknext on 4) becomes 4 / 5

So all in all I think it would be good if all kinds of slides just become regular slides, without loss of information or dublication of end notes. Of course I cannot judge how difficult this might be...

fholger commented 10 years ago

a) In practical playing, unpitched slides don't really have a target, that's why in virtually every tab I know they are notated just like that, a slide without target. After all, the idea is to slide the note a little and then gradually lift the finger to let the note die out. And this is also the only way to notate unpitched slides in Guitar Pro. Rocksmith's very methodical approach adds a sort of target to these slides, but to display the target, I would have to notate all unpitched slides as regular slides, and I'm not sure if that is really more accurate. My current stance is that if the target is actually important, then it's not in fact an unpitched slide and shouldn't have been charted like one in the first place.

b) The current behaviour is intended, as it's the easiest to deal with in the current logic and also the most consistent. The situation is like this: For any slide (except those falling into c) ) Rocksmith only writes down a single note, which defines both the start and end point of the slide. The next note after that can basically be any note. So to properly write down this slide in Guitar Pro (or any tab, really), I have to split that note into two, the beginning and the target of the slide. Since I don't have any additional information about the slide, I just try to split the note into two roughly equal halfs. This isn't an exact science and can actually produce "wrong" results, where in a triplet rhythm there is suddenly a slide written with two normal eighth notes. This happens, for example, in "Satch Boogie", but I see no easy way to avoid this. Now, the case that you mention, where the following note is actually the same note as the target of the slide, is just a special case of this procedure, and currently I don't treat it any differently, so that's why you see results of the form. In principle, I could probably change this, but there is a danger that might produce unintended results if I'm not careful. So I haven't made up my mind if I really should change it, because ultimately the tab can only be an approximation, anyway :) But I can try, certainly.

c) Yes, this should be working as intended, as I'm using the linknext status to decide that I don't have to insert the target note manually.

I hope this explains a bit the logic behind the current mechanisms. I'm definitely not saying the current way of handling slides is the ultimate truth, so I can try and change some aspects of this. But basically these are the reasons why I did it the way it currently works :)

jnettels commented 10 years ago

Alright... sounds like you already put a lot of thought into that