- Palmer Altenmuller
- Palmer Altenmueller.jpg (169.26 KiB) Viewed 30886 times

I got it from the pdf document with the title: "Nature of memory for music performance skills" by Caroline Palmer, McGill University, Dept of Psychology, here.Nicholas wrote:Where did you get that?!
I wanted to add it here mainly as a mind opening/refreshing input to consider more detailed distance measures for the fingering difficulty calculations, at least in future, e.g. using mm, instead of half-tones, additionally considering the height difference between white and black keys, considering the depth difference between white and black keys, also that fingers move into the keyboard sometimes for certain finger positioning, which we could define as the z-axis, if pitch/key is x-axis, height is y-axis (representing finally velocity, not pressing the key equals to velocity=0, no sound output, pressing the key with some velocity results in sound output with its loudness usually proportional to its velocity).Palmer and Dalla Bella (2004) measured anticipatory movements in piano performance of simple melodies performed at a range of specified tempi. Pianists’ finger motions were recorded with a Vicon-8 system with passive 3mm markers placed on a pianist’s right hand, as shown in Figure 1, and 14 cameras placed around the pianist recorded light reflected from the markers.
8. An octave on a modern keyboard spans about 165 mm, so the average size of chromatic
intervals may be calculated on the basis of about 13.7 mm per semitone. A future
version of the model might benefit by representing distances between fingers in millimeters
instead of semitones and comparing them with distances on the keyboard between specific
keys, also expressed in millimeters.
yes, I was going to collect all possible hanon/czerny AND also quite a lot of actual piano repertuare with "correct" fingering to test data in batch. Few specific cases should be tested with the eye (I mean, "are scales played as 1-2-3-1-2-3-4-5" etc? advanced players/teachers can help in this manner, the *must*/*shall* cases), but other than that, seeing how much of the test data it captures accurately would be better than on-case basis; improving for one situation may worsen other situations, we won't see it otherwise.1. A growing set of reference .mid files with "perfect" or official fingering for each note in that piece from various sources, e.g. Czerny, Hanon and more. The fingering information should be written into a separate .txt file, writing one finger number per line or continuous writing with spaces in between as it is the case in your AFP. This "testing set of phrases/midi files" is important to evaluate the current algorithms performance based on input parameter changes into the algorithm/system.
yes, that was what I was thinking of. crossover func. would be trivial for parameter optimization, but there are few problems, such as finding the similarity of two fingerings.Regarding finding the right values for the (hundreds of) parameters: isn't that what genetic algorithms are really good at doing?
If we had some larger body of samples with known fingerings, (I wonder if the Hanon set is a diverse enough training set just by itself), you could start doing the generational approach with parameter searching.
AFP uses *all* of them, and then some more. Parncutt and Jacobs are on the same monophonic model, which is the basis of the algorithm. Kasimi is used only to extend Parncutt into polyphony; the vertical cost part is used, and the logic of horizontal cost is applied to Parncutt.For example so far I do not know yet what exactly you are using from the mentioned papers, where and how, to what degree, and always explaining why we have to use it? Maybe we can just ignore it, or maybe we have to detail it much more which was not done in the paper because of any reasons at that time like lack of time, lack of interest, lack of craziness, lack of original external idea inputs...
Finger pair stretches are used in the algorithm, but since there are no "stretches" right now (we assume hand would stretch only if multiple keys are pressed at once, as in chords. finger-to-finger transition scores are different.), they are merely ignored.Or giving another example, until reading your question I did not know yet that no such information is used anywhere in the algorithm already or those papers did not answer this question yet in a sufficient way. The goal of this mentioned list in this point 2. would be exactly to prevent such situations.
assumptions and limitations are in the first few posts. but you are right about the pseudocode, I'll write a guide about the method so other people can suggest ideas.2. A list of made assumptions and requirements for anything we use in the algorithm. Best would be having some sort of pseudo-code descriptions using natural language, and adding comments to that pseudo-code. Then any follower could see its use/location in the algorithm and why it is there, along with any requirements and limitations for that part only.
We *do* use physical distance. Parncutt used semitones, Jacobs says that's naive, use physical distances (distance between C and C#, a semitone is not equal to E and F, also a semitone). I don't know why they did as they did, considering it's a very minor change. Well, we don't use the actual finger trajectory, just the horizontal line from key to key AND the vertical distance to black keys (for short fingers only right now), so no need to use milimeters. Our 1 unit distance is equal to 13.7mm, thus two consecutive white keys are 1 unit away, whereas consecutive white-black keys are 0.5 unit=6.85mm from each other. Of course we assume we hit the center of the key horizontally, which is mostly correct. However the vertical (not vertical, depth in actual sense, but depth makes more sense in pressing the key) distance may vary quite a lot.at least in future, e.g. using mm,
..
The paper "An Ergonomic Model of Keyboard Fingering for Melodic Fragments" of Parncutt writes already on page 6 in the footnotes:
An octave on a modern keyboard spans about 165 mm, so the average size of chromatic intervals may be calculated on the basis of about 13.7 mm per semitone.
normally, in a curated piece the repeated measures would start and end with rests; if rests are placed then the fingering would be the same. However, that case may not hold for automatic midi parsing. Besides, the same melody may be played but slightly shifted/from a different key, they would also mostly need the same fingering. Normally, a motif extraction method should be employed to find same/similar repeating blocks of the piece, which would mean more work. Currently, I'm in favor of letting the algorithm decide separately; if the melody is long enough it will find the same fingering for all of the copies in majority of the cases. If not, that's where human interaction would be useful; you just need to limit the first few notes, the others will be found if the starting notes are the same.A comment: When you play a song, very often some mesuares are played several times in differents place of the song, so this measures should be played with the same fingerings. How is going to do that this software?
Imagine following example, take a 1bar melody in 4/4 with 8 * 1/8th notes in it, and repeat this one bar, let us say 10 times. I would assume in the middle sections/repetitions the algorithm should choose anyway the same fingerings. The only question would be what the algorithm will do in the beginning/first bar and the end/10th bar. Meaning as long as the preceding and following bars or patterns are the same the algorithm should also do the same. (I do not know what a professional pianist would say here?)A comment: When you play a song, very often some mesuares are played several times in differents place of the song, so this measures should be played with the same fingerings. How is going to do that this software?
I just recently heard about the great Implication-Realization model of Narmour who wrote two detailed books about his "theory of melody". The first one is this, The Analysis and Cognition of Basic Melodic Structures: The Implication-Realization Model. By Eugene Narmour. Chicago: University of Chicago Press, 1990. The second book is, Narmour, E. (1992) The Analysis and Cognition of Melodic Complexity: The Implication-Realization Model. Chicago: University of Chicago Press.Frost wrote:Besides, the same melody may be played but slightly shifted/from a different key, they would also mostly need the same fingering. Normally, a motif extraction method should be employed to find same/similar repeating blocks of the piece, which would mean more work.
I want to clarify one more thing. Usually, c-d-e is not the same as f-g-a, why, after e there is no other black key, but after a there is one more black key. But if you would argue c-d-e-f is the same as g-a-b-c then I would agree, this is how octaves are usually split into two tetrachords.Frost wrote:it's unimportant. the notes are for just for finding the distances between the keys; notes do not matter at all. (c-d-e is the same as f-g-a due to the placement of black keys)What is C1 for a midi pitch number in the range of 0..127 or is this unimportant?
Code: Select all
C3 E3 F3 G3 A3 G3 F3 E3 D3 F3 G3 A3 B3 A3 G3 F3 E3 G3 A3 B3 C4 B3 A3 G3 F3 A3 B3 C4 D4 C4 B3 A3 G3 B3 C4 D4 E4 D4 C4 B3 A3 C4 D4 E4 F4 E4 D4 C4 B3 D4 E4 F4 G4 F4 E4 D4 C4 E4 F4 G4 A4 G4 F4 E4 D4 F4 G4 A4 B4 A4 G4 F4 E4 G4 A4 B4 C5 B4 A4 G4 F4 A4 B4 C5 D5 C5 B4 A4 G4 B4 C5 D5 E5 D5 C5 B4 A4 C5 D5 E5 F5 E5 D5 C5 B4 D5 E5 F5 G5 F5 E5 D5 G5 E5 D5 C5 B4 C5 D5 E5 F5 D5 C5 B4 A4 B4 C5 D5 E5 C5 B4 A4 G4 A4 B4 C5 D5 B4 A4 G4 F4 G4 A4 B4 C5 A4 G4 F4 E4 F4 G4 A4 B4 G4 F4 E4 D4 E4 F4 G4 A4 F4 E4 D4 C4 D4 E4 F4 G4 E4 D4 C4 B3 C4 D4 E4 F4 D4 C4 B3 A3 B3 C4 D4 E4 C4 B3 A3 G3 A3 B3 C4 D4 B3 A3 G3 F3 G3 A3 B3 C4 A3 G3 F3 E3 F3 G3 A3 B3 G3 F3 E3 D3 E3 F3 G3 A3 F3 E3 D3 C3 D3 E3 F3
Code: Select all
1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4
C3 E3 F3 G3 A3 G3 F3 E3 D3 F3 G3 A3 B3 A3 G3 ....TonE wrote:I used as notes input:Code: Select all
C3 E3 F3 G3 A3 G3 F3 E3 D3 F3 G3 A3 B3 A3 G3 F3 E3 G3 A3 B3 C4 B3 A3 G3 F3 A3 B3 C4 D4 C4 B3 A3 G3 B3 C4 D4 E4 D4 C4 B3 A3 C4 D4 E4 F4 E4 D4 C4 B3 D4 E4 F4 G4 F4 E4 D4 C4 E4 F4 G4 A4 G4 F4 E4 D4 F4 G4 A4 B4 A4 G4 F4 E4 G4 A4 B4 C5 B4 A4 G4 F4 A4 B4 C5 D5 C5 B4 A4 G4 B4 C5 D5 E5 D5 C5 B4 A4 C5 D5 E5 F5 E5 D5 C5 B4 D5 E5 F5 G5 F5 E5 D5 G5 E5 D5 C5 B4 C5 D5 E5 F5 D5 C5 B4 A4 B4 C5 D5 E5 C5 B4 A4 G4 A4 B4 C5 D5 B4 A4 G4 F4 G4 A4 B4 C5 A4 G4 F4 E4 F4 G4 A4 B4 G4 F4 E4 D4 E4 F4 G4 A4 F4 E4 D4 C4 D4 E4 F4 G4 E4 D4 C4 B3 C4 D4 E4 F4 D4 C4 B3 A3 B3 C4 D4 E4 C4 B3 A3 G3 A3 B3 C4 D4 B3 A3 G3 F3 G3 A3 B3 C4 A3 G3 F3 E3 F3 G3 A3 B3 G3 F3 E3 D3 E3 F3 G3 A3 F3 E3 D3 C3 D3 E3 F3
I'm thinking about that and have conflicting ideas.So, maybe this software should have at least two pass:
1:First pass: Find patterns (scales, chords, hanon)
2:Second pass: We have to use algorithms where we can't find patterns.