> Other things to consider include the fact that we can't assume the left
hand is playing the root - what
> we generate should probably include the root in the bass.
I'd assumed that the left hand part was part of the realization.
Specifically, the bass needs to be sufficiently low to act as a bass tone
instead of just a low chordal note.
And to cover all bases - obviously, G/D has a D as the bass, not the root G
of the chord.
> I actually think we could likely get good results with a relatively
simplist algorithm based on treating the
> piano kind of like a guitar, but one tuned to something like say
C-G-C-E-A-D, always putting the root on
> the bottom, a chord tone next, and striving to keep low "fret" numbers
for the remaining notes.
You *would *get fairly good results, but it wouldn't give you the smooth
voice movement and resolution of tensions.
If you look at the open string voicings for the guitar, they're basically
of same form: 1,5,1,3 but starting on different strings. Start with the E
chord with this fingering:
0-2-2-1-0-0 = E-B-E-G#-B-E == E Major
If you keep your fingers on the same frets but move them up one string, you
effectively have transposed the chord up a fourth (because the strings are
tuned in fourths).
The problem is that the 5th string (B) is tuned to a third, so you've got
to compensate by shifting the finger on the 5th string up a fret:
0-0-2-2-*2*-0 = E-A-E-A-C#-E == A Major
Perform the same transformation (move fingers up one string and shift one
fret up on the fifth string) and you get the D chord. You've also got to
wrap the note on the high E string down to the low E string:
2-0-0-2-3-2 = F#-A-D-A-D-F# == D Major
Continue and you'll get the remaining chords G, C, and finally F, which is
effectively a barred E form. If it wasn't for that darned B string, it
would be a lot easier to see the pattern (but it would be a lot harder to
finger the chords).
It's not that the chords generated by your system wouldn't sound good -
it's just that there's a bias toward particular voicings that may not be
immediately apparent. Plus, it's probably as simple to write something that
smoothly connects chord tones.
-- David
On Tue, Mar 15, 2016 at 12:01 PM, Marc Sabatella <m...@outsideshore.com>
wrote:
> Those are indeed good tips. Other things to consider include the fact
> that we can't assume the left hand is playing the root - what we generate
> should probably include the root in the bass. Perhaps in a separate voice
> to make it easy to remove. Also, we generally don't want to get into a
> situation where we have an extension rather than a chord tone as the
> next-lowest note after the root.
>
> I actually think we could likely get good results with a relatively
> simplist algorithm based on treating the piano kind of like a guitar, but
> one tuned to something like say C-G-C-E-A-D, always putting the root on the
> bottom, a chord tone next, and striving to keep low "fret" numbers for the
> remaining notes.
>
> Marc
>
> On Tue, Mar 15, 2016 at 12:54 PM David Cuny <davidfc...@gmail.com> wrote:
>
>> > 3. Where possible, resolve the remaining notes using stepwise motion
>> (up or down).
>>
>> I forgot one other really obvious bit: *not* moving a voice is preferred
>> to moving it. So:
>>
>> 3a. Keep notes common between chords.
>> 3b. Where possible, resolve the remaining notes by step.
>>
>> Because of the rule to resolve things in a downward direction, you'll
>> find that chords over time tend to creep downward. The solution is to apply
>> the "keep notes in the middle register" rule to correct this.
>>
>> In any event, piano chord voicing really is a different thing than SATB
>> voicing.
>>
>> -- David
>>
>> On Tue, Mar 15, 2016 at 11:37 AM, David Cuny <davidfc...@gmail.com>
>> wrote:
>>
>>> >> There are a number of algorithms that could be used to generate the
>>> >> voicings.
>>>
>>> > Would please you have some pointers in this regard?
>>> > More than the algorithmic stage I am not sure how the solution itself
>>> > would be characterized, though (ie: what does it actually do,
>>> > harmony-wise?).
>>>
>>> Non-developer jumping in again. ;-)
>>>
>>> Rules for chord voicings are different than SATB rules, since they have
>>> different goals:
>>>
>>> * Notes should not be too low, or the intervals will be muddy/indistinct.
>>> * Notes should not be too high, or they will collide with the melody.
>>> * Notes should move as little as possible, so they don't distract from
>>> the melody. Stepwise motion is preferred.
>>> * Active tensions (7ths and suspensions) should generally be resolve via
>>> downward step.
>>> * Four is a good maximum for a right-hand voicing. For chords with more
>>> notes, you can drop less essential notes:
>>> 9th: drop the root, because the left hand is playing it anyway.
>>> Maj11th: drop the root (it's in the left hand) and the 3rd (it's a
>>> dissonance against the 11th). You can generally treat a G11 as Dm7/G.
>>> Min11th: treat as min7 or min9
>>> 13th: These are more complex:
>>> * Always include 3rd and 7th
>>> * Never include the 11th (unless it’s the #11)
>>> * Include 9th and 13th whenever possible
>>> * Avoid a minor second at the top of the chord, since it's a strong
>>> dissonance.
>>>
>>> These rules ignore what's in the melody - things get more complex if you
>>> start taking that into account.
>>>
>>> You can implement the above rules with the following algorithm:
>>>
>>> 1. Choose the notes of the chord, having no more than 4 notes (lookup
>>> tables are good, especially since you can also flag tension notes).
>>> 2. Where possible, resolve tensions (7ths or suspensions) of the prior
>>> chord using downward, stepwise motion.
>>> 3. Where possible, resolve the remaining notes using stepwise motion (up
>>> or down).
>>> 4. Keep the remaining notes in the middle register - roughly E3 to G4.
>>> 5. If there's a half-step between the top two notes of the chord, drop
>>> the one not resolving a tension down an octave.
>>>
>>> -- David
>>>
>>>
>>>
>>> On Tue, Mar 15, 2016 at 1:02 AM, Tobia Tesan <tobia.te...@gmail.com>
>>> wrote:
>>>
>>>> On 15/03/2016 04:18, Marc Sabatella wrote:
>>>>
>>>> Thanks for you reply, Marc.
>>>> > I think from previous discussions there seems to be general agreement
>>>> > that the way forward is for any chord playback syste, to simply
>>>> > generate actual notes on an actual staff, the user could then edit or
>>>> > make that staff invisible etc.
>>>>
>>>> Ah, is it so?
>>>> I think I have completely misunderstood you, then; sorry about that.
>>>> In practice, this doesn't change a whole lot, though, I guess that
>>>> instead of a "render to midi" pipeline stage you would get a "render to
>>>> staff" stage.
>>>>
>>>> > There are a number of algorithms that could be used to generate the
>>>> > voicings.
>>>>
>>>> Would please you have some pointers in this regard?
>>>> More than the algorithmic stage I am not sure how the solution itself
>>>> would be characterized, though (ie: what does it actually do,
>>>> harmony-wise?).
>>>>
>>>> > It has also been suggested we *integrate* with Impro-visor for more
>>>> > sophisticated playback, and I'm open to that as well.
>>>>
>>>> Could you elaborate a bit on that?
>>>> What sort of "integration", exactly?
>>>>
>>>> Thank you very much.
>>>>
>>>> --
>>>> Tobia Tesan
>>>> <tobia.te...@gmail.com>
>>>> <sip:tobia.te...@ekiga.net>
>>>> +39 393 4427709
>>>> "I have not failed.
>>>> I've just found 10000 ways that won't work."
>>>> -- Thomas Edison
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Transform Data into Opportunity.
>>>> Accelerate data analysis in your applications with
>>>> Intel Data Analytics Acceleration Library.
>>>> Click to learn more.
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>>>> _______________________________________________
>>>> Mscore-developer mailing list
>>>> Mscore-developer@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>>>
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> Transform Data into Opportunity.
>> Accelerate data analysis in your applications with
>> Intel Data Analytics Acceleration Library.
>> Click to learn more.
>> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
>> _______________________________________________
>> Mscore-developer mailing list
>> Mscore-developer@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>>
>
>
> ------------------------------------------------------------------------------
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
> _______________________________________________
> Mscore-developer mailing list
> Mscore-developer@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mscore-developer
>
>
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer