def train(self, score):
        notes= score.get_first_voice()

        for n1, n2, n3 in zip(notes, notes[1:], notes[2:]):
            if n1.is_silence or n2.is_silence or n3.is_silence: continue
            features= get_features(n1, n2, n3)                
            for feature_name, value in features.iteritems():
                self.narmour_features_cnt[feature_name][value]+=1
Esempio n. 2
0
    def get_prob(self, n1, n2, n3, use_harmony=None, feature_name=None):
        if use_harmony is None: use_harmony= self.use_harmony 
        features= get_features(n1, n2, n3)

        res= 1.0
        if self.use_narmour:
            res*= self.get_features_prob(features, feature_name)
        if use_harmony: 
            if isinstance(n3, int): n3= Note(n3) # XXX que paso aca?
            if n3 not in self.notes_distr: import ipdb;ipdb.set_trace()
            res*= self.notes_distr[n3]
        return res