Kara-Moon Forum
April 29, 2024, 05:17:03 PM *
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] 2
  Print  
Author Topic: Syncopated chord changes. Tremolo  (Read 12559 times)
drautzburg
Jr. Member
*
Posts: 22


« on: August 16, 2009, 04:27:54 PM »

Hello all,

I could not figure out how to set a chord change between beats. In rock music it is quite common, that a new chord is played "too early", i.e. an eigth or a sixteenth before the "real" one (or three).

I assume I could do this by fiddeling with the Time parameter so I have a resolution of 1/16th, but that really does not express the musical intent. Is there a better way?

Another thing I could not figure out is how to set tremolo, i.e. varying the VOLUME (not the PITCH). This is not an MMA question, but maybe someone knows? Using the Controller TREMOLO does not seem to do anything on my Yamaha CLP.

Thanks
Martin
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #1 on: August 16, 2009, 04:41:05 PM »

Syncopation is very easy in mma. Just a matter of setting the proper offset in your pattern. For example, to have the "hits" just before the 2nd and 4th beat in a bar on a chord pattern you'd have a pattern like:

   Chord Sequence {1.75 8 90; 3.75 8 90}

If you want to use a pre-defined pattern you could use the shift operator:

   Chord Sequence {C1234 Shift .75}

Etc. Have a look at the library files for lots and lots of examples.

You can even use offsets with a value between 0 and 1 to indicate a placement in the previous bar. Just one caution on this is that you'll be using the chord from the current bar in the previous, and that may not be what you want.


Tremolo and other special effects vary with the synth you are using. I'll let one of the yamaha experts answer.


Does this answer your question? Let us konw!
Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #2 on: August 16, 2009, 05:52:31 PM »

Wow, that was a quick reply, thanks!

But no, that doesn't answer my question. My problem is that I want the CHORD to change "too early". If I have a sequence like
Chord Sequence {1 8 90; 2.5 8 90}

I get a chord at 2.5, but I don't know how to tell MMA that this should be the chord of the three. Suppose my chords were
Am / G /

and I want the G to sound already at 2.5, how would I do this? Normally I would still get an Am chord at 2.5. I might get close by setting the G chord to the second beat, but that's still not quite right.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #3 on: August 16, 2009, 06:41:29 PM »

Okay ... I was afraid of that Smiley

There are 2 simple answers:

1. You really don't want to do this. Chords change on-the-beat and are played off-the-beat.

2. MMA doesn't do this.

But, all is not lost Smiley

1. If this is just for occasional spots in your song, use a SOLO line and specify the actual notes in the chord where ever you want this effect.

2. Change the number of beats (time) in the piece from 4 to 8 (or even 16). This will mean that you have to rewrite the underlying groove AND change the placement of the chords.

 .....

There's no way of cheating mma in this. When the chords are read they are assigned (in 4/4 time) to positions 1, 2, 3 and 4. When the actual notes are created mma decodes the sequence string and finds the appropriate beat and grabs the chord for that position. Currently you can't tell mma that the chord changes elsewhere.

But, it's not impossible for a future change. The serious questions are:

1. What kind of notation would you use? Perhaps:

       33 C / D<<.25 E F

would change the D chord 1/4 beat before 3? My fear is that the notation gets pretty ugly.

2. Another possibility which I've actually played with (but not really implemented) is to have a command to convert the time for an exisiting groove by expanding/contracting all the "hits". So, you could take a 4/4 time and "expand" it to 8 or 2.

 ..........

Your turn Smiley
Logged

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


WWW
« Reply #4 on: August 16, 2009, 06:58:00 PM »

Just another thought ... and I'm not sure if this will help or not.

But, if you define a "hit" between 0 and 1 that will sound BEFORE the current bar but will use the chord from position 1. So, in this special case you get what you're asking for ... mind you, this only works at the start of the bar. Example (silly):

Chord Sequence {.75 8 90; 2 4 90}
1  C D E F
2 Am

In this case (assuming that this is the start of the song) the 1st bar will sound a "D" on beat 2. There will not be a "C" since this is before the start of the song and MMA doesn't do negatives.

Next, a Am will sound at offset 4.75 (the end of bar 1) and at bar 2, beat 2.

I use this for bossanova songs where the bass does a push at the end of  bar.

Close?

Currently I don't know how the notation would stretch for the middle of the bar. Also, what happends to other tracks if the chord change is on partial beats? Would this effect the bass, arp., etc as well? Probably have to to avoid dissonance.

Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #5 on: August 16, 2009, 07:23:06 PM »

Well that's pretty close. Thinking in half-bars instead of full bars is still a lot better than doubling the time.

As for the notation, it really should not be in the chord lines. It is not the chord's fault, that it is played to early. Conceptually chord changes still occur on beats. These ideas should be part of the groove.

Basically those hits between 0 and 1 do the trick, except that the idea to "play a chord too early" is expressed in a way, which can only work if the chord is played before the 1 and does not work anywhere else.

If I had one free wish I'd say: use a general notation for "logical beat" (where the chord is looked up) and "actual beat" (when the chord is played). As a default the logical and actual beats are the same. It could look like actual/logical (or the other way round), such that
0.5/1 is equivalent to just 0.5 today and
2.5/3 is the thing which cannot be expressed today.

Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #6 on: August 16, 2009, 08:13:32 PM »

Let me think on this ... but, I'm wondering if in a groove one could do:

   2[-.25] 8 90

to indicate that we're wanting the chord from beat 2 played an 8th early. This could be expanded with cool (dumb?) things like

  2[3] 8 90

and that would play the chord at beat 2 three beats later.

Having an additional offset in []s or ()s or whatever might be the easiest way to handle this. All that is needed is an additional offset field.

Before I start to look at coding I'd love to have more comments.

Thanks.
Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #7 on: August 16, 2009, 08:34:38 PM »

As for the syntax it might be less confusing to make the actual beat more prominent and the logical beat more hidden. Today all the numbers indicate when the chord will sound, even the ones between 0 and 1. So when you want to play the 3 an eighth too early you would have to write in your notation:
3[-.5] 8 90

The actual beat is then 2.5 but that number is nowhere in the line above. Thats why I thought: better leave actual beats as they are and just add something to indicate where the chord is looked up. In
2.5/3 8 90

You would clearly see the 2.5 and if you omit the /3 then rhythm would not change at all. If fact when there is no chord change on the 3 nothing at all would change.
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #8 on: August 16, 2009, 10:09:22 PM »

This is starting to make sense Smiley

I like the 2.5/3 idea. I might use 2.5@3 instead just to make it sound like "play a beat at 2.5 using the chord AT 3" but that is just a quibble.

I'm thinking out loud about things like SHIFT and MUL on patterns and will probably just wimp out and not permit those on "complex" patterns.

Let me think some more and look at the code.

Anyone else with ideas/comments?
Logged

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


WWW
« Reply #9 on: August 17, 2009, 03:27:24 AM »

Okay, I've been thinking a bit more about this and I now think we're
on the wrong track. After all, the problem is not coming up with more
complicated pattern definitions. The problem is that right now chord
changes can only be made on-the-beat.

So, it might make more sense to change that.

Currently, mma assumes that there are as many chord changes as there
are beats in a bar. So, with "TIME 4" you have 4 chords. Period. And
the chords are at beats 1, 2, 3 and 4.

My idea is to change that so you can have unlimited chords in a bar
with some fancy notation Smiley

Consider the following ideas:

  1 Cm
  2 Cm E@2.3
  3 D@3.3
  4 / D@3

1: just like current. But, the parser would be simpler. No need to
expand to 4 chords. Just enter into the table that Cm is valid from 1
to 4.99.

2: A Cm chord from 1 to 2.2999. An E from 2.3 to 4.999

3: An error. A chord has to be specified for beat 1.

4: Okay. The slash is changed by mma internally to the chord from the
previous line (just like now). That is used from 1 ... 2.999. D is
used from 3 to 4.999.

(The .999 is not right ... it's really "up to the next integer"
... but you get the idea.)

My thought on all this is:

1 - an easier parser (and faster) once I figure it out.
2 - unlimited chords per bar.

Comments?Huh
Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #10 on: August 17, 2009, 02:16:48 PM »

Well, maybe idea to put the syncopation into the groove wasn't that brilliant. After all, ALL the chord and bass tracks (and maybe some other types) need to have the same idea what chord to play.

I wonder if we could come up with a more "musical" way of expressing what we want. Playing the 1 one sixteenth too early would require setting the time to 4.75 AND scheduling the "1" chord to already start at 4.75. Setting the time to 4.75 will be part of the previous bar and not part of the bar whose "1" is brought forward.

So when I have an ABAB pattern and the 1 of A schould be played too early I have to put that magic into something which preceeds the A. So here it will be in B and something before the first A. But when I write ABBA the first B will show the syncopation, but it should not be there as it is followed by another B and not an A.


I am not sure if this makes sense. I know little about MMA (I only started using it yesterday).
Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #11 on: August 17, 2009, 05:11:41 PM »

Well, maybe idea to put the syncopation into the groove wasn't that
brilliant. After all, ALL the chord and bass tracks (and maybe some
other types) need to have the same idea what chord to play.

Exactly why I'm thinking that this should be part of the chord spec,
not the groove.

Quote
I wonder if we could come up with a more "musical" way of expressing what we want. Playing the 1 one sixteenth too early would require setting the time to 4.75 AND scheduling the "1" chord to already start at 4.75. Setting the time to 4.75 will be part of the previous bar and not part of the bar whose "1" is brought forward.

Not sure where you are going here. I think that if you want a chord to
play just before beat one, you would set it as:

  chord sequence {.75 8 90}

Currently, this will pick the chord specified at beat 1 (the start of
the bar) a 1/16 before beat 1. Yes, that is in previous bar ... if you
want to use the chord at beat 4 in the previous bar then you would do

  chord sequence {4.75 8 90}

the chord sound at the same time, but now you are using the chord at
beat 4 of the previous bar.

Okay?

Now, under my new idea all this would be the same. Just that you can
manipulate the points in the bar where the chord changes.

Quote
So when I have an ABAB pattern and the 1 of A schould be played too early I have to put that magic into something which preceeds the A. So here it will be in B and something before the first A. But when I write ABBA the first B will show the syncopation, but it should not be there as it is followed by another B and not an A.

Not sure where you are going here. But, if you want things to sounds a
bit different between ABAB and ABBA then you can easily set a RIFF to
override the groove for a bar.

If all is lost, have a look at BEATADJUST Smiley

Quote
I am not sure if this makes sense. I know little about MMA (I only started using it yesterday).

Well, you seem to be having fun and are making a significant
contribution here. Thanks.
Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #12 on: August 18, 2009, 07:56:07 AM »

Just thinking aloud:

Suppose I have two subgrooves "straight" and "syncopated", where syncopated starts with a hit on 0.75, using the chord at one.

If the groves change as straight->syncopated then I could alternatively set the hit to 4.75 in "straight". As long as I make the chord valid before the one, this will sound as desired.

However this is conceptually wrong because the hit belongs to the syncopated subroove and not to the straight groove. This will become aparent when I repeat the straight groove. Everytime it will end with a 4.75 hit, which is NOT what we want. We only want the 4.75 hit when it is followed by a "syncopated" groove.

So even with your "chord can change anywhere" extension we still need the hits between 0 and 1. I suppose all is well then.

There is a similar issue with the chords themselves. On each transition to "syncopated" you have to make sure the "one" chord is valid at 4.75 already. However here it is a cheap price to pay, as entering chords is so little work.

In general, the problem is rooted in the fact that mma has no concept of "pickup to bars" (I hope this is the correct word).



Logged
bvdp
Kara-Moon Master
****
Posts: 1437


WWW
« Reply #13 on: August 18, 2009, 05:35:15 PM »

Not sure if I'm understanding your last post. But ...

1. No, mma doesn't really understand "pickup" bars. However, in the general sense that pickup bars always occur at the start of a piece, this shouldn't be an issue. And, if you want a "short" bar in the middle of a piece then "fix" things with beatadjust.

2. Your different AB, BA, etc. combinations sound like a simple case of repeats and repeatendings. Which mma DOES support. Just a matter of having different groove variations for endings, etc. This is to be expected and should not have anything to do with the complexities of off-beat chord changes.

I did look at the chord issue last night and I really don't think the re-coding will be that hard to do. Fortunately, most of the stuff is isolated out in about 3 functions. I hope to have some time in the day or so and will have a stab at it and let you guys know. My "mental" picture is that existing notations will work fine, and the additional thing will be an optional "@beat" which will let you change anywhere. Should be useful.

Best,
Logged

My online life: http://www.mellowood.ca
drautzburg
Jr. Member
*
Posts: 22


« Reply #14 on: August 18, 2009, 08:37:07 PM »

Don't worry, I was just thinking aloud. All the stuff can be done with MMA, especially when your extension is implemented. I am working on my own little "swiss army knife for composers", and the problem that "composition" time is not the same as wallclock time is one of the problems I still haven't solved. When you play a pickup bar or play the "one" too early, then the "composition time" is already at the next bar. If you moved that thing around in the song, then the pickup bar should follow. It just does not "belong" to the bar within which it sounds.

I am happy to hear that your idea turned out to appear like a manageable change.

And BTW, I am really impressed by MMA. For my own project I thought I would have to add the possibility to change the chords of a piece (obviously!), but only after looking at mma I realized how much I have to consider. One of things in mma which immediately caught my attention was the randomizing. I always wanted to have "playful hihats", and with mma this is doable with moderate effort.
Logged
Pages: [1] 2
  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.059 seconds with 19 queries.