def buildbtnbar(self):
        btnbar=GridLayout(cols=7, size_hint=(1,0.2))

        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)


        def callbackplay70(instance):
            #main.console()
            myglobals.gameState.console = True



        btn70 = Button(text='Console')

        btn70.bind(on_press=callbackplay70)
        btnbar.add_widget(btn70)




        """
        def callbackplay8(instance):
            OlgaRequests.playChallenge()
            #ScreenState["Song"].challenge.replay()

        btn8 = Button(text='Play\nChallenge again')
        btn8.speed = 1.0
        btn8.bind(on_press=callbackplay8)
        btnbar.add_widget(btn8)
        """


        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        btnbar.add_widget(btn14)



        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()
            # play and save
            s = self.notesscroller.adapter.getStream()
            s.toXml2file("play.xml")

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        btnbar.add_widget(btn4)


        btn = Button(text='Show \ncontrol part')
        btn.mystate = "Simon"

        def callbackplayShowChallenge(instance):

            ## debug
            #ScreenState["Song"].levcha.draw()
            OlgaRequests.ShowChallenge()
            #ScreenState.change_state("Simon")


        btn.bind(on_press=callbackplayShowChallenge)
        btnbar.add_widget(btn)


        def callbackSetChallenge(instance):
            OlgaRequests.SetChallenge()

        btn6 = Button(text='Set \ncontrol part')
        btn6.mystate = "ConfigAChallengeStreamScreen"
        btn6.bind(on_press=callbackSetChallenge)
        btnbar.add_widget(btn6)



        def callbackplayAtyourSpeed(instance):

            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            #if ScreenState["Timing"].notesscroller.rating:
            #    ScreenState["Song"].challenge.replay(speed = ScreenState["Timing"].notesscroller.rating.medrelativespeed)

            ScreenState["SimonViewGraphScreen"].challenge = myglobals.OlgaMode.challenge
            ScreenState.change_state("SimonViewGraphScreen")
            ScreenState["SimonViewGraphScreen"].dirty=True

        btn5 = Button(text='show Graph ')
        btn5.bind(on_press=callbackplayAtyourSpeed)
        btnbar.add_widget(btn5)

        btn61 = Button(text='Config Olga')
        btn61.bind(on_press=OlgaRequests.ConfigChallenge)
        btnbar.add_widget(btn61)


        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        btnbar.add_widget(btnOlgasDuty)




        return btnbar
    def buildbtnbar(self):
        self.btnbar=GridLayout(cols=3, size_hint=(1,0.2))

        """
        def declareChallengeBtnCallback(instance):

            rl=self.notesscroller.getStreamAndIntervall()
            ret = _newChallenge2(rl[0],rl[1],rl[2])
            print "declareChallengeBtnCallback " + str(ret)


        btn13 = Button(text='Declare\n Challenge')
        btn13.mystate = self.mystate
        btn13.bind(on_press=declareChallengeBtnCallback)
        self.btnbar.add_widget(btn13)
        """


        def declareStartBtnCallback(instance):
            anote = self.notesscroller.adapter._selectedBtn[0].myStreamNote
            myglobals.SimonMode.startchord= anote.chord
            ScreenState.change_state_back()
            #myglobals.SimonMode.initSimonChallenges(anote)
            pass



        btn13 = Button(text='Start learning here')
        btn13.mystate = self.mystate
        btn13.bind(on_press=declareStartBtnCallback)
        self.btnbar.add_widget(btn13)


        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        self.btnbar.add_widget(btn4)



        def callback(instance):
            ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        self.btnbar.add_widget(btn)



        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)

        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        self.btnbar.add_widget(btnOlgasDuty)

        return self.btnbar
    def buildbtnbar(self):
        btnbar=GridLayout(cols=7, size_hint=(1,0.2))

        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)


        def callbackplay70(instance):
            #main.console()
            myglobals.gameState.console = True



        btn70 = Button(text='Console')

        btn70.bind(on_press=callbackplay70)
        btnbar.add_widget(btn70)



        """
        def callbackplay8(instance):
            OlgaRequests.playChallenge()
            #ScreenState["Song"].challenge.replay()

        btn8 = Button(text='Play\nChallenge again')
        btn8.speed = 1.0
        btn8.bind(on_press=callbackplay8)
        btnbar.add_widget(btn8)
        """


        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        btnbar.add_widget(btn14)



        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.adapter.play()
            # play and save
            s = self.notesscroller.adapter.getStream()
            s.toXml2file("play.xml")

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        btnbar.add_widget(btn4)

        def callback(instance):
            ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        btnbar.add_widget(btn)


        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        btnbar.add_widget(btnOlgasDuty)




        return btnbar
    def buildbtnbar(self):
        self.btnbar=GridLayout(cols=3, size_hint=(1,0.2))

        """
        def declareChallengeBtnCallback(instance):

            rl=self.notesscroller.getStreamAndIntervall()
            ret = _newChallenge2(rl[0],rl[1],rl[2])
            print "declareChallengeBtnCallback " + str(ret)


        btn13 = Button(text='Declare\n Challenge')
        btn13.mystate = self.mystate
        btn13.bind(on_press=declareChallengeBtnCallback)
        self.btnbar.add_widget(btn13)
        """
        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        self.btnbar.add_widget(btn14)



        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        self.btnbar.add_widget(btn4)

        def callbackreplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            #s = self.notesscroller.getStream()
            s = self.notesscroller.adapter.getStream()
            s.shift(0 - s[0].myoffset)
            myglobals.gameState.input.replay(s)

        btn41 = Button(text='ReInput\nselected\nChords')
        btn41.speed = 1.0
        btn41.bind(on_press=callbackreplay)
        self.btnbar.add_widget(btn41)


        def callback(instance):
            ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        self.btnbar.add_widget(btn)


        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)

        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        self.btnbar.add_widget(btnOlgasDuty)

        return self.btnbar
    def buildbtnbar(self):
        if self.btnbar is None:
            self.btnbar=GridLayout(cols=7, size_hint=(1,0.2))

        btnbar = self.btnbar

        def changeStateCallback(instance):
            myglobals.ScreenState.change_state(instance.mystate)


        def callbackplay70(instance):
            #main.console()
            myglobals.gameState.console = True


        btn70 = Button(text='Console')

        btn70.bind(on_press=callbackplay70)
        btnbar.add_widget(btn70)

        def callbackplay80(instance):
            #main.console()
            myglobals.gameState.test()

        btn80 = Button(text='test')

        btn80.bind(on_press=callbackplay80)
        btnbar.add_widget(btn80)


        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        btnbar.add_widget(btn14)


        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        btnbar.add_widget(btn4)


        def callback(instance):
            ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        btnbar.add_widget(btn)


        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        btnbar.add_widget(btnOlgasDuty)

        return btnbar
    def buildbtnbar(self):
        btnbar=GridLayout(cols=7, size_hint=(1,0.2))

        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)


        def callbackplay70(instance):
            #main.console()
            myglobals.gameState.console = True



        btn70 = Button(text='Console')

        btn70.bind(on_press=callbackplay70)
        btnbar.add_widget(btn70)


        def callbackplay7(instance):
            SimonRequests.playNewPart()

        btn7 = Button(text='Play new\nChords again')
        btn7.speed = 1.0
        btn7.bind(on_press=callbackplay7)
        btnbar.add_widget(btn7)


        def callbackplay9(instance):
            SimonRequests.playNewPartArp()

        btn9 = Button(text='Play new\nChord\nArpeggio')
        btn9.speed = 1.0
        btn9.bind(on_press=callbackplay9)
        btnbar.add_widget(btn9)

        btn11 = Button(text='Show new Chords')
        btn11.mystate = "Simon"

        def callbackplayShowChallengeNewpart(instance):

            ## debug
            #ScreenState["Song"].levcha.draw()
            SimonRequests.ShowChallenge(newpart=True)
            #ScreenState.change_state("Simon")


        btn11.bind(on_press=callbackplayShowChallengeNewpart)
        btnbar.add_widget(btn11)



        def callbackplay8(instance):
            SimonRequests.playChallenge()
            #ScreenState["Song"].challenge.replay()

        btn8 = Button(text='Play\nChallenge again')
        btn8.speed = 1.0
        btn8.bind(on_press=callbackplay8)
        btnbar.add_widget(btn8)


        def callbackplayShowChallenge(instance):

            ## debug
            #ScreenState["Song"].levcha.draw()
            SimonRequests.ShowChallenge()
            #ScreenState.change_state("Simon")

        btn = Button(text='Show Challenge')
        btn.mystate = "Simon"

        btn.bind(on_press=callbackplayShowChallenge)
        btnbar.add_widget(btn)




        def callbackplay81(instance):
            SimonRequests.playChallenge(part = "olgapartStream")
            #ScreenState["Song"].challenge.replay()

        btn81 = Button(text='Play Challenge \nand Pre Part again')
        btn81.speed = 1.0
        btn81.bind(on_press=callbackplay81)
        btnbar.add_widget(btn81)


        def callbackplayShowChallenge81(instance):
            ## debug
            #ScreenState["Song"].levcha.draw()
            SimonRequests.ShowChallenge(part="olgapartStream")

            #ScreenState.change_state("Simon")

        btn811 = Button(text='Show Challenge\n and Pre Part')
        btn811.mystate = "Simon"

        btn811.bind(on_press=callbackplayShowChallenge81)
        btnbar.add_widget(btn811)


        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        btnbar.add_widget(btn4)




        def callbackplayComputeBestRating(instance):
            SimonRequests.createShowDoneStream(None)

        btn2 = Button(text='Show last\ndone Challenge')
        btn2.mystate = "SimonViewDoneScreen"
        btn2.bind(on_press=changeStateCallback)
        btnbar.add_widget(btn2)


        def callbackplayAtyourSpeed(instance):

            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            #if ScreenState["Timing"].notesscroller.rating:
            #    ScreenState["Song"].challenge.replay(speed = ScreenState["Timing"].notesscroller.rating.medrelativespeed)

            ScreenState.change_state("SimonViewGraphScreen")
            ScreenState["SimonViewGraphScreen"].dirty=True

        btn5 = Button(text='Replay Challenge\n At your last\n measured speed (show Graph) ')
        btn5.speed = 1.0
        btn5.bind(on_press=callbackplayAtyourSpeed)
        btnbar.add_widget(btn5)



        def callbackplayComputeError(instance):
            #SimonRequests.createShowErrorStream(myglobals.SimonMode.activeChallenge().challenge)
            ScreenState.change_state(instance.mystate)

        """
        btn10 = Button(text='Show best Try')
        btn10.mystate = "SimonViewMissingScreen"
        btn10.bind(on_press=callbackplayComputeError)
        btnbar.add_widget(btn10)
        """


        btn102 = Button(text='Show last\nerror')
        btn102.mystate = "SimonViewErrorScreen"
        btn102.bind(on_press=callbackplayComputeError)
        btnbar.add_widget(btn102)


        def callbackplayComputeBestActiveRating(instance):
            #SimonRequests.createShowBestActiveStream(None)
            ScreenState.change_state("SimonViewBestActiveScreen")

        btn11 = Button(text='Show best active\nrating')
        #btn11.mystate = "nowTiming"
        btn11.bind(on_press=callbackplayComputeBestActiveRating)
        btnbar.add_widget(btn11)

        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        btnbar.add_widget(btn14)



        def callbackreplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            #s = self.notesscroller.getStream()
            s = self.notesscroller.adapter.getStream()
            s.shift(0 - s[0].myoffset)
            myglobals.gameState.input.replay(s)

        btn41 = Button(text='ReInput\nselected\nChords')
        btn41.speed = 1.0
        btn41.bind(on_press=callbackreplay)
        btnbar.add_widget(btn41)


        btn3 = Button(text='Show Chords\nyou\nplayed')
        btn3.mystate = "SimonViewInScreen"
        btn3.bind(on_press=changeStateCallback)
        btnbar.add_widget(btn3)


        def callbackconfig(instance):
             myglobals.ScreenState['ConfigObjectScreen'].object = myglobals.gameState.SimonMode
             myglobals.ScreenState['ConfigObjectScreen'].debug = False
             myglobals.ScreenState.change_state('ConfigObjectScreen')


        btn6 = Button(text='Config')
        btn6.bind(on_press=callbackconfig)
        btnbar.add_widget(btn6)

        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        btnbar.add_widget(btnOlgasDuty)

        return btnbar
    def build(self):
        self.widget= BoxLayout(orientation='vertical')

        self.notesscroller = ScrollView(size_hint=(1,1-0), size=(1600,800))
        self.notesscroller.do_scroll_x=True
        self.notesscroller.do_scroll_y=True


        self.widget.add_widget(self.notesscroller)


        if self.btnbar is None:
            self.btnbar=GridLayout(cols=7, size_hint=(1,0.2))

        self.widget.add_widget(self.btnbar)


        def callbackplay70(instance):
            #main.console()
            myglobals.gameState.console = True

        btn70 = Button(text='Console')

        btn70.bind(on_press=callbackplay70)
        self. btnbar.add_widget(btn70)

        def callback(instance):
            self.notesscroller.remove_widget(self.layout)
            #self.layout.move()
            #self.update()


        btnRoot = Button(text='root')
        btnRoot.bind(on_press=callback)
        self.btnbar.add_widget(btnRoot)



        def callback(instance):
            self.debug= not(self.debug)
            instance.text ="debug=" + str(self.debug)
            #self.notesscroller.remove_widget(self.layout)
            self.layout.debug = self.debug
            self.layout.move()
            #self.update()


        btndebug = Button(text='toggle debug')
        btndebug.text ="debug=" + str(self.debug)
        btndebug.bind(on_press=callback)
        self.btnbar.add_widget(btndebug)



        def callback(instance):
            myglobals.ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        self.btnbar.add_widget(btn)


        def changeStateCallback(instance):
            myglobals.ScreenState.change_state(instance.mystate)

        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        self.btnbar.add_widget(btnOlgasDuty)



        myglobals.ScreenState.add_state(self)
    def buildbtnbar(self):
        self.btnbar=GridLayout(cols=3, size_hint=(1,0.2))


        """
        def declareChallengeBtnCallback(instance):
            rl=self.notesscroller.getStream()
            #newstream.build(rl[0][rl[1]], rl[0][rl[2]])
            nc = SimonModeChallengeFeedback()
            nc.createSimpleChallenge(rl[0],rl[-1])
            myglobals.SimonMode.simonModeChallenges.append(nc)

            print "declareChallengeBtnCallback"


        btn13 = Button(text='Set selected part\n as SimpleChallenge')
        btn13.mystate = "Song"
        btn13.bind(on_press=declareChallengeBtnCallback)
        self.btnbar.add_widget(btn13)
        """





        def declareStartBtnCallback(instance):
            rl=self.notesscroller.adapter.getList()
            #newstream.build(rl[0][rl[1]], rl[0][rl[2]])
            logger.info("self.challenge.jumpToStates.registerStream(rl) rl: " + str(rl))
            # clear old ones ??
            self.challenge.jumpToStates=MyJumpChordsAndSpeedTols()
            self.challenge.jumpToStates.registerStream(rl, myglobals.OlgaMode.challenge.speed, myglobals.OlgaMode.challenge.speedtol)


        btn131 = Button(text='Set selected part\n as StartNotes')
        #btn131 = Button(text='Declare\n Challenge')
        btn131.mystate = self.mystate
        btn131.bind(on_press=declareStartBtnCallback)
        self.btnbar.add_widget(btn131)


        def callback14(instance):
            ScreenState.mystate.dirty = True
            ScreenState.updateGui()


        btn14 = Button(text='update\nGui')
        btn14.bind(on_press=callback14)
        self.btnbar.add_widget(btn14)



        def callbackplay(instance):
            #print "replaying " + str(self.notesscroller._selectedBtn[0]) + " " + str(self.notesscroller._selectedBtn[1])
            self.notesscroller.play()

        btn4 = Button(text='Play\nselected\nChords')
        btn4.speed = 1.0
        btn4.bind(on_press=callbackplay)
        self.btnbar.add_widget(btn4)


        def callback(instance):
            ScreenState.change_state_back()

        btn = Button(text='Back')
        btn.bind(on_press=callback)
        self.btnbar.add_widget(btn)

        def changeStateCallback(instance):
            ScreenState.change_state(instance.mystate)

        btnOlgasDuty = Button(text='OlgasDuty')
        btnOlgasDuty.mystate = "OlgasDuty"
        btnOlgasDuty.bind(on_press=changeStateCallback)
        self.btnbar.add_widget(btnOlgasDuty)


        return self.btnbar