Kara-Moon Forum
April 24, 2024, 06:52:36 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: You can go back to the main site here: Kara-Moon site
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Chord specific plectrum patterns  (Read 4483 times)
sciurius
Sr. Member
****
Posts: 443



« on: April 08, 2020, 08:49:21 AM »

We can already define plectrum chord shapes, what we need now is chord sequences.

In typical fingerpicking settings, the patterns depends on the chords. For example a simple pick:

Code:
Plectrum Sequence {
            1.0    0   5:90;
            2.0    0   3:70;
            3.0    0   2:70;
            4.0    0   4:80;
            5.0    0   3:70;
            6.0    0   2:70;
    }

This uses the 5th string (low A string) as bass and is applicable for chords that have their bass notes on this string, e.g. A, Am, C, B, and so on.

For chords with bass on the 6th string (E, F, G, ...) the pattern would be:

Code:
Plectrum Sequence {
            1.0    0   6:90;
            2.0    0   3:70;
            3.0    0   2:70;
            4.0    0   4:80;
            5.0    0   3:70;
            6.0    0   2:70;
    }

Would it be feasible to have something similar to

Code:
Plectrum ChordSequence Am { 1 0 5:90; 2 0 4:80; ... }
Plectrum ChordSequence C  { 1 0 5:90; 2 0 4:80; ... }
Plectrum ChordSequence Em { 1 0 6:90; 2 0 4:80; ... }
...

So that you can write

Code:
Groove Whatever
  1    Am
  2    C
...

and have each chord played using the defined shape and sequence.

What do you think?
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #1 on: April 08, 2020, 05:03:55 PM »

So, what you are suggesting is a command which lets you define a different sequence depending on the chord being used.

Sure, it'd be possible ... but since there are about 100 different chords defined by MMA, that means you'd really need about 100 different sequence patterns to do it properly ... and then you'd really need to multiply that by 12 for each possible key ... and then by another 3-7 for each octave. Now, you can argue "but I don't use all those chords" and that's legit ... but the minute you do something with you limited chord set the next fellow or your next song will come along needing "just one more". And, that's all fine 'cause you're suggesting to do this in a user-mode type of situation. Right?

That's why MMA relies on voicing for it's chord patterns so that the different notes can be munged into something that "probably sounds good" Smiley

I'm not closing the door on this, at all. But: That is why plugins exist! It should be relatively easy to create a plugin:

   - call it PlectrumSequence
   - load it with Plugin @PlectrumSequence
   - In your MMA code have something like this:  @PatternSequence Am  /  Bm
   - The plugin would read that and return the Am and Bm as a chord line for other tracks to use. Internally it would need to set up a call to create the needed internal sequence
   - Or, in the about you might just set it up as a Riff?

I'm flying on no coffee right now, so I have no idea what might or might not work. But, when we get into real specific stuff like this request I'm reminded that this is why the plugin idea was created.

Now, it might not be feasible to do this with a plugin. Does that mean we need to change internal MMA define behaviour and add more commands ... or do we need to fix or expand the way plugins work?
Logged

My online life: http://www.mellowood.ca
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #2 on: April 09, 2020, 03:31:53 AM »

Just a little comment to add to the discussion Smiley Would using inversions of your chords help in achieving the sound you want?BTW, it is possible to specify different chords for different tracks. So assuming that you have a Chord and Plectrum track you could do something like:

    C / Am   /// set the chord track chord
    Plectrum Chords C / Am<2  /// and the plectrum chord ... the Am is has the C in root position

(And, yes, I know exactly what you are asking ... just want to avoid a lot of work!)
Logged

My online life: http://www.mellowood.ca
sciurius
Sr. Member
****
Posts: 443



« Reply #3 on: April 09, 2020, 06:06:54 AM »

LMAO!

All I was thinking is a little lookup table that one (=me, not you) can populate with plectrum pattern overrides for selected chords...
It is quite similar to Plectrum Shape, which is a little lookup table that one can populate with plectrum shape overrides for selected chords.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #4 on: April 09, 2020, 04:33:50 PM »

Yeah, I know. It is on my list. But I'd really like to come up with more generic solutions to this. Have you tried using chord rotations?
Logged

My online life: http://www.mellowood.ca
sciurius
Sr. Member
****
Posts: 443



« Reply #5 on: April 09, 2020, 05:20:46 PM »

Chord rotations are not related to this.

For finger picking guitar, I must be able to totally control what strings are plucked, when, how strong, and at what position. Plectrum Sequence in combination with Plectrum Shape gives me all the power I need. It is just tedious to write.

Alternative one: use different Grooves (now we solved the sounding issues):

Code:
Groove PluckWithARoot
  10    Am
  11    C
Groove PluckWithDRoot
  12    D
Groove PluckWithERoot
  13    F

This is very hard to combine with ordinary use of Grooves for e.g. piano or organ.

Alternative two: override the Plectrum Sequence:

