let create
    ?(loop_mode=NO_LOOPING)
    ~control_points =
  let ap = create' () in
    set_loop_mode ap loop_mode;
    List.iter (fun (t, cp) -> insert ap t cp) control_points;
    ap