def encode_event(self, event): if event == NO_CHORD: return 0 root = chord_symbols_lib.chord_symbol_root(event) quality = chord_symbols_lib.chord_symbol_quality(event) if quality == chord_symbols_lib.CHORD_QUALITY_MAJOR: return root + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_MINOR: return root + NOTES_PER_OCTAVE + 1 else: raise ChordEncodingError('chord is neither major nor minor: %s' % event)
def encode_event(self, event): if event == NO_CHORD: return 0 root = chord_symbols_lib.chord_symbol_root(event) quality = chord_symbols_lib.chord_symbol_quality(event) if quality == chord_symbols_lib.CHORD_QUALITY_MAJOR: return root + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_MINOR: return root + NOTES_PER_OCTAVE + 1 else: raise ChordEncodingError('chord is neither major nor minor: %s' % event)
def encode_event(self, event): if event == NO_CHORD: return 0 root = chord_symbols_lib.chord_symbol_root(event) quality = chord_symbols_lib.chord_symbol_quality(event) if quality == chord_symbols_lib.CHORD_QUALITY_MAJOR: return root + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_MINOR: return root + NOTES_PER_OCTAVE + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_AUGMENTED: return root + 2 * NOTES_PER_OCTAVE + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_DIMINISHED: return root + 3 * NOTES_PER_OCTAVE + 1 else: raise ChordEncodingException('chord is not a standard triad: %s' % event)
def encode_event(self, event): if event == NO_CHORD: return 0 root = chord_symbols_lib.chord_symbol_root(event) quality = chord_symbols_lib.chord_symbol_quality(event) if quality == chord_symbols_lib.CHORD_QUALITY_MAJOR: return root + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_MINOR: return root + NOTES_PER_OCTAVE + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_AUGMENTED: return root + 2 * NOTES_PER_OCTAVE + 1 elif quality == chord_symbols_lib.CHORD_QUALITY_DIMINISHED: return root + 3 * NOTES_PER_OCTAVE + 1 else: raise ChordEncodingError('chord is not a standard triad: %s' % event)
def testChordSymbolQuality(self): # Test major chords. quality = chord_symbols_lib.chord_symbol_quality('B13') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('E7#9') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Fadd2/Eb') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('C6/9/Bb') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Gmaj13') self.assertEqual(CHORD_QUALITY_MAJOR, quality) # Test minor chords. quality = chord_symbols_lib.chord_symbol_quality('C#-9') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Gm7/Bb') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Cbmmaj7') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('A-(M7)') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Bbmin') self.assertEqual(CHORD_QUALITY_MINOR, quality) # Test augmented chords. quality = chord_symbols_lib.chord_symbol_quality('D+/A#') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('A+') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('G7(#5)') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('Faug(add2)') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) # Test diminished chords. quality = chord_symbols_lib.chord_symbol_quality('Am7b5') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Edim7') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Bb/o') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Fo') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) # Test other chords. quality = chord_symbols_lib.chord_symbol_quality('G5') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('Bbsus2') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('Dsus') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('E(no3)') self.assertEqual(CHORD_QUALITY_OTHER, quality)
def testChordSymbolQuality(self): # Test major chords. quality = chord_symbols_lib.chord_symbol_quality('B13') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('E7#9') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Fadd2/Eb') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('C6/9/Bb') self.assertEqual(CHORD_QUALITY_MAJOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Gmaj13') self.assertEqual(CHORD_QUALITY_MAJOR, quality) # Test minor chords. quality = chord_symbols_lib.chord_symbol_quality('C#-9') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Gm7/Bb') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Cbmmaj7') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('A-(M7)') self.assertEqual(CHORD_QUALITY_MINOR, quality) quality = chord_symbols_lib.chord_symbol_quality('Bbmin') self.assertEqual(CHORD_QUALITY_MINOR, quality) # Test augmented chords. quality = chord_symbols_lib.chord_symbol_quality('D+/A#') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('A+') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('G7(#5)') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) quality = chord_symbols_lib.chord_symbol_quality('Faug(add2)') self.assertEqual(CHORD_QUALITY_AUGMENTED, quality) # Test diminished chords. quality = chord_symbols_lib.chord_symbol_quality('Am7b5') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Edim7') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Bb/o') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) quality = chord_symbols_lib.chord_symbol_quality('Fo') self.assertEqual(CHORD_QUALITY_DIMINISHED, quality) # Test other chords. quality = chord_symbols_lib.chord_symbol_quality('G5') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('Bbsus2') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('Dsus') self.assertEqual(CHORD_QUALITY_OTHER, quality) quality = chord_symbols_lib.chord_symbol_quality('E(no3)') self.assertEqual(CHORD_QUALITY_OTHER, quality)