Code:
Plectrum Sequence { 1 0 5:90; 2 0 4:80; ... }
  10    Am
  11    C
Plectrum Sequence { 1 0 4:90; 2 0 4:80; ... }
  12    D
Plectrum Sequence { 1 0 6:90; 2 0 4:80; ... }
  13    F

Even with macros (either approach)

Code:
$PluckWithARoot
  10    Am
  11    C
$PluckWithDRoot
  12    D
$PluckWithERoot
  13    F

Since, and that may sound alien to non-fingerpickers, the picking pattern is related to the chord, a simple lookup table to associate a picking pattern with a chord would make this easier and more elegant.

But it is not an urgent issue since I can already do what I want anyway.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #6 on: April 10, 2020, 04:55:40 PM »

Like I said, it's on the list.

Another suggestion ... if you really need to control each and every note plucked, then perhaps you should be looking at solo tracks which let you set lots of stuff for every note. Only "problem" is that there is no indefinite ringing with a solo.
Logged

My online life: http://www.mellowood.ca
sciurius
Sr. Member
****
Posts: 443



« Reply #7 on: April 10, 2020, 05:12:38 PM »

... then perhaps you should be looking at solo tracks which let you set lots of stuff for every note. Only "problem" is that there is no indefinite ringing with a solo.

Which is a showstopper.

Besides, it would require explicit coding of each and every chord in each and every measure which is a bit too much Wink .

But there are always more ways to obtain a specific result, and MMA is awesome.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #8 on: April 10, 2020, 11:01:58 PM »

Yeah, I figured that Solo would present some "problems".

But, I see a problem with your chord specific sequence definitions ... maybe you've see it as well? What happens when you have more than one chord in a bar ... That would mean that you'd need to set up a sequence for "Am", a different one for "Am / C7 /", etc.

So, it's getting more complicated?  Huh

So, maybe having a Riff-like substitution that would rely on a macro? So, you could define the macro $Am to pluck a specific set of strings ... then in your music line you'd have "C Em $Am C@4" ....  I'm showing this with a specific position for the final chord since the $Am would probably not be seen by the chord parser??? This is not a suggestion, just some ideas.
« Last Edit: April 10, 2020, 11:05:59 PM by bvdp » Logged

My online life: http://www.mellowood.ca
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #9 on: April 11, 2020, 09:08:12 PM »

How about using riffs created via macros?

Code:
Mset Aminor
  Plectrum Sequence {
    1.0    0   5:90;
    2.0    0   3:70;
}
MsetEnd

Plectrum Sequence {
   1.0    0   6:90;
   2.0    0   3:70;
}

Plectrum Voice JazzGuitar

C          // chord with default pattern
$Aminor 
Am       // Am chord with "special" pattern
Am       // Am chord with default

Should do what you want without all the grooves you are using now. Plus, this way you can continue with the other tracks in the current groove. You could even put the chord right in the MSET if you want Smiley
Logged

My online life: http://www.mellowood.ca
sciurius
Sr. Member
****
Posts: 443



« Reply #10 on: April 12, 2020, 12:40:54 PM »

But, I see a problem with your chord specific sequence definitions ... maybe you've see it as well? What happens when you have more than one chord in a bar ... That would mean that you'd need to set up a sequence for "Am", a different one for "Am / C7 /", etc.

As a typical example, a 6/8 song plays strings 6-3-2-4-3-2 for E and G and 5-3-2-4-3-2 for Am and C. So I have Grooves that define these patterns. For the cases where I need to change chord halfway I have Grooves that are half of these, 3/8.

Code:
Groove G6E
   1   E                // 6-3-2-4-3-2
Groove G3E
   2   G                // 6-3-2
Groove G3A
   3   Am               // 5-3-2
Groove G6A
   4   C                // 5-3-2-4-3-2

This is easier than defining 6-beat grooves for all combinations (G6EE, G6EA, G6AE. G6EE, ...).

Quote
So, it's getting more complicated?

Hardly.

Logged
sciurius
Sr. Member
****
Posts: 443



« Reply #11 on: April 12, 2020, 12:42:41 PM »

How about using riffs created via macros?

Yes, that is what I mentioned in reply #5.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #12 on: April 12, 2020, 05:00:06 PM »

I'm just trying to help here by making the solution more encompassing ... esp. if you add in other tracks other than a single guitar to the mix. Using a RIFF lets you modify just the Plectrum track and leaves the others (if any) alone.

As for multiple chords per bar ... instead of switching timesigs, you can also use truncate. Nice thing about that is the resulting Midi file will not be cluttered with different time sig markers. Again, no big deal if you're just doing one instrument.

Glad to hear that you are coping with the limitations of the program Smiley I wish I were doing as well, mentally, with the limitations of being under a "lockdown" here. Yeah, I've got a large property and house ... but it's the knowledge that I'm not to go anywhere other than a brief grocery run that's starting to wear me down. Oh well, this too will pass Smiley
Logged

My online life: http://www.mellowood.ca
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.041 seconds with 19 queries.