class StereotypeExecutor(object): def __init__(self): self.markov_chain = SimpleMarkovChain() self.markov_current_state = 'MakeResponse' # there should be an initial state @ can be random self.inter_arrivals_manager = InterArrivalsManager() self.data_generator = DataGenerator() # self.data_generator.initialize_file_system() # self.sender def initialize_from_stereotype_recipe(self, stereotype_recipe): '''Initialize the Markov Chain states''' self.markov_chain.initialize_from_recipe(stereotype_recipe) self.markov_chain.calculate_chain_relative_probabilities() '''Initialize the inter-arrival times''' self.inter_arrivals_manager.initialize_from_recipe(stereotype_recipe) '''Initialize the file system''' self.data_generator.initialize_file_system() def get_waiting_time(self): return self.inter_arrivals_manager.get_waiting_time(self.markov_chain.previous_state, self.markov_chain.current_state) def next_operation(self): '''Get the next operation to be done''' self.markov_chain.next_step_in_random_navigation() '''Do an execution step as a client''' def execute(self): raise NotImplemented
def __init__(self): self.markov_chain = SimpleMarkovChain() self.markov_current_state = 'MakeResponse' # there should be an initial state @ can be random self.inter_arrivals_manager = InterArrivalsManager() self.data_generator = DataGenerator()
recipe1 = os.getcwd() + "\\MidiFiles\\Classical\\elise.mid" # Sonata 8 CMAJ recipe2 = os.getcwd() + "\\MidiFiles\\Classical\\pathet1.mid" recipe3 = os.getcwd() + "\\MidiFiles\\Classical\\pathet2.mid" recipe4 = os.getcwd() + "\\MidiFiles\\Classical\\pathet3.mid" # Sonata 14 CMIN recipe5 = os.getcwd() + "\\MidiFiles\\Classical\\beet27m1.mid" recipe6 = os.getcwd() + "\\MidiFiles\\Classical\\beet27m2.mid" recipe7 = os.getcwd() + "\\MidiFiles\\Classical\\beet27m3.mid" result = os.getcwd() + "\\MidiOutput\\" + "Song1EMAJ2.mid" chain_notes = SimpleMarkovChain() chain_lengths = SimpleMarkovChain() recipe_list = [recipe1, recipe2, recipe3, recipe4, recipe5, recipe6, recipe7] for recipe in recipe_list: loadRecipe(recipe, chain_notes, chain_lengths) #chain_notes.printChain() result_pattern = midi.Pattern() result_track = midi.Track() result_pattern.append(result_track) pattern_beat = midi.read_midifile(recipe_beat) for i in range(3): result_track.append(pattern_beat[0][i])