diff --git a/python_payload/control.py b/python_payload/control.py
index 3f6b5ae6abdc003494d844dd86cd4df4b8e66d70..c1fabf6be6d23510c01ce5fc479172e11a765bd0 100644
--- a/python_payload/control.py
+++ b/python_payload/control.py
@@ -55,6 +55,11 @@ class ControlSwitch(Control):
     def scroll(self,delta):
         self.enter()
 
+    def touch_1d(self,x,z):
+        if z<0: #Release
+            self.enter()
+
+
 class ControlFloat(Control):
     def __init__(self, min=0.0,max=1.0,step=0.1, *args, **kwargs):
         self.min=min
@@ -85,6 +90,18 @@ class ControlKnob(ControlFloat):
             self.set_value(v_new)
         self.draw()
 
+    def touch_1d(self,x,z):
+        if z>0: #Inital Contact
+            self._x_init = x
+
+        if z==0: #Continous contact
+            diff = self._x_init-x
+            self.scroll(5*diff)
+            
+        if z<0: #Release
+            pass
+
+
 class ControlSlide(ControlFloat):
     def __init__(self, do_reset=True, *args, **kwargs):
         self.do_reset=do_reset
@@ -95,8 +112,9 @@ class ControlSlide(ControlFloat):
             self._saved_value = self.get_value()
 
         if z==0: #Continous contact
-            v = (self.max-self.min)*x
+            v = (self.max-self.min)*x+self.min
             self.set_value(v)
+            print("c",x,v,self.max,self.min)
 
         if z<0: #Release
             if self.do_reset:
diff --git a/python_payload/demo_menu.py b/python_payload/demo_menu.py
index 84974dd652e52d15515c568db44558bde604733c..d247069e4073f127a92925d6175bc24ff2c59883 100644
--- a/python_payload/demo_menu.py
+++ b/python_payload/demo_menu.py
@@ -5,9 +5,11 @@ import control
 import audio
 import application
 
-import demo_worms,demo_sparabo,cap_touch_demo, melodic_demo, harmonic_demo
+import demo_worms, cap_touch_demo
+import demo_sparabo, melodic_demo, harmonic_demo
 import menu_settings,menu_tinysynth
 
+
 import time
 
 hardware.captouch_autocalib()
@@ -19,35 +21,35 @@ menu_apps = menu.Menu("apps")
 menu_music = menu.Menu("music")
 
 
-for app_module in [demo_sparabo,melodic_demo,harmonic_demo]:
-    menu_music.add(menu.MenuItemApp(app_module.app))
+#for app_module in [demo_sparabo,melodic_demo,harmonic_demo]:
+#    menu_music.add(menu.MenuItemApp(app_module.app))
 
 for app_module in [demo_worms,cap_touch_demo,]:
     menu_apps.add(menu.MenuItemApp(app_module.app))
 
-testmenu = menu.Menu("test")
+#testmenu = menu.Menu("test")
 
-item_add = menu.MenuItem("+")
-item_add.action = lambda x: testmenu.add(menu.MenuItem("new {}".format(len(testmenu.items))))
+#item_add = menu.MenuItem("+")
+#item_add.action = lambda x: testmenu.add(menu.MenuItem("new {}".format(len(testmenu.items))))
 
-item_sub = menu.MenuItem("-")
-item_sub.action = lambda x: testmenu.pop() if len(testmenu.items) > 4 else None
+#item_sub = menu.MenuItem("-")
+#item_sub.action = lambda x: testmenu.pop() if len(testmenu.items) > 4 else None
 
-item_foo = menu.MenuItem("foo")
-testmenu.add(item_foo)
-testmenu.add(item_sub)
-testmenu.add(item_add)
+#item_foo = menu.MenuItem("foo")
+#testmenu.add(item_foo)
+#testmenu.add(item_sub)
+#testmenu.add(item_add)
 
 
-menu_badge.add(menu.MenuItemSubmenu(testmenu))
+#menu_badge.add(menu.MenuItemSubmenu(testmenu))
 
 menu_main.add(menu.MenuItemSubmenu(menu_badge))
 menu_main.add(menu.MenuItemSubmenu(menu_apps))
-menu_main.add(menu.MenuItemSubmenu(menu_music))
+#menu_main.add(menu.MenuItemSubmenu(menu_music))
 menu_main.add(menu.MenuItemSubmenu(menu_settings.get_menu()))
 
 
-menu_music.add(menu.MenuItemSubmenu(menu_tinysynth.get_menu()))
+menu_main.add(menu.MenuItemSubmenu(menu_tinysynth.get_menu()))
 
 menu.set_active_menu(menu_main)
 menu.render()
diff --git a/python_payload/menu.py b/python_payload/menu.py
index ab88d6ca6090e6e7221af9bd3cddaac36a44bb8b..27319bea5e3a8dd59df6d212eb38852ede4d04db 100644
--- a/python_payload/menu.py
+++ b/python_payload/menu.py
@@ -11,8 +11,10 @@ class Menu():
     def __init__(self,name="menu",has_back=True):
         self.name=name
         self.items=[]
+        self.items_petal=[None for i in range(10)]
         self.__index = 0
         self.ui = ui.GroupRing(r=80)
+        self.ui2 = ui.GroupPetals(r=100) #TODO(iggy) hack, this should be composed together in ui
         self.icon = ui.IconFlower(label=name,size=80)
         self.ui.element_center = self.icon
         
@@ -29,6 +31,10 @@ class Menu():
         self.items.append(item)
         self.ui.add(item.ui)
     
+    def add_petal(self, item, petal_index):
+        self.items_petal[petal_index]=item
+        self.ui2.children[petal_index]=item.ui
+
     def pop(self):
         self.items.pop()
         self.ui.children.pop()
@@ -54,7 +60,7 @@ class Menu():
         self.icon.phi_offset = self.angle
     
     def rotate_steps(self, steps=1):
-        self.rotate_by(self.angle_step*steps)
+        self.rotate_by(-self.angle_step*steps)
         
     def _get_hovered_index(self):
         index = round(-self.angle/(math.pi*2)*len(self.items))
@@ -88,7 +94,10 @@ class Menu():
             else:
                 item.ui.has_highlight=False
             item.ui.size=30+my_extra
+        
+        self.ui2.draw()
         self.ui.draw()
+
     
 
 class MenuItem():
@@ -193,6 +202,7 @@ def on_release(d):
 def on_touch_1d(d):
     if active_menu is None:
         return
+    #print(d["radius"])
     v = min(1.0,max(0.0,((d["radius"]+25000.0)/50000.0)))
     z = 0
     if d["change"]:
@@ -201,6 +211,14 @@ def on_touch_1d(d):
     
     print("menu: touch_1d",v,z)
     hovered=active_menu.get_hovered_item()
+    
+
+    petal_idx = d["index"]
+    petal_item = active_menu.items_petal[petal_idx]
+    if petal_item:
+        petal_item.touch_1d(v,z)
+
+    
     if hasattr(hovered, "touch_1d"):
         print("hastouch")
         hovered.touch_1d(v,z)
@@ -239,7 +257,7 @@ event.Event(name="menu rotation button release",group_id="menu",
 )
 
 event.Event(name="menu 1d captouch",group_id="menu",
-    condition=lambda e: e["type"] =="captouch" and (e["value"]==1 or e["change"]) and e["index"]==9,
+    condition=lambda e: e["type"] =="captouch" and (e["value"]==1 or e["change"]) and e["index"]%2==1,
     action=on_touch_1d, enabled=True
 )
 
diff --git a/python_payload/menu_tinysynth.py b/python_payload/menu_tinysynth.py
index f186c5ab8a75f9115c0c6e4b5b85bcaaf71a6b43..de60b013570d40a764495b349bd1cbd7e82be3ea 100644
--- a/python_payload/menu_tinysynth.py
+++ b/python_payload/menu_tinysynth.py
@@ -7,9 +7,7 @@ import ui
 import hardware
 import audio
 
-
-ui_input = ui.Icon("")
-
+synth = tinysynth(440,0)
 
 def set_play(value):
     print ("set_controls_overlay")
@@ -18,42 +16,54 @@ def set_play(value):
     else:
         synth.stop()
 
-def set_volume(value):
-    db = int(value*60-40)
-    print("DB",db)
-    audio.set_volume_dB(db)
+the_freq = 440
 
 def set_frequency(value):
-    f = 440+value*440
-    synth.freq(f)
+    global the_freq
+    the_freq = value
+    synth.freq(the_freq)
     
 def set_pitch(value):
-    p = 440
-    print("p:",p)
-    synth.freq(value)
-    
+    synth.freq(the_freq+the_freq*value)
+    print("value")
+ 
 
 def get_menu():
     m = menu.Menu("tinysynth")
 
-    freq=control.ControlKnob(name="freq",on_set=set_frequency,default=0.0)
-    m.add(menu.MenuItemControl("freq",freq))
+    freq=control.ControlKnob(
+        name="freq",
+        on_set=set_frequency,
+        default=the_freq,
+        min=220,max=440*4,step=10
+    )
+    m.add_petal(menu.MenuItemControl("freq",freq), petal_index=7)
+
+
+    pitch = control.ControlSlide(
+        name="pitch",
+        on_set=set_pitch,
+        default=0,
+        min=-0.5,max=0.5
+    )
+    m.add_petal(menu.MenuItemControl("pitch",pitch), petal_index=9)
 
-    pitch = control.ControlSlide(name="pitch",on_set=set_frequency,default=0)
-    m.add(menu.MenuItemControl("pitch",pitch))
 
     vol = control.ControlKnob(name="vol",
-        #on_set=set_volume
         on_mod=audio.adjust_volume_dB,
         on_get=audio.get_volume_relative
     )
-    m.add(menu.MenuItemControl("volume",vol))
+
+    mi_vol = menu.MenuItemControl("volume",vol)
+
+    #m.add(mi_vol)
+    m.add_petal(mi_vol,1)
 
     play = control.ControlSwitch(name="play",on_set=set_play,default=False)
-    m.add(menu.MenuItemControl("play",play))
+    m.add_petal(menu.MenuItemControl("play",play), petal_index=5)
     
     return m
 
-synth = tinysynth(440,0)
+
 
 m = get_menu()
diff --git a/python_payload/ui.py b/python_payload/ui.py
index 541e688817d8b3469dbc909c08b213b25c3b5e3f..de027f4e3e75026c308805ae108a0306f4f5f7d4 100644
--- a/python_payload/ui.py
+++ b/python_payload/ui.py
@@ -224,8 +224,11 @@ class GroupRing(UIElement):
         for index in range(len(self.children)):
             #print("child",index)
             child = self.children[index]
+            if not child:
+                continue
             angle = 2*math.pi/len(self.children)*index+self.angle_offset
-            x = math.sin(angle)*self.r+pos[0]
+            #print(angle,self.r,pos[0])
+            x = -math.sin(angle)*self.r+pos[0]
             y = -math.cos(angle)*self.r+pos[1]
             #print("pos",(x,y))
             child.draw(offset=(x,y))
@@ -234,3 +237,8 @@ class GroupRing(UIElement):
         if self.element_center:
             self.element_center.has_highlight = False
             self.element_center._draw(pos)
+
+class GroupPetals(GroupRing):
+    def __init__(self,*args,**kwargs):
+        super().__init__(*args,**kwargs)
+        self.children = [None for i in range(10)]
\ No newline at end of file