def main(): if not os.path.isfile('./data/probs.json'): print ('Creating json file...') fname = "./data/interval-5gram.csv" counts = get_counts(fname, 4) probs = get_probs(counts) with open('./data/probs.json', 'w') as outfile: json.dump(probs, outfile) with open('./data/probs.json', 'r') as infile: probs_dict = json.load(infile, encoding='utf-8') start_int = C4 melody = [] fluidsynth.init("/usr/share/sounds/sf2/FluidR3_GM.sf2", "alsa") streamer = stream_notes(probs_dict) for i in range(100): next_int = start_int + int(next(streamer)) next_note = Note() next_note.from_int(next_int) melody.append(next_note) start_int = next_int print(next_note) fluidsynth.play_Note(next_note) time.sleep(.2)
class Key(avg.RectNode): def __init__(self, size, pos, pitch, isWhite, parent=None, **kwargs): super(Key, self).__init__(**kwargs) if parent: parent.appendChild(self) self.size = size self.pos = pos self.pitch = pitch self.isWhite = isWhite self.fillopacity = 1 self.setNote() if self.isWhite: self.fillcolor = "FFFFFF" self.color = "000000" self.onDown = self.onWhiteDown self.onUp = self.onWhiteUp self.onOut = self.onWhiteOut else: self.fillcolor = "000000" self.color = "000000" self.onDown = self.onBlackDown self.onUp = self.onBlackUp self.onOut = self.onBlackOut self.setEventHandler(avg.CURSORDOWN, avg.MOUSE | avg.TOUCH, self.onDown) self.setEventHandler(avg.CURSORUP, avg.MOUSE | avg.TOUCH, self.onUp) self.setEventHandler(avg.CURSOROUT, avg.MOUSE | avg.TOUCH, self.onOut) def setNote(self): self.note = Note() self.note.from_int(self.pitch-12) def onDown(self, event): pass def onUp(self, event): pass def onOut(self, event): pass def onWhiteDown(self, event): self.fillcolor = "C0C0C0" fluidsynth.play_Note(self.note) def onWhiteUp(self, event): self.fillcolor = "FFFFFF" def onWhiteOut(self, event): self.fillcolor = "FFFFFF" def onBlackDown(self, event): self.fillcolor = "C0C0C0" fluidsynth.play_Note(self.note) def onBlackUp(self, event): self.fillcolor = "000000" def onBlackOut(self, event): self.fillcolor = "000000"
def main(): global notes global song_pop genome = NEAT.Genome(0,2,0,7,False, NEAT.ActivationFunction.UNSIGNED_SIGMOID, NEAT.ActivationFunction.UNSIGNED_SIGMOID, 0, params) pop = NEAT.Population(genome, params, True, 1.0) numb = 9 while(numb<97): c = Note() notes.append(c.from_int(numb)) numb = numb+1 print notes programrun = 1 genome_list = NEAT.GetGenomeList(pop) for genomes in genome_list: gen_Song(genomes) while(programrun == 1): choice = raw_input("Choose one of the following\n1) Print population\n2) Eval population using fitness func\n3) Manually set fitness\n4) Print pop Fitness\n5) Play pop member\n6) Pop epoch\n7) Print leaders\n8) Quit\n") if(choice == "1"): #Print population print_pop() elif(choice == "2"): #Evaluate using fitness choice = raw_input("How many generations would you like to run?\n") for y in range(0, int(choice)-1): x = 0 for genomes in genome_list: genomes.SetFitness(evaluate(song_pop[x])) x=x+1 leader = get_leader(genome_list) leader_list.append(leader) pop.Epoch() song_pop = [] genome_list = NEAT.GetGenomeList(pop) for genomes in genome_list: gen_Song(genomes) x = 0 for genomes in genome_list: genomes.SetFitness(evaluate(song_pop[x])) x = x+1 leader_list.append(get_leader(genome_list)) elif(choice == "3"): song_select = raw_input("What member's fitness do you want to set?\n") new_fit = raw_input("Enter desired fitness\n") old_fit = genome_list[int(song_select) - 1].GetFitness() genome_list[int(song_select)-1].SetFitness(float(new_fit)) print "Member", song_select,"fitness changed from", old_fit, "to", new_fit,"\n" elif(choice == "4"): #print fitness of pop x = 1 for genomes in genome_list: print "Song", x, "has fitness of", genomes.GetFitness(), "\n" x = x+1 elif(choice == "5"): #Play pop member choice = raw_input("What member would you like to play?\n") play_song(song_pop[int(choice)-1]) elif(choice == "6"): #Pop epoch pop.Epoch() song_pop = [] genome_list = NEAT.GetGenomeList(pop) for genomes in genome_list: gen_Song(genomes) elif(choice == "7"): x = 1 for leader in leader_list: print "Member", leader[0]+1, "in gen", x, "has fitness of", leader[2] x = x + 1 elif(choice == "8"): #Exit program sys.exit("Program exited") else: print "Not a valid choice, choose again.\n"
def note_off(self, channel, pitch, velocity=100): note = Note() note.from_int(pitch) note.velocity = velocity fluidsynth.stop_Note(note, channel)