Magnitude Estimation in Pitch Notes

From KubovyLab

Jump to: navigation, search

Contents

Tone Specification

We should use only the ascending **pitch notation (i.e., only #, no b).

We take A4 = 440 Hz and a semitone step up as A#4 = 440 * 2^(1/12). A semitone down would be G#4 = 440 / 2^(1/12) .

If we wanted quarter tones we would use A4+50 or A4-50 as Huron's notation suggests.

Humdrum notation toolkit
http://dactyl.som.ohio-state.edu/Humdrum/
The pitch translations
http://dactyl.som.ohio-state.edu/Humdrum/guide04.html
Cents to frequency
http://www.sengpielaudio.com/calculator-centsratio.htm

Range Definitions

Middle C is C4.

  1. For flexibility, I suggest two lower pitches and two upper ones:
    • LT=lowest test pitch
    • LV=lowest voice pitch
    • likewise for upper (UT, UV).
    The lowest and highest test should be filled automatically to LT = LV - (UV - LV) and UT = UV + (UV - LV), but modifiable.
  2. Percentage of deviation from chromatic (i.e., a number 0 ≤ d ≤ 50, where 100 = 1 semitone):
    A4+k*d = 440 * 2^(d/(12*100)) where k = {-1,1} with prob = .5 . Default d = 50.

Note names, MIDI numbers, and frequencies

Typical Ranges

(From http://www.vocalist.org.uk/vocal_range_key.html)

  • Soprano - High female voice, G3 (below middle C4) to F6 above high C6 although anywhere above high C can be included.
  • Coloratura - A singer, usually soprano, who sings ornamental passages in music - C4 to F6 or G6 above high C6
  • Lyric Soprano - Warmer middle sound - Bb3 below middle C4 to high C6 or D6
  • Dramatic Soprano - The loudest and lowest with cutting power - low Bb3 or A3, to a pushed high C6
  • Mezzo-Soprano - Middle female voice with dark quality, Low A3 or G3 (below middle C4) to at least high C although it is not uncommon for high A6 or Bb6 to Eb6 above high C6.
  • Alto or Contralto - Low Female Voice, low C3 (below middle C4) to high C6 or up to high A6.
  • Tenor - High Male Voice, C (an octave below middle C) up to high C or D (or above).
  • Baritone - Middle Male Voice, low G/F an octave below middle C to B, F or G above middle C (just below the Tenor high C).
  • Bass - Low Male Voice, low E (or lower) an octave below middle C to E, F G above middle C.
  • Basso Profundo - Deep bass voice encompassing about two octaves above C below the bass staff

Untrained singers will have a much more restricted range, but we should count for a singing range of up to 2.5 octaves or so.

Vocal Range Chart
http://www.jazzwise.com/catalog/media/vocalchart.pdf
Vocal Ranges
http://www.library.yale.edu/cataloging/music/vocalrg.htm

Experiment Design

Code for generating the trials for each block

        for (Float width : _modulusWidths) {
            for(boolean inout : new boolean[] {true, false}) {
                for(boolean updown : new boolean[] {true, false}) {
                    _trials.add(Trial.generateRandomTrial(
                        _session, width, inout, updown));
                }
            }
        }



Code responsible for generating trials based on selected modulus width, sample region, and sample direction.

    /**
     * Generate a random trial based on the provided constraints.
     
     
     @param session Current session.
     @param modWidthSemi modulus width to use
     @param sampleInside true if stimulus should fall inside test pitch range, 
     * false to fall outside test range.
     @param sampleUpward true if stimulus range should fall above center, 
     * false if below.
     @return Random trial meeting given conditions.
     */
    public static Trial generateRandomTrial(
        Session session, float modWidthSemi, boolean sampleInside, boolean sampleUpward) {
        
        PitchRange vocalPitchRange = session.getVocalPitchRange();

        Pitch center = vocalPitchRange.center();
        
        PitchRange modulus = new PitchRange(center, modWidthSemi);

        PitchRange stimulus;
        
        /* This diagram help illustrate the sampling regions selected
         * by the code below:
         
         * |TL       |VL     |ML   :   MU|     VU|       TU|
         * +---------+-------+-----c-----+-------+---------+
         * |    A    |   B   |  C  :  D  |   E   |    F    |
         
         *  TL: test lower                               TU: test upper
         *            VL: vocal lower          VU: vocal upper    
         *                         c: vocal center
         *                    ML: mod. MU: modulus upper
         *                        lower    
         
         * A->F: potential sampling regions
         */
        if(sampleUpward) {
            // Sample from region E or F
            PitchRange sampleRange;
            if(sampleInside) {
                // Region E
                sampleRange = new PitchRange(modulus.getUpper(), vocalPitchRange.getUpper());
            }
            else {
                // Region F
                sampleRange = new PitchRange(vocalPitchRange.getUpper(), session.getTestPitchRange().getUpper());
            }
            // Stimulus upper is sampled, stimulus lower is ML
            stimulus = new PitchRange(modulus.getLower(), sampleRange.randomInRange());
        }
        else {
            // Sample from region A or B
            PitchRange sampleRange;
            if(sampleInside) {
                // Region B
                sampleRange = new PitchRange(vocalPitchRange.getLower(), modulus.getLower());
            }
            else {
                // Region A
                sampleRange = new PitchRange(session.getTestPitchRange().getLower(), vocalPitchRange.getLower());
            }
            // Stimulus lower is sampled, stimulus upper is MU
            stimulus = new PitchRange(sampleRange.randomInRange(), modulus.getUpper());
        }
        
        return new Trial(modulus, stimulus);
    }    

Personal tools