Пример #1
0
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)
Пример #2
0
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"
Пример #4
0
 def note_off(self, channel, pitch, velocity=100):
     note = Note()
     note.from_int(pitch)
     note.velocity = velocity
     fluidsynth.stop_Note(note, channel)