def play(self, num=None, save=False, autosave=False): """ This function takes in a song in ABC format string and plays it using music21 and pygame modules Note: Timidity must also be installed, as it's config file is required for the stream object. :param num: index of the ABC song :param save: If true, prompts the user if they want to save the tune after playing. superseded by autosave :param autosave: If true, automatically save the song after playing it. :return: None """ if num is None: num = random.randint(0, len(self.tunes)-1) abc = self.header + self.tunes[num] try: # convert abc format to stream object and add the harp instrument tune = converter.parse(abc, format='abc') for p in tune.parts: p.insert(0, instrument.Flute()) # Emit a tone to break up consecutive plays player = StreamPlayer(converter.parse(self.header + 'z12C12z12', format='abc')) player.play() # play music using pygame stream player player = StreamPlayer(tune) print("Playing tune #{}\nABC: {}\n".format(num, self.tunes[num])) player.play() if autosave: self.save_tune(num) elif save and input('Would you like to save the song as a MIDI file? Y/N: ').upper() == 'Y': self.save_tune(num) except AccidentalException: print('Accidental Exception thrown in ABC:') print(abc)
def playSound(n, speedfactor): if has_simpleaudio: soundof([n], n.duration / speedfactor) else: try: s = Stream() if n.isChord: n = n.chord21 else: s.append(n.note21) sp = StreamPlayer(s) sp.play() # if n.isChord: # s.append(n) # else: # nn = Note(n.nameWithOctave) # s.append(nn) # sp = StreamPlayer(s) # sp.play() except: print('Unable to play sounds, add -z option') return
def playsound(self, n): s = Stream() if n.isChord: n = n.chord21 else: s.append(n.note21) sp = StreamPlayer(s) sp.play()
for i in range(len(mf.tracks)): mf.tracks[i].events = [ ev for ev in mf.tracks[i].events if ev.channel != 10 ] return midiFileToStream(mf) if __name__ == '__main__': # midi_stream = open_midi('music_samples_input/FFIX_Piano.mid', True) # midi_stream.plot('pianoroll') # midi_stream.plot('3dbars') # time_signature = midi_stream.getTimeSignatures()[0] # music_analysis = midi_stream.analyze('key') # print('Music time signature: {0}/{1}'.format(time_signature.beatCount, time_signature.denominator)) # print('Expected music key: {0}'.format(music_analysis)) # print('Music key confidence: {0}'.format(music_analysis.correlationCoefficient)) # midi_stream = open_midi( # 'C:\\Users\\admin\\Downloads\\CREAM_SODA_-_Nikakix_Bolshe_Vecherinok.mp3.mid', False # ) # midi_stream = music21.converter.parse( # # 'C:\\Users\\admin\\Downloads\\CREAM_SODA_-_Nikakix_Bolshe_Vecherinok.mp3.mid' # # 'C:\\Users\\admin\\Downloads\\07_Maroon_5___This_Love.mid' # ) midi_stream = get_midi_stream_1() midi_stream.insert(0, ElectricBass()) player = StreamPlayer(midi_stream) player.play() midi_stream.plot('pianoroll')
np.fill_diagonal(similarity_arr, 1) for _, row in df.iterrows(): if row['name1'] in name_map and row['name2'] in name_map: similarity_arr[name_map[row['name1']], name_map[row['name2']]] = row['score'] input('loaded! Press enter to begin...') print('') prefs = np.zeros(len(names)) curr = np.random.randint(len(names)) while curr != -1: curr_name = names[curr] sp = StreamPlayer(stream_map[curr_name]) print('now playing %s' % curr_name) sp.play() ans = input('did you like it (q to quit)? (y)/n: ') if ans == 'q': break prefs /= 2 prefs += similarity_arr[curr] * (-1 if ans == 'n' else 1) prefs[curr] = -np.inf top = np.argsort(-prefs)[:3] for i, t in enumerate(top): print('%d. %s' % (i + 1, names[t])) try: ans = int(input('choose from your new recommendations: ')) - 1
def play_gameover(self): player = StreamPlayer(self.sheperd_tone(0, 1, instrument.Trombone())) player.play()
def play(self, i): print("play " + str(i)) player = StreamPlayer(self.sheperd_tone(i)) player.play()