congratulations, and ideas for algorythm improvement

A place for enthusiastic programmers who want to extend the software by their own code, translations etc.

congratulations, and ideas for algorythm improvement

Postby rijukan » Sun Mar 06, 2016 10:01 am

Great approach and program!

I would like to chip in some ideas concerning tuning algorythm. Cannot implement them myself, at least not in the foreseeable future, as my coding time was more than 15 years ago – an I never programmed C++ or C (only Java). But at least I can estimate the effort my ideas will make. And, at the moment my „hobby“ is tuning (and repairing) my old grand piano. Searching for a program which will allow to store and restore an existing tuning, I found your project.

First idea: It would be very interesting to combine the entropy approach with other ones. It is propable that tunings made with other methods (by ear, for example, by other prorams or future algorythms) will have a „low“ entropy already. So, choosing them as the starting point for the local minimum search could give good chance to approach the „absolute“ minimum.
This would be easy to implement! Just give the user a possibility to „skip“ the second step of your algorythm (the creation of a „initial“ tuning curve). Instead, users can choose existing values (as recorded/stored) or the already calculated values (by another algorythm) as „initial“. In addition, as other users already wrote, it would be good to show and store the „result“ of tuning (entropy degree) as well as the „initial“ value.
Best would be to extend the whole „algorythm“ class so that it has a standard method for using those existing tunings.

Second idea: today your Entrop algorythm calculates a sum over all 88 strings. A human tuner would not do this! Tuning always means compromising, and a human will (in practise) prefer „important“ relations. Which means: special chords in „important“ tonalities. Now imagine an XML file containing a hierachical „tree“, with categories, sub-categories, sub-sub-categories maybe. The „leafs“ oft he tree would be groups of strings the unser can define. For example, one category could be „A minor“, and ist subcategories could be Tonic, Dominant-Sept, subdominant, other. The user would give those four a relative weight within the superordinated category. Now, the algorythm would calculate the leafs first, an then the tree „bottom up“.
The result would be some kind of „temperation“. Maybe a classic pianist would prefer other relations and tonalities then, let’s say, a jazz pianist!

Thanks for your interest!
Posts: 3
Joined: Sat Mar 05, 2016 11:33 pm

Re: congratulations, and ideas for algorythm improvement

Postby Christoph » Wed Jun 08, 2016 8:03 am

Thanks for your suggestions!

First idea: Using the existing tuning instead of a precalculated as initial tuning curve is a good idea that should be implemented easily. The value of the current entropy is currently shown in the info box of the algorithm. We don't thing that it is meaningful to store the entropy values because they are not very meaningful.

Scond idea: In the original publication Haye Hinrichsen already tested this for some specific settings but the results were not very convincing. Using all 88 strings always yielded the best results. One ongoing research is still to check if entropy can tune the pure tunings, e.g. A minor/C major when neglecting all the 'black' keys. Maybe it is possible to implement you idea if user chosen chords to use for tuning, but this would require a lot of work, so this is rather unlikely that we can do this.

Implementing new algorithms is 'rather' simple. Just copy the example algorithms (or any other algorithm) and make your changes (don't forget to chose a new name). The software will automatically include the new algorithm.
Posts: 54
Joined: Thu Nov 12, 2015 11:54 am

Return to Contribute

Who is online

Users browsing this forum: No registered users and 1 guest