...
\version "2.24.0"
\language "english"
music = { g8 g g g }
upArticulation = { g8 g-\upbow g g }
downArticulation = { g8 g-\upbow g g }
<<
\new Dynamics
\upArticulation
\new Staff
\music
\new Dynamics
\downArticulation
>>
I goofed in my code. It doesn't make any allowance for articulations that change direction depending on whether they're above or below the staff (fermata, for example). So a bit of a change is in order:
\version "2.24.0"
\language "english"
music = { g8 g g g }
upArticulation = { g8 g-\upbow g-\fermata g }
downArticulation = { g8 g-\upbow g-\fermata g }
<<
\new Dynamics \with {
\override Script.direction = #UP }
{ \upArticulation }
\new Staff
\music
\new Dynamics \with {
\override Script.direction = #DOWN }
{ \downArticulation }
>>
An alternative would be to explicitly declare the direction by changing:
upArticulation = { g8 g-\upbow g-\fermata g }
downArticulation = { g8 g-\upbow g-\fermata g }
to:
upArticulation = { g8 g^\upbow g^\fermata g }
downArticulation = { g8 g_\upbow g_\fermata g }