   else if tree.op == '*'
     me = ++tail
     multiplier = ++tail
-    p "nodes[#{me}] = ctx.createGain();  // multi(#{me})"
+    p "nodes[#{me}] = ctx.createGain();"
     p "nodes[#{multiplier}] = nodes[#{me}].gain;"
     p "nodes[#{multiplier}].value = 0.0;"
     _generate tree.l, {dest: me}
     _generate tree.r, {dest: multiplier}
     if ctx.dest
-      c "nodes[#{me}].connect(nodes[#{ctx.dest}]); // to output from multi(#{me})"
+      c "nodes[#{me}].connect(nodes[#{ctx.dest}]);"
     return me
   else if tree.op == '/'
     throw "division is not supported :P"

    tree = Alligata.parser.parse(expression)
  catch e
    throw "Parse error: #{e}"
  console.log tree
  # $('#tree').val( JSON.stringify tree )
  # p "nodes[0] = io['output'] = ctx.createGain()"
  try

      ctx.subdest = ++tail
      p "nodes[#{ctx.subdest}] = ctx.createGain();"
      p "nodes[#{ctx.subdest}].gain.value = -1"
      c "nodes[#{ctx.subdest}].connect(nodes[#{ctx.dest}]);"
    if ctx.sub
      _generate tree.l, {sub:1, dest:ctx.dest, subdest:ctx.subdest}
      _generate tree.r, {sub:1, dest:ctx.dest, subdest:ctx.subdest}
