def linear_smoothed_melody(self,melody): d = gen_music.bpm_conventions(self.bpm) freqs = [] times = [] for t in melody: note = t[0] value = t[1] time = d[value] freq = self.freq_dict[note] freqs.append(freq) times.append(time) #how large the data set for a second is at this convention data = self.lin_smooth(freqs, times) return data
def get_unsmoothed_melody(self, melody): #melody is a list of tuples with t[0] = note, t[1] = type of note (quarter, eighth, etc) d = gen_music.bpm_conventions(self.bpm) data = "" for t in melody: n = t[0] v = t[1] time = d[v] second = self.get_note_data(n,1) piece = time - int(time) if time < 1: fraction = second[:int(len(second)*time)] data += fraction elif int(piece) == 0: note = self.get_note_data(n,int(time)) data += note else: c = math.ceil(time) note = self.get_note_data(n,c) n = note[:int(time*len(second))] data += n return data