Teach play to accept a single args Hash in addition to key-val varargs:

Previously you could only do this to pass args to a synth:

    play 50, :release, 2, :sustain, 0.2

Now, you can also pass a Hash:

    play 50, {:release => 2, :sustain => 0.2}

This means you can start playing with opts as values:

    my_opts = {:release => 2}
    your_opts = {:sustain => 0.2}
    merged_opts = my_opts.merge(your_opts)
    play 50, merged_opts