...Expressing them as semitones is not an option, as I want my interval representation to carry semantic information about what the intention with the interval was.
I'm not entire sure what you mean. But in music the difference between mere semitone count and the "semantic" meaning of an interval, the musical meaning of an interval, comes from how the interval is spelled and placed within a tonality. This is not a theoretical nit pick, it has practical application and gets to the very heart of understand an interval in a tonal context, the "semantic" meaning.
But first the answer to your question: yes, you can have double diminished and augmented intervals. There really is much to it other than you can make such intervals and they will be impractical in most cases, because they could be rewritten enharmonically as something much easier to understand. You could have a double diminished fifth C G𝄫
but it is probably easier in most cases to call it a perfect fourth C F
.
You can continue the concept with triple, quadruple, etc. But it will be the same situation as the doubled cases. It's not very practical.
How you account for these intervals depends what you are doing with your program. On the one hand this is all a numbers game of counting semitones and then mapping to the gamut of letters ABCDEFG
using accidentals. It just a mix of counting bases, with a funny symbol set of ABCDEFG♮♯♭𝄪𝄫
, otherwise it's just number and theoretically infinite.
About the "semantic" aspect and semitone count. You could have a programming object with properties or methods for expressing them, like interval.type()
, interval.quality()
, interval.spelling()
, interval.semitones()
, etc.
Possibly you could even have a function to get a kind of musical function if the interval was placed into a key. Give a key of C
and an interval of A♭4 F♯5
, invert it to a tertian stack of F♯ A♭
the root is an altered F
, the "function" is an altered subdominant ♯iv
. Such a function is tricky, for a number of reason, but it could be an interesting experiment. The important thing is something like this would be necessary to truly get the "semantic" meaning of an interval. Intervals don't have such meaning, at least in tonal music, until they are placed within a key.