cknadler / marktab-c

Concise, machine readable guitar tabs
MIT License
36 stars 7 forks source link

Muting #20

Closed russplaysguitar closed 11 years ago

russplaysguitar commented 11 years ago

X character for muting?

cknadler commented 11 years ago

There is an interesting issue with this. Lets say you want to palm mute a chord.

OpenG: (6:3 5,2,1:2 4,3:0)

OpenGm OpenGm

The way I currently have this implemented, the parser would see OpenGm and assume it is a symbol, look for it in the list of defined chords or sequences, and then error out because it doesn't exist. We either need another character to represent mutes that isn't [a-zA-Z] or we need to make m a reserved character that can't be used anywhere else. I'm in favor of the former but let me know what you think.

As for x, that is only for muting a string without palm muting.

For example:

(6,5,4,3,2,1:x)

This would mean mute all strings with your left hand (assuming you are a right handed player) and strum. Fret position wouldn't be taken into account.

cknadler commented 11 years ago

x also means different things based on context. x[0-9]* would evaluate as a multiplier.

russplaysguitar commented 11 years ago

Hmm, I got the x idea from looking at existing guitar tabs. Not that marktab always has to match the special characters already used in guitar tabs, but since it does match for all of the other special characters h p / \ * then it seemed natural that it would also use x for muting.

I see your point about the muting notation being ambiguous, but isn't that just how it is in guitar tabs? Usually it exists within the context of other notes, which helps the reader understand it better.

Do you know of any tabs which distinguish between the different kinds of muting?

russplaysguitar commented 11 years ago

Well I just answered my own question: http://tabs.ultimate-guitar.com/c/coheed_and_cambria/time_consumer_tab.htm

. is used for palm mute, x is used for string mute

cknadler commented 11 years ago

Yeah. That works a lot better. So x can still be used in symbol definitions and . can be a modifier for palm mute. I like it. That makes all of the modifiers special characters that are not part of the symbol regex which is super rad.

+100

cknadler commented 11 years ago

I'm going to rewrite the grammar file to better define everything. I'll open a new issue with it so we can collaborate and work out all the kinks. The x ambiguity was throwing me for a loop though, glad we already got that ironed out.

russplaysguitar commented 11 years ago

cool