Indeed, voice leading is good to optimize, but we also need good voicings
for the initial chord of a section, where there is no previoia chord to
base on. Also, except for jazz, I think most people would probably expect
the same chord symbol to always produce the same voicing, which is
something else to consider.
On Tue, Mar 15, 2016 at 3:50 PM David Cuny <davidfc...@gmail.com> wrote:
> > 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
>
------------------------------------------------------------------------------
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