Kara-Moon Forum

Developers & Technology => Musical MIDI Accompaniment (MMA) => Topic started by: infojunkie on June 06, 2022, 03:52:02 PM



Title: Anticipated chords
Post by: infojunkie on June 06, 2022, 03:52:02 PM
Hello!

As I work on automated conversion of music sheets to MMA, I've noticed that one tricky feature of many musical cultures (including jazz and samba with which I am familiar) are anticipated chords, which as you know occur on the previous 16th or 8th relative to where the chord is actually placed on the chart.

I was wondering if there's a recommended practice to anticipate chords in MMA. I can see two basic approaches:
- Placing the chords in their anticipated position during MusicXML => MMA conversion
- Writing an MMA plugin to anticipate the chords during MMA => MIDI conversion

Looking forward to your thoughts!!


Title: Re: Anticipated chords
Post by: bvdp on June 06, 2022, 04:57:56 PM
I've always thought of the chords as being changed on the next bar ... but the bass note is "pushed" at the end of the previous bar. So, for example (and this is not a great example) if you are switching from CM7 to Dm I would play a D bass note at the end of the "C" bar ... the point to play the note is "probably" around a 1/32 before the bar end. And, the note should hold into the next bar. All we're really doing is to make life tough for the bass player here, making him think about what's going to happen :)

I think that if you are going to try to anticipate when and what the next chord is going to be based on some "logic" you're going to have trouble :) Heck, even composers change their minds in the middle of pieces on this.

As to when to do in the conversion: I think you should do it as part of the MusicXML->MMA process. After all, if the XML source it accurate it will already have done the compensation, won't it?


Title: Re: Anticipated chords
Post by: bvdp on June 06, 2022, 08:12:15 PM
BTW, in case you missed it, all tracks in MMA can have negative offsets for the start beat. From the manual (Patterns->Start):
 
Code:
 When to start the note. This is expressed as a beat offset. For example, to start a note at the start of a bar you use “1”, the second beat would be “2”, the fourth “4”, etc. You can easily use off-beats as well: The “and” of 2 is “2.5”, the “and ahh” of the first beat is “1.75”, etc. Using a beat offset greater than the number of beats in a bar or less than “0” is not permitted.

Please note that offsets in the range “0” to “.999” will actually be played in the previous bar using the chord specified at beat 1 of the current bar .....

Which makes setting up these kind of chords and/or bass patterns fairly trivial.




Title: Re: Anticipated chords
Post by: infojunkie on June 11, 2022, 08:04:35 AM
Sorry for the late reply and thanks for your advice! Yes, the start offset < 1 looks like exactly what I need.

As you can see from the attached score, it's not just the bass that can start early.


Title: Re: Anticipated chords
Post by: bvdp on June 11, 2022, 04:08:05 PM
Neat. I wonder, though, are the chord symbol names correctly placed in the score? They indicate that the chord changes on beat one, but the score itself is changing on the final 16th of the previous bar. Guess that is why we have ears to listen to things and then make decisions :)


Title: Re: Anticipated chords
Post by: sciurius on June 18, 2022, 07:34:35 AM
I've seen this often this wa so I think it is conventional. After all the chord change officially takes please at the 1st beat of the measure, but it is played slightly advanced for effect.