Example #1
0
 def setUp(self):
     self.majorscale = MajorScale
     self.melminscale = MelMinorScale
     self.harmminscale = HarmMinorScale
     self.harmmajscale = HarmMajorScale
     self.dorianscale = WestTemp.get_nseqby_seqpos(
         [0, 2, 3, 5, 7, 9, 10], NSEQ_SCALE)
     self.locrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 5, 6, 8, 10], NSEQ_SCALE)
     self.superlocrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 4, 6, 8, 10], NSEQ_SCALE)
     self.ultralocrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 4, 6, 8, 9], NSEQ_SCALE)
     self.dubflat7locrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 5, 6, 8, 9], NSEQ_SCALE)
     self.majorchord = noteseq("TestMajor", NSEQ_SCALE, WestTemp,
                               [0, 4, 7], [0, 2, 4])
Example #2
0
 def setUp(self):
     self.majorscale = MajorScale;
     self.melminscale = MelMinorScale;
     self.harmminscale = HarmMinorScale;
     self.harmmajscale = HarmMajorScale;
     self.dorianscale = WestTemp.get_nseqby_seqpos(
         [0, 2, 3, 5, 7, 9, 10], NSEQ_SCALE);
     self.locrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 5, 6, 8, 10], NSEQ_SCALE);
     self.superlocrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 4, 6, 8, 10], NSEQ_SCALE);
     self.ultralocrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 4, 6, 8, 9], NSEQ_SCALE);
     self.dubflat7locrianscale = WestTemp.get_nseqby_seqpos(
         [0, 1, 3, 5, 6, 8, 9], NSEQ_SCALE);
     self.majorchord = noteseq("TestMajor", NSEQ_SCALE, WestTemp, 
         [0, 4, 7], [0, 2, 4]);
Example #3
0
def makebaserep(notex, base = 0):
    """ Used for converting "C" -> 1, "Db"-> 2b, etc. """
    notexparsed = WestTemp.note_parse(notex);
    pos_rep = unicode(WestTemp.nat_key_lookup_order[notexparsed[0]] + base);
    if notexparsed[1] > 0:
        return pos_rep + (M_SHARP * notexparsed[1]);
    elif notexparsed[1] < 0:
        return pos_rep + (M_FLAT * (-1 * notexparsed[1]));
    else:
        return pos_rep;
Example #4
0
 def test_temperament_dict(self):
     """ Like test_seq_dict, but checks dictionary in WestTemp. """
     self.assertTrue(WestTemp.check_nseqby_subdict(NSEQ_CHORD));
     self.assertTrue(WestTemp.check_nseqby_name(NSEQ_CHORD, "Major"));
     self.assertTrue(WestTemp.check_nseqby_name(NSEQ_CHORD, "Minor"));
     self.assertFalse(WestTemp.check_nseqby_name(NSEQ_CHORD, "Chord"));
     self.assertTrue(WestTemp.check_nseqby_abbrv(NSEQ_CHORD, 
         "maj"));
     self.assertTrue(WestTemp.check_nseqby_abbrv(NSEQ_CHORD, 
         "min"));
     self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_SCALE, 
         "chd"));
     self.assertTrue(WestTemp.check_nseqby_seqpos(NSEQ_CHORD, 
         [0, 4, 7]));
     self.assertEqual(WestTemp.get_nseqby_name("Major", NSEQ_CHORD), 
         self.majorchord);
Example #5
0
def populate_scale_chords(scale_name, key, possiblechords):
    """ Returns an instance of scale_chords using the following inputs:

        scale_name: a name of a scale like "Dorian".
        key: generally a standard music key like "C".
        possiblechords: a sequence of chord types like "Seventh" and "Ninth".
    """
    our_scale = WestTemp.get_nseqby_name(scale_name, NSEQ_SCALE);
    num_elem = len(our_scale.nseq_posn);
    try: 
        int_of_key = int(key)
        is_key_an_int = True;
    except ValueError:
        is_key_an_int = False;
        int_of_key = None;
    if is_key_an_int:
        our_scale_notes = [makebaserep(x, int_of_key) for x in 
            our_scale.get_notes_for_key("C")];
    else:
        our_scale_notes = our_scale.get_notes_for_key(key); 
    our_chord_data = scale_chords(scale_name, key, our_scale_notes,
        make_roman_numeral_list(num_elem));
    for i in possiblechords:
        ourchordrow = scale_chordrow(i);
        our_chord_data.rows.append(ourchordrow);
        for j in range(num_elem):
            our_slice = CHORDTYPE_DICT[i];
            if is_key_an_int:
                our_chord_notes = [makebaserep(x, int_of_key) for x in
                    our_scale.get_notes_for_key("C", j, our_slice)];
            else:
                our_chord_notes = our_scale.get_notes_for_key(key, j, 
                    our_slice); 
            our_posn = our_scale.get_posn_for_offset(j, our_slice, True);
            our_chord = WestTemp.get_nseqby_seqpos(our_posn, NSEQ_CHORD);
            if our_chord:
                ourchordrow.notes.append(scale_chordcell(our_chord.nseq_name,
                    our_chord.nseq_abbrev, our_chord_notes));
            else:
                ourchordrow.notes.append(scale_chordcell("", "", 
                    our_chord_notes));
    return our_chord_data;    
Example #6
0
 def setUp(self):
     self.majorchord = WestTemp.get_nseqby_name("Major", NSEQ_CHORD);
Example #7
0
        def test_temperament_dict(self):
            """ Like test_seq_dict, but checks dictionary in WestTemp. """
            self.assertTrue(WestTemp.check_nseqby_subdict(NSEQ_CHORD))
            self.assertTrue(WestTemp.check_nseqby_subdict(NSEQ_SCALE))
            self.assertFalse(WestTemp.check_nseqby_subdict(666))
            self.assertTrue(WestTemp.check_nseqby_name(NSEQ_SCALE, "Major"))
            self.assertFalse(WestTemp.check_nseqby_name(NSEQ_CHORD, "Minor"))
            self.assertFalse(WestTemp.check_nseqby_name(NSEQ_SCALE, "Minor"))
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_SCALE, "maj"))
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_CHORD, "min"))
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_SCALE, "min"))
            self.assertFalse(
                WestTemp.check_nseqby_seqpos(NSEQ_CHORD, CHROM_NAT_NOTE_POS))
            self.assertTrue(
                WestTemp.check_nseqby_seqpos(NSEQ_SCALE, CHROM_NAT_NOTE_POS))
            self.assertEqual(WestTemp.get_nseqby_name("Major", NSEQ_SCALE),
                             self.majorscale)
            self.assertEqual(WestTemp.get_nseqby_name("Ionian", NSEQ_SCALE),
                             self.majorscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Melodic Minor", NSEQ_SCALE),
                self.melminscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Jazz Minor", NSEQ_SCALE),
                self.melminscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Harmonic Minor", NSEQ_SCALE),
                self.harmminscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Harmonic Major", NSEQ_SCALE),
                self.harmmajscale)
            self.assertEqual(WestTemp.get_nseqby_name("Dorian", NSEQ_SCALE),
                             self.dorianscale)
            self.assertEqual(WestTemp.get_nseqby_name("Locrian", NSEQ_SCALE),
                             self.locrianscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Superlocrian", NSEQ_SCALE),
                self.superlocrianscale)
            self.assertEqual(
                WestTemp.get_nseqby_name("Ultralocrian", NSEQ_SCALE),
                self.ultralocrianscale)
            self.assertEqual(WestTemp.get_nseqby_name("Locrian " + M_FLAT \
                + M_FLAT + "7", NSEQ_SCALE), self.dubflat7locrianscale)

            self.assertEqual(
                WestTemp.get_nseqby_seqpos(CHROM_NAT_NOTE_POS, NSEQ_SCALE),
                self.majorscale)

            self.assertEqual(
                WestTemp.get_nseqby_seqpos(MEL_MIN_NOTE_POS, NSEQ_SCALE),
                self.melminscale)
            self.assertEqual(
                WestTemp.get_nseqby_seqpos(HARM_MIN_NOTE_POS, NSEQ_SCALE),
                self.harmminscale)
            self.assertEqual(
                WestTemp.get_nseqby_seqpos(HARM_MAJ_NOTE_POS, NSEQ_SCALE),
                self.harmmajscale)
Example #8
0
        def test_temperament_dict(self):
            """ Like test_seq_dict, but checks dictionary in WestTemp. """
            self.assertTrue(WestTemp.check_nseqby_subdict(NSEQ_CHORD));
            self.assertTrue(WestTemp.check_nseqby_subdict(NSEQ_SCALE));
            self.assertFalse(WestTemp.check_nseqby_subdict(666));
            self.assertTrue(WestTemp.check_nseqby_name(NSEQ_SCALE, "Major"));
            self.assertFalse(WestTemp.check_nseqby_name(NSEQ_CHORD, "Minor"));
            self.assertFalse(WestTemp.check_nseqby_name(NSEQ_SCALE, "Minor"));
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_SCALE, 
                "maj"));
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_CHORD, 
                "min"));
            self.assertFalse(WestTemp.check_nseqby_abbrv(NSEQ_SCALE, 
                "min"));
            self.assertFalse(WestTemp.check_nseqby_seqpos(NSEQ_CHORD, 
                CHROM_NAT_NOTE_POS));
            self.assertTrue(WestTemp.check_nseqby_seqpos(NSEQ_SCALE, 
                CHROM_NAT_NOTE_POS));
            self.assertEqual(WestTemp.get_nseqby_name("Major", NSEQ_SCALE), 
                self.majorscale);
            self.assertEqual(WestTemp.get_nseqby_name("Ionian", NSEQ_SCALE), 
                self.majorscale);
            self.assertEqual(WestTemp.get_nseqby_name("Melodic Minor", 
                NSEQ_SCALE), self.melminscale);
            self.assertEqual(WestTemp.get_nseqby_name("Jazz Minor", 
                NSEQ_SCALE), self.melminscale);
            self.assertEqual(WestTemp.get_nseqby_name("Harmonic Minor", 
                NSEQ_SCALE), self.harmminscale);
            self.assertEqual(WestTemp.get_nseqby_name("Harmonic Major", 
                NSEQ_SCALE), self.harmmajscale); 
            self.assertEqual(WestTemp.get_nseqby_name("Dorian", 
                NSEQ_SCALE), self.dorianscale);
            self.assertEqual(WestTemp.get_nseqby_name("Locrian", 
                NSEQ_SCALE), self.locrianscale);  
            self.assertEqual(WestTemp.get_nseqby_name("Superlocrian", 
                NSEQ_SCALE), self.superlocrianscale);  
            self.assertEqual(WestTemp.get_nseqby_name("Ultralocrian", 
                NSEQ_SCALE), self.ultralocrianscale);                  
            self.assertEqual(WestTemp.get_nseqby_name("Locrian " + M_FLAT \
                + M_FLAT + "7", NSEQ_SCALE), self.dubflat7locrianscale);

            self.assertEqual(WestTemp.get_nseqby_seqpos(
                CHROM_NAT_NOTE_POS, NSEQ_SCALE), self.majorscale);

            self.assertEqual(WestTemp.get_nseqby_seqpos(
                MEL_MIN_NOTE_POS, NSEQ_SCALE), self.melminscale);
            self.assertEqual(WestTemp.get_nseqby_seqpos(
                HARM_MIN_NOTE_POS, NSEQ_SCALE), self.harmminscale);
            self.assertEqual(WestTemp.get_nseqby_seqpos(
                HARM_MAJ_NOTE_POS, NSEQ_SCALE), self.harmmajscale);