benn

Thanks for your algorithm and the pointer to the original. Very interesting stuff. A couple of comments.

First, I think it was a poor choice to reorder your interval list from (0,0,5,0,8,5,10,0,2) to (0,0,0,2,5,5,8,10) (really the original interval list is (0,0,5,0,8,5,2,0,10)). Two reasons for this. The ordering of the harmonics useful information. It aids in understanding the problem. It might also be useful for processing. One way of improving the algorithm is to give more weight to the more important harmonics, those at the front of the list. When you reordered, you lost this. Also when you reordered, you dropped a '0', there are four '0's in the first eight harmonics, not three.

That's the little stuff. More importantly, I think you didn't implement a key aspect of the original algorithm. It is not simply a count of the most common note to occur in the table. It is important that the root note be found in each column of that table.

Regarding the example Tristan chord f b d# g#, Ernst's conclusion that the root is c# is based on c# occurring in each column, that is, f b d# and g# are all harmonics of c#.

When you just count notes in the table, you came to an erroneous conclusion that g# is an alternative root, at least with respect to the original algorithm. f and b do not occur as harmonics of g#, at least not in the harmonics you are considering.

You found that the algorithm has a problem with minor chords. Of course it does. The minor third interval that characterizes the chord does not occur in the root note's harmonic series, at least in the first 17 items!

To make the algorithm *seem* to work for minor chords, you added back the redundancy that Ernst removed, counting the '0' three times and the '5' two times. Really all this did was put more weight on the fifth, which might be justified, but is also led you to pick g# in the Tristan chord because it now is counted more.

By the way, I can not claim to do any better with this harmonic series approach. I tried many variations without much improvement. So that makes this just some ramblings of a critic. Again, I enjoyed the effort!

YuckRoot


In reply to Re: Chord root by YuckFoo
in thread Chord root by benn

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.