synthesis_ys[synthesis_i] = client_to_y(e.clientY - canvas_rect.top);
            synthesis_draw(e.clientX - canvas_rect.left, e.clientY - canvas_rect.top, false); // double work
        }
    }, false);

    synthesis.addEventListener('mousedown', function(e){
        var canvas_rect = synthesis.getBoundingClientRect();
        synthesis_xs[synthesis_i] = client_to_x(e.clientX - canvas_rect.left);
        synthesis_ys[synthesis_i] = client_to_y(e.clientY - canvas_rect.top);
        synthesis_draw(e.clientX