Che testa… c’è il comando \chorlocals che è fatto apposta per ridefinire localmente tutto quello che si vuole all’interno degli accordi!
Ho differenziato \bassfont a seconda che dopo la / ci sia una lettera o un numero. Ma c’è un modo più elegante per dire “se il codice di categoria di quel che segue è 11…” rispetto a quel che ho scritto io?
Fran
`% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[noindexes]{songs} %(songs 2.14 da http://songs.sourceforge.net/)
\makeatletter
\def\bassfont{\futurelet\next\@bassverify}
\def\@basstrue{\hspace{-0.3em}/\hspace{-0.1em}\footnotesize}
\def\@bassfalse{/}
\def\@bassverify{%
\ifcat\next f
\@basstrue
\else
\@bassfalse
\fi}
\makeatother
\renewcommand{\chordlocals}{\catcode`/\active}
{\chordlocals\global\let/\bassfont}
\begin{document}
\begin{songs}{}
\beginsong{Casa}
\beginverse
\[D]Cia/o a \[C/E]tut\[A7/4]ti
\endverse
\endsong
\end{songs}
\end{document}`