Beispiel #1
0
 def get_key_profiles():
     """
     Return dictionary of typical pitch class distribution for all keys
     """
     profiles = {}
     for tonic in pd.NOTES:
         for scale in pd.SCALES:
             key = pd.Key(tonic, scale)
             profiles[key] = key.get_key_profile()
     return profiles
Beispiel #2
0
 def test_audio_file_in_A_minor(self):
     dist = pd.PitchDistribution.from_file('tests/testaudio/Dragonfly.mp3')
     actual = self.krumhansl_schmuckler.get_key(dist)
     expected = pd.Key('A', 'minor')
     self.assertEqual(actual, expected)
Beispiel #3
0
 def test_audio_file_in_F(self):
     dist = pd.PitchDistribution.from_file('tests/testaudio/Morning_Mandolin.mp3')
     actual = self.krumhansl_schmuckler.get_key(dist)
     expected = pd.Key('F', 'major')
     self.assertEqual(actual, expected)
Beispiel #4
0
 def test_audio_file_in_G(self):
     dist = pd.PitchDistribution.from_file('tests/testaudio/Campfire_Song.mp3')
     actual = self.krumhansl_schmuckler.get_key(dist)
     expected = pd.Key('G', 'major')
     self.assertEqual(actual, expected)
Beispiel #5
0
 def test_leading_tone(self):
     values = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3]
     dist = pd.PitchDistribution(values)
     actual = self.krumhansl_schmuckler.get_key(dist)
     expected = pd.Key('G#', 'major')
     self.assertEqual(actual, expected)
Beispiel #6
0
 def test_add_4_triad(self):
     values = [2, 0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0]
     dist = pd.PitchDistribution(values)
     actual = self.krumhansl_schmuckler.get_key(dist)
     expected = pd.Key('A', 'major')
     self.assertEqual(actual, expected)
Beispiel #7
0
 def test_get_key_profile_with_loop(self):
     actual = pd.Key('F', 'major').get_key_profile().to_array()
     expected = [0.13, 0.10, 0.06, 0.14, 0.03, 0.11, 0.03, 0.09, 0.16, 0.03, 0.09, 0.03]
     self.assertEqual(actual, expected)
Beispiel #8
0
 def test_get_key_profile_sanity_check(self):
     actual = pd.Key('A', 'major').get_key_profile().to_array()
     expected = pd.MAJOR_SCALE_PROFILE
     self.assertEqual(actual, expected)
Beispiel #9
0
 def test_audio_file_in_G_minor(self):
     dist = pd.PitchDistribution.from_file('tests/testaudio/Butchers.mp3')
     actual = self.naive_bayes.get_key(dist)
     expected = pd.Key('G', 'minor')
     self.assertEqual(actual, expected)
Beispiel #10
0
 def test_add_4_triad(self):
     values = [2, 0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0]
     dist = pd.PitchDistribution(values)
     actual = self.naive_bayes.get_key(dist)
     expected = pd.Key('A', 'major')
     self.assertEqual(actual, expected)
Beispiel #11
0
 def test_leading_tone(self):
     values = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3]
     dist = pd.PitchDistribution(values)
     actual = self.naive_bayes.get_key(dist)
     expected = pd.Key('G#', 'major')
     self.assertEqual(actual, expected)