Beispiel #1
0
 def play_tone_in_seq(self, wob):
     wob.set_wrong_flag(False)
     self.__talk('You chose Play Tone in Sequence')
     ch = input('1. Play Notes in a Scale\n2. Play Note Sequence\nChoice: ')
     if int(ch) == 1:
         min_maj = input("1. Minor Scale\n2. Major Scale\nChoice: ")
         if int(min_maj) == 1:
             scale = self.__valid_input('Scale')
             music = Music(scale)
             if music.valid_note(scale)[1]:
                 if music != None:
                     music.note_beep_scale('m', scale)
                 else:
                     self.Study_Music_Theory()
             else:
                 self.Study_Music()
         elif int(min_maj) == 2:
             scale = self.__valid_input('Scale')
             music = Music(scale)
             if music.valid_note(scale)[1]:
                 if music != None:
                     music.note_beep_scale('M', scale)
                 else:
                     self.Study_Music_Theory()
             else:
                 self.Study_Music()
     elif int(ch) == 2:
         notes = self.__valid_input('Notes')
         music = Music()
         music.note_beep_seq(notes.split())
    def show_result(self): # Result Handle
        if self.option_menu.text != "Select" and self.input_menu.text != "Select":
            output_text = self.output_text
            if self.option_menu.text == self.options_spinner_vals[0]: # "Major Scale"
                note = self.input_menu.text
                music = Music(note)
                result = music.major_scale()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[1]: # "Major Chord"
                note = self.input_menu.text
                music = Music(note)
                result = music.major_chord()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[2]: # "Chords in Major Scale"
                note = self.input_menu.text
                music = Music(note)
                result = music.chords_in_major_scale()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[3]: # "Scale shift with capo position (Guitar)"
                ## Implement Code from 'update_input_spinner_vals()'print(self.sub_menu_selected)
                print(self.sub_menu_selected)
                rem_lst = ('Select', self.options_spinner_vals[3])
                print(rem_lst)
                sub_val = self.sub_menu_selected[self.options_spinner_vals[3]]
                print(sub_val)
                new_val = [i for i in sub_val if i not in rem_lst]
                print(new_val)
                self.sub_menu_selected[self.options_spinner_vals[3]] = new_val
                # Take the 'Note' and 'Capo Position' and call "Music.capo_pos_scale_shift(capo_pos)"
                # Take help from "Relative Major/Minor" condition
                pass # M/m --> Capo Pos --> Notes(m)
            
            elif self.option_menu.text == self.options_spinner_vals[4]: # "Minor Scale"
                note = self.input_menu.text
                music = Music(note)
                result = music.minor_scale()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[5]: # "Minor Chord"
                note = self.input_menu.text
                music = Music(note)
                result = music.minor_chord()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[6]: # "Chords in Minor Scale"
                note = self.input_menu.text
                music = Music(note[:-1])
                result = music.chords_in_minor_scale()
                output_text = '     '.join(result) + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[7]: # "Relative Major/Minor"
                print(self.sub_menu_selected)
                rem_lst = ('Select', self.options_spinner_vals[7])
                sub_val = self.sub_menu_selected[self.options_spinner_vals[7]]
                new_val = [i for i in sub_val if i not in rem_lst]
                self.sub_menu_selected[self.options_spinner_vals[7]] = new_val
                if self.sub_menu_selected[self.options_spinner_vals[7]][-2] == self.rel_maj_min_options[0] and self.sub_menu_selected[self.options_spinner_vals[7]][-1] is not None:
                    scale = self.sub_menu_selected[self.options_spinner_vals[7]][-1]
                    music = Music()
                    result = music.relative_major(scale[:-1])
                    output_text = result + '\n\n\n' + self.output_text.split('\n')[-1]
                elif self.sub_menu_selected[self.options_spinner_vals[7]][-2] == self.rel_maj_min_options[1] and self.sub_menu_selected[self.options_spinner_vals[7]][-1] is not None:
                    scale = self.sub_menu_selected[self.options_spinner_vals[7]][-1]
                    music = Music()
                    result = music.relative_minor(scale)
                    output_text = result + '\n\n\n' + self.output_text.split('\n')[-1]
                self.ids.input_menu.values = self.rel_maj_min_options
                #self.sub_menu_selected[self.options_spinner_vals[7]] = list(set(new_val))
            
            elif self.option_menu.text == self.options_spinner_vals[8]: # "Scale from Chords"
                pass
            
            elif self.option_menu.text == self.options_spinner_vals[9]: # "Play Tone Based on Note"
                self.output.text = "Playing..."
                note = self.input_menu.text
                music = Music(note)
                music.note_beep(note)
                self.output.text = self.output_text
                output_text = self.output_text + '\n\n\n' + self.output_text.split('\n')[-1]
            
            elif self.option_menu.text == self.options_spinner_vals[10]: # "Play Tone in Sequence (Scale / Note Sequence)"
                self.output.text = "Playing..."
                scale = self.input_menu.text
                music = Music(scale)
                if self.nS.active:
                    music.note_beep_scale('M', scale)
                elif self.nb.active:
                    music.note_beep_scale('m', scale)
                output_text = self.output_text + '\n\n\n' + self.output_text.split('\n')[-1]
                pass # Incomplete (Sequence Playing Pending; Use multiple selection feature)

            self.output.text = output_text