pganssle / cim

Chord Identification Method Trainer
https://pganssle.github.io/cim/
Apache License 2.0
10 stars 6 forks source link

Add "black chords" #8

Closed pganssle closed 7 months ago

pganssle commented 1 year ago

Right now this only covers the "white" chords. The child is supposed to master the 9 white chords, and when you are at 100% accuracy for the 9 white chords, you add 5 more black chords. Excerpt from the paper:

Training should begin with chords for black-key notes only after a child identifies the nine white chords with 100% accuracy. Chords for black-key notes comprise, at a minimum, five kinds of chords. Occasionally the first and second inversions of these chords are added, thus the period can involve up to 15 kinds of chords. Figures 3 and 4 show the minimum (five) and the maximum (15) chords, respectively.

The minimum 5 and maximum 15 black chords

The 5 chords are (if I am reading this right):

These sets are referred to as ‘five black chords’ and ‘15 black chords.’ The naming system for these chords changes from color names to tone names when a child can identify the nine white chords correctly. During the period for black-key notes, children have to call all chords, including both black and nine white chords, by tone names, in response to trainers’ instructions regarding names of tones that comprise the chords.

This raises a problem, beause the paper does not explain what the tone names are, and I am not confident that I understand music theory enough to say what they should be. If anyone out there know what the names for these 14 chords (and the 10 additional inversions of the black chords), please let me know.

Trainers should add black-key chords to the previously learned nine white chords one at a time, with the method being identical to that employed during the period in which the nine white chords are learned. Therefore, first, trainers add five black chords in without any inversions. When the children can identify 14 chords (i.e., nine white chords plus five black chords) accurately, trainers do not need to add additional chords. Only when a child cannot achieve identification of these 14 chords does a trainer need to add inversions of a chord that a child has trouble identifying. The 15 black chords are the sum of the five black chords and their inversions. For example, if a child cannot identify ‘AC#E,’ the trainer would add ‘C#EA’ and ‘EAC#.’ In this way, the number of chords, or the order of presentation of these 15 black chords, varies with each individual, and trainers must present all the chords appropriate to the needs of a particular child. Perfect identification in the period for black- key notes, defined by 100% accuracy across all essential chords, ensures acquisition of AP for black-key notes.

I am not sure the best way to approach the UI for this. I don't think I want the children to need to read AC#E or whatever, but the "black chord" period is designed to sensitize the children to the single tones that make up the chords, as mentioned later in the paper:

Because the naming system changes from color to tone at the onset of the learning period for black-key notes, the purpose of training also changes from whole chord memorization to a procedure designed to prompt children to selectively attend to a single tone within a chord. According to Eguchi, some children developed the ability to identify a single tone, in part by learning only 14 chords (nine white chords and five black chords). However, their pitch identification was insufficient at this point in the overall training program. That is, they were only able to identify some single tones within a limited middle register. Thus additional practice was required before such children could decompose a whole chord to identify the individual component tones. Accuracies of identifying single tones gradually improved during the maintenance practice period.

I'm thinking that the "black chords" version of this needs to be a separate app, not just adding more chords to the existing UI. Instead of a "level" drop-down, we'd have a 2D-drop down with check boxes for which inversions to include, so it would be like:

Or something of that nature.

I also am not sure how to do the selection part. Potentially the kid could be looking at up to 24 different chord options. I'm thinking we might assign colors or patterns to each note, and then have a compound symbol for each button, but do we want something like a 4 × 6 grid? Particularly if people want to use this on their phones? Another option might be that in "black chord" mode, with each new chord we choose a random subset of the full grid (maybe 6-9 options?) that we know includes the correct option and a few options that are most likely to cause confusion.

This is a kind of long post, so to summarize, here are the major action items that need resolution before we can start:

  1. [x] What are the tone names that the children are supposed to be using? Is it something like "C major, 1st inversion?" or is it something more like "CEG"?
  2. [x] How do we display the chords in "black key" mode in a way that emphasizes the individual components?
  3. [x] How do we get input from the child so that the grading can happen automatically? Do we want them to pick from all the possible options, or is "multiple choice" with a smaller subset good enough?
pganssle commented 11 months ago

Quick status update:

Currently I'm thinking we'll at least start by expanding out to the 14 "main sequence" chords. We will call the chord names by their letters, which will be superposed on the flags when I get around to it. The 10 additional inversions will have to be added later, and maybe in a separate mode.

We managed to get a copy of the Eguchi method book and have had parts of it translated from Japanese. The colors they use are:

黄緑 - AC♯E - Chartruse 肌色 - DF♯A - "Skin color" 藤色 - EG♯B - Grey-blue 灰色 - B♭DF - Light grey 水色 - E♭GB♭ - Light blue

Some of these are not familiar to English-speaking audiences, and definitely not to children. Since the book makes it clear that these color choices are arbitrary, I ended up changing them up a bit:

黄緑 - AC♯E - Gray ("GrAy major") 肌色 - DF♯A - Tan 藤色 - EG♯B - Light green ("GrEen major") 灰色 - B♭DF - Light purple / lilac 水色 - E♭GB♭ - Sky Blue

I'm also switching the chord generation from manually recorded chords to Tone.js, which will allow us to easily expand chords, durations, and instruments. This will slightly change the sound of the existing chords, so I've added an instrument selector pulldown that allows you to pick the old piano. When I get more time I might add additional instruments in case it's fun for the kids to try it out on different instruments.

If anyone wants to try it out and provide initial feedback, I've deployed a working beta here: https://pganssle-bug-mwes.github.io/cim-beta

Note: I changed what color "Pink" represents because I felt that pink, purple and lilac all looked to similar in the old UI. Open to suggestions about that.

pganssle commented 11 months ago

This is mostly implemented, closing it in favor of #23.