cknadler / marktab-c

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

Modifiers on Sequences #25

Closed cknadler closed 9 years ago

cknadler commented 11 years ago

Should we allow modifiers on sequences? Currently, my implmentation isn't.

Examples:

[1:4 1:3 1:2]*
riff: [1:4 1:3 1:2]

riff*

/cc @russplaysguitar

russplaysguitar commented 11 years ago

Oooh yeah, I could see that being really useful for chord slides:

(6:1 5:3 4:3) / (6:3 5:5 4:5)
F: (6:1 5:3 4:3)
G: (6:3 5:5 4:5)

F / G

And actually, I'm not even sure how you'd write a chord slide in marktab without this.

So yes, modifiers should work on sequences and chord definitions.

cknadler commented 11 years ago

Modifiers, not transitions. Also...sequences, not chords.

For instance:

Riff1: [1:2 (6:1 2:1) 1:4]

Riff1*
cknadler commented 11 years ago

I do allow for transitions on chords and sequences in my implementation.

russplaysguitar commented 11 years ago

Yeah, but I was talking about chords and transitions, too.

I think modifiers on sequences are good. Such as [1:1 2 3]x to play a sequence muted.

cknadler commented 11 years ago

How would modifiers work for a sequence?

x is the string mute, which should error out in that case. But, the palm mute modifier m, in place of x in that same scenario, [1:1 2 3]m, how would that work?

I definitely think it would be cool, I just cant figure out exactly how it would work.

russplaysguitar commented 11 years ago

Aw snap, good questions. (I definitely meant palm mute, not string mute.)

"Would it apply the modifier to every note and chord and sub-sequence, in that sequence?"

"What if some of the notes already have modifiers, would they be overwritten or left as they are?"

"What if there are nested sequences with modifiers, would the outermost sequence modifier take priority or would each inner sequence apply its own modifier?"

Basically, it has to modify everything in the sequence otherwise the rules are going to get complicated and unmaintainable.

Logically, if you wrap stuff into a container and then express that it should be modified, it makes sense for everything in the container to be modified.

I mostly see this feature being used to turn sequences into palm-muted sequences, since harmonics don't occur on every fret, and bending every note in a sequence is just weird. I guess a sequence could be made "more epic" by adding vibrato to every note, too.

cknadler commented 11 years ago

Agree with every word. Also, how can you play a note on the guitar without vibrato? I just shake my hands like crazy, every note I play, epic as possible, live it.

russplaysguitar commented 11 years ago

Haha, cool. This is definitely an interesting feature. It should work for chords too, right?

cknadler commented 11 years ago

Completely. I actually dont allow individual notes to be modified in a chord definition or inline chord production.

For example:

(1:5* 2:1)

would actually error out for me. Should I be allowing for modifiers in chords?

As far as applying them to chords, I'm definitely allowing that:

(1:5 2:1)*

is totally legitimate.

russplaysguitar commented 11 years ago

"Should I be allowing for modifiers in chords?"

cknadler commented 11 years ago
russplaysguitar commented 11 years ago

Are there any songs that do that? Those seem like such edge cases...

cknadler commented 11 years ago

They definitely are. I only know of one of the top of my head with partial palm muting (where its actually important). Lets leave it out of the first version of the grammar.

cknadler commented 11 years ago

Ok, feel like we nailed this down. What I'm going to start doing is writing tests to describe the results of these discussions as well as making notes in the grammar. Feel free to beat me to either. :smile_cat:

I'll leave this issue open until both are done.