[Tex/LaTex] reduce space before and after verse environment

spacing

I want to reduce globally in a document the vertical space before and after a verse environment. The MWE shows the problem, with output:
Imgur

I would like not to use other packages, because I want to learn some low-level commands. I know that verse is based on a list environment. A related answer (How to eliminate vertical space before and after verse environment?) seems overly complex, and uses the verse package (not the built-in version). Surely there is a way to

\setlength{\versesep}{0pt}

or something like it?

Or (since I am using xpatch package anyway), could I do something like

\xpatchcmd\verse{\...

But I don't know how to find the original code for the verse environment, and so I don't know which line to modify.

\documentclass[12pt,oneside]{article}

\setlength{\parindent}{0pt}
\setlength{\parskip}{1em}

\begin{document}

This is a paragraph.

This is another paragraph.  Separated nicely.

\begin{verse}
This is some\\
lovely verse,\\
that has too much space\\
on top and below.
\end{verse}

I would really like not as much space above and below.  Just one parskip would be sufficient.

But other paragraphs should be spaced with parskip.

\end{document}

Best Answer

Remove the added \parskip by reducing \topsep:

\documentclass[12pt,oneside]{article}
\usepackage{xpatch}

\setlength{\parindent}{0pt}
\setlength{\parskip}{1em}
\xpatchcmd{\verse}{\itemsep}{\advance\topsep-\parskip\itemsep}{}{}

\begin{document}

This is a paragraph.

\begin{verse}
This is some\\
lovely verse,\\
that has too much space\\
on top and below.
\end{verse}

I would really like not as much space above and below.  Just one parskip would be sufficient

I would really like not as much space above and below.  Just one parskip would be sufficient

\end{document}

enter image description here