Given some chords in a text file like:
Chord{....}..., c minor 7, 0.125, 0.800
Parse this into an easier form.
from collections import Counter, defaultdict
from sklearn.cluster import KMeans
import pandas as pd
import numpy as np
import sys
sys.path.append('C:/Python27/Lib/site-packages')
# Import the chord data.
oscar2 = pd.read_csv('oscar2chords.txt', skiprows=2)[:].sort("Offset")
oscar2.index = xrange(1, len(oscar2) + 1)
with open('oscar2chords.txt', 'rb') as f:
metmark = float(f.readline())
tsig_num, tsig_den = [i for i in f.readline().replace(' /', '').split()]
print "Metrics:"
print metmark, tsig_num, tsig_den, len(oscar2)
oscar2.sort(columns="Offset", ascending=True)
oscar2.head(30)
Metrics: 176.0 4 4 297
FullName | CommonName | Len | Offset | |
---|---|---|---|---|
1 | Chord {D in octave 5 | C in octave 4 | E in oc... | A6-perfect-fourth minor tetrachord | 1.125000 | 8.000000 |
2 | Chord {A in octave 3 | G in octave 3 | E in oc... | A3-incomplete dominant-seventh chord | 1.250000 | 8.000000 |
3 | Chord {E in octave 6 | E in octave 4 | D in oc... | D6-quartal trichord | 1.375000 | 9.625000 |
4 | Chord {C in octave 4 | A in octave 5} Dotted Q... | A5-interval class 3 | 1.500000 | 9.625000 |
5 | Chord {G in octave 3 | A in octave 3} Quarter ... | A3-interval class 2 | 1.666667 | 9.625000 |
6 | Chord {A in octave 5 | D in octave 4 | G in oc... | G4-quartal trichord | 0.625000 | 12.666667 |
7 | Chord {E in octave 3 | E in octave 5} Double D... | E3-unison | 0.875000 | 12.666667 |
8 | Chord {A in octave 3 | C-sharp in octave 4 | E... | A3-major triad | 0.750000 | 13.875000 |
9 | Chord {G in octave 5 | G in octave 4} Eighth t... | G5-unison | 0.625000 | 14.000000 |
10 | Chord {C in octave 4 | D in octave 3} Dotted Half | D3-interval class 2 | 3.000000 | 16.000000 |
11 | Chord {E-flat in octave 4 | E-flat in octave 5... | E-4-unison | 0.750000 | 20.625000 |
12 | Chord {B-flat in octave 3 | F in octave 5} Qua... | B-3-interval class 5 | 1.000000 | 20.625000 |
13 | Chord {D in octave 4 | E-flat in octave 5} Dou... | E-5-interval class 1 | 0.875000 | 20.625000 |
14 | Chord {E-flat in octave 5 | C-sharp in octave ... | C#5-interval class 2 | 0.750000 | 21.875000 |
15 | Chord {G in octave 5 | C-sharp in octave 5} Qu... | C#5-tritone | 0.666667 | 21.875000 |
16 | Chord {E-flat in octave 4 | A in octave 5} 16th | A5-tritone | 0.250000 | 22.875000 |
17 | Chord {G in octave 4 | A in octave 3 | A in oc... | A3-interval class 2 | 0.125000 | 22.875000 |
18 | Chord {A in octave 3 | B-flat in octave 3 | D ... | B-3-incomplete major-seventh chord | 1.333333 | 23.875000 |
19 | Chord {B-flat in octave 4 | D in octave 5 | F ... | B-4-major triad | 0.500000 | 24.000000 |
20 | Chord {D in octave 6 | B-flat in octave 3 | D ... | B-3-interval class 4 | 1.125000 | 25.500000 |
21 | Chord {A in octave 3 | F in octave 4} Quarter | F4-interval class 4 | 1.000000 | 25.625000 |
22 | Chord {G-sharp in octave 3 | D in octave 5 | G... | G#3-diminished triad | 0.125000 | 27.625000 |
23 | Chord {F in octave 4 | D in octave 4 | B in oc... | G#5-diminished seventh chord | 0.125000 | 27.625000 |
24 | Chord {F in octave 4 | D in octave 4} Half | D4-interval class 3 | 2.000000 | 28.625000 |
25 | Chord {A in octave 3 | A in octave 5 | E in oc... | A3-incomplete dominant-seventh chord | 3.875000 | 31.500000 |
26 | Chord {F in octave 4 | B-flat in octave 4} Dou... | B-4-interval class 5 | 0.875000 | 68.625000 |
27 | Chord {C in octave 4 | E in octave 4 | G in oc... | A3-minor seventh chord | 1.333333 | 71.875000 |
28 | Chord {G in octave 5 | A in octave 5 | A in oc... | A5-incomplete minor-seventh chord | 1.000000 | 73.625000 |
29 | Chord {B in octave 3 | G in octave 4 | D in oc... | G4-major triad | 1.333333 | 76.000000 |
30 | Chord {C-sharp in octave 4 | G in octave 5} Do... | C#4-tritone | 0.875000 | 77.875000 |
30 rows × 4 columns