See craigsapp/humlib#53 for further informations.
Based on the hint -l
command it should be possible to create a filter for Humdrum that adds spines
for automatic detection of the figured bass numbers. For each part separately as
Intervallsatz, or as real basso continuo numbers.
With the hint command you get specific intervals like e.g. "major third" (M3) or "minor third" (m3). But with figured bass it does not matter if an interval is major or minor. Instead the relation to the key and the key signature needs to be taken into account.
An implementation into the Verovio JS toolkit would be appreciated to create
such an analysis on the fly in the browser. Similar to the existing cint
filter.
Here is a test set of what I think this command should be capable of.
Calculate the exact intervall without converting compound to non-compound intervals.
NB: In bar 6 on the second 16th note the alt voice goes below the bass note.
-2
of even -2#
seems like the correct intervall here (see problem 3) but it
cannot be displayed by Verovio.
Calculate the the compound intervals. -c
could be the argument here similar to
the hint commnad.
Merge both Intervalsätze from example 1 to a single figured bass line.
Merge both Intervalsätze from example 2 to a single figured bass line. Again
with the -c
flag.
Same as example 4 but with simplified figured bass numbering.
Close to example 5 but opinionated to leave out all unnecessary numbers for a practical basso continuo player. Something close to this can be achieved by just displaying numbers on every eighth note (see problem 8).
- Name of the command is tbd.
- Calculating intervals relativ to a specified spine seems usefull so it would be possible to pass different voices as base via arguments to the command.
- Could there be an argument to always calculate the intervals relative to the lowest note, ignoring the given base voice/staff? Since there is music where the lowest note is not always in the bass.
- Should negative value be allowed?
- Should there be a difference between 1 and 8 for the compounded modes?
- How could we calculate the difference between 2 and 9 for the compounded modes?
- Negative values are not allowed in
**fb
spines since the-
get translated into a flat accidental. Should this be implementet or does this need a new interpretation records? - Add option to only calculate intervals or figured bass on certain beats (quarter notes in 4/4, oder 1st and 4th eighth note in 6/8).
- How can we get this command in VHV and the Verovio JavaScript toolkit?
- Add an option to ignore negative intervals?
- Decide how to display
5 4
to6 4
in bar 7 (with 5 or without). Maybe add a config with a flag. - Decide how to display
5 3
chords. Never? Always? Contextual? Maybe add a config with a flag. - Should
-#2
in bar 7 resolte to 1 or 8 in example 5 (simplified figured bass)? -c
option should be default with another flag to display them not compounded.