TcaXML 1.0 File Format

Version 1.0.0 (2025-04-16)
Copyright © 2025 Dominik Hörnel

TcaXML 1.0.0 is used in tonica 17

This documentation has been automatically generated from the TcaXML-Schema Definition
The basic types (used in this definition: xsd:int, xsd:decimal, xsd:nonNegativeInteger, xsd:positiveInteger, xsd:boolean, and xsd:string) are not documented here. See the W3C Schema recommendation.

Contents

Root Element

score

Alphabetical Index

All Types

AlternationPattern Ambitus AnalyzeOptions Barline BarlineType Brackets CanonOptions CanonVoice CanonVoiceOptions Chord ChordScheme Clef ComposeOptions ComposeSettings Degree DiceGameOptions DisplayParallels DocumentSettings DoubleInterval DoubleVoiceOptions EntranceInterval FiguredBass FiguredBassOptions FugueOptions FugueVoice FugueVoiceOptions Function FunctionAlteration FunctionType Gap Gap32 HarmonicAnalysisDistance Harmonies HarmonizationRhythm Harmony HarmonyRepresentation HorizAlign Info InsertCadences Jazz JazzAlteration Key Layout MaxMeasures MidiNumber Mode Note NoteAlteration Notes PageNumPos Pages PaperNorm Parallel PatternOptions Pitch Score SecondaryDominant SoundMap StaffLayout Staffline Staves Strategy SubjectForm Tempo Time TimeResolution TimeUnit TimeUnit16 Title Triplet VariationOptions VariationRhythm VariationVoiceOptions VoiceLeadingOptions VoiceRange Volta

Complex Types

Ambitus AnalyzeOptions Barline Brackets CanonOptions CanonVoice CanonVoiceOptions Chord ComposeOptions ComposeSettings DiceGameOptions DocumentSettings DoubleVoiceOptions FiguredBass FiguredBassOptions FugueOptions FugueVoice FugueVoiceOptions Function Harmonies Harmony Info Jazz Key Layout Note Notes PageNumPos Pages PatternOptions Score SoundMap StaffLayout Staves Title VariationOptions VariationVoiceOptions VoiceLeadingOptions VoiceRange

Group Types

Simple Types

AlternationPattern BarlineType ChordScheme Clef Degree DisplayParallels DoubleInterval EntranceInterval FunctionAlteration FunctionType Gap Gap32 HarmonicAnalysisDistance HarmonizationRhythm HarmonyRepresentation HorizAlign InsertCadences JazzAlteration MaxMeasures MidiNumber Mode NoteAlteration PaperNorm Parallel Pitch SecondaryDominant Staffline Strategy SubjectForm Tempo Time TimeResolution TimeUnit TimeUnit16 Triplet VariationRhythm Volta

Root Element

NameType
scoreScore

Complex Types

Score

Tonica score format introduced with version 17
Complex Type
Elements
NameTypeOccurrence
infoInfo1
documentSettingsDocumentSettings1
composeSettingsComposeSettings1

Info

Basic metadata about the score
Complex Type
Elements
NameTypeOccurrence
encodingSoftwarexsd:string0 ... 1
authorxsd:string0 ... 1
rightsxsd:string0 ... 1
commentxsd:string0 ... 1

DocumentSettings

Tonica document settings
Complex Type
Elements
NameTypeOccurrence
titleTitle1
layoutLayout1
pageNumPosPageNumPos1
mainTimeTime1
mainKeyKey1
timeResolutionTimeResolution1
harmonyRepresentationHarmonyRepresentation1
soundMapSoundMap1
tempoTempo1
notesNotes0 ...
harmoniesHarmonies1
barlines
Complex Type
Elements
NameTypeOccurrence
barlineBarline0 ...
1

Title

Score title with placement
Complex Type
Attributes
NameTypeDefault
xGap32 required
yGap32 required
alignHorizAlign ""
Contentxsd:string

Layout

Score layout
Complex Type
Attributes
NameTypeDefault
systemsTopxsd:int required
systemsBetweenxsd:int required
Elements
NameTypeOccurrence
pagesPages1
stavesStaves1
bracketsBrackets1

Pages

Page layout
Complex Type
Attributes
NameTypeDefault
paperSizePaperNorm required
landscapexsd:boolean "false"

Staves

Complex Type
Elements
NameTypeOccurrence
staffLayoutStaffLayout1 ...

StaffLayout

Staff layout
Complex Type
Attributes
NameTypeDefault
topGap required
bottomGap required
defaultClefClef required
instrumentNamexsd:string required
instrumentAbbrevxsd:string required
pairNamexsd:string ""
pairAbbrevxsd:string ""

Brackets

Brackets
Complex Type
Elements
NameTypeOccurrence
bracket
Complex Type
Attributes
NameTypeDefault
fromxsd:int required
toxsd:int required
curlyxsd:boolean "false"
0 ...

PageNumPos

Page numbers position
Complex Type
Attributes
NameTypeDefault
xGap32 required
yGap32 required
alignHorizAlign ""

Key

Key signature specified by position in the circle of fifths and by mode. Example "F minor": fifths = -4, mode = minor
Complex Type
Attributes
NameTypeDefault
fifths
Subtype
Basexsd:int
SubsetMinimum: "-7"
Maximum: "7"
required
modeMode required

SoundMap

Complex Type
Elements
NameTypeOccurrence
map
Sound mapping for voice number. Transpose is used for transposing instruments.
Complex Type
Attributes
NameTypeDefault
voicexsd:int required
instrumentMidiNumber required
devicexsd:string ""
soundxsd:string ""
genericSoundxsd:string ""
volumexsd:int required
transposexsd:int ""
Elements
NameTypeOccurrence
1 ...

Notes

Chord notes for voice in staff
Complex Type
Attributes
NameTypeDefault
voicexsd:int required
staffxsd:int required
composeVoicexsd:boolean
Specifies whether voice is used for composition
required
melodyVoicexsd:boolean
Is set when voice is the melody voice. Only one voice can be the melody voice.
"false"
Elements
NameTypeOccurrence
chordChord0 ...

Chord

Chord properties
Complex Type
Attributes
NameTypeDefault
durationTimeUnit required
fermataxsd:boolean "false"
beamedxsd:boolean "false"
tiedxsd:boolean "false"
tripletTriplet "none"
voltaVolta "none"
fillerxsd:boolean
Is used for filler rests which are invisible in print
"false"
trillxsd:boolean "false"
Elements
NameTypeOccurrence
noteNote1 ...

Note

Chord note properties
Complex Type
Attributes
NameTypeDefault
pitchPitch required
accidentalNoteAlteration required
lineStaffline required

Harmonies

Harmonies
Complex Type
Elements
NameTypeOccurrence
harmonyHarmony0 ...

Harmony

Harmony (function, jazz or figured bass)
Complex Type
Elements
NameTypeOccurrence
Choice
NameTypeOccurrence
functionFunction1
jazzJazz1
figuredBassFiguredBass1
1...
modulationKey1

Function

Function according to function theory, degree theory or Roman numeral notation
Complex Type
Attributes
NameTypeDefault
functionTypeFunctionType "none"
parallelParallel "none"
secondaryDominantSecondaryDominant "none"
bassDegree "0"
add1
Subtype
Basexsd:string
SubsetRegular Expression: "[0-9]"
Regular Expression: "n"
First additional tone: number 1-9 (e.g. 7), n = neapolitan chord (s n), 0 = none
"0"
alter1FunctionAlteration
Alteration of first additional tone (e.g. 7>)
"0"
add2
Subtype
Basexsd:int
SubsetMinimum: "0"
Maximum: "9"
Second additional tone: number 1-9 (e.g. 9), 0 = none
"0"
alter2FunctionAlteration
Alteration of second additional tone
"0"
shortenedxsd:boolean
Shortened, i.e. base tone missing (e.g. \D7)
"false"

Jazz

Jazz notation
Complex Type
Attributes
NameTypeDefault
rootDegree "0"
rootShiftJazzAlteration "0"
modifier1xsd:string
First modification of basic chord (e.g. maj7)
""
modifier2xsd:string
Second modification of basic chord (e.g. b9)
""
bassDegree "0"
bassShiftJazzAlteration "0"

FiguredBass

Figured bass notation
Complex Type
Attributes
NameTypeDefault
chordxsd:boolean
Does bass note have a chord?
"true"
anticipationxsd:boolean
Does bass note have an anticipated chord?
"false"
Elements
NameTypeOccurrence
numerals
Complex Type
Elements
NameTypeOccurrence
numeralxsd:string0 ... 3
0 ... 1

Barline

Explicit barline, e.g. used for upbeat and repetition
Complex Type
Attributes
NameTypeDefault
timeTimeUnit required
barlineTypeBarlineType "single"

ComposeSettings

Settings for tonica composition and analysis
Complex Type
Elements
NameTypeOccurrence
composeOptionsComposeOptions1
analyzeOptionsAnalyzeOptions1
variationOptionsVariationOptions1
patternOptionsPatternOptions1
canonOptionsCanonOptions1
fugueOptionsFugueOptions1
figuredBassOptionsFiguredBassOptions1
doubleVoiceOptionsDoubleVoiceOptions1
voiceLeadingOptionsVoiceLeadingOptions1
diceGameOptionsDiceGameOptions1
composeAmbitusAmbitus1
variationAmbitusAmbitus1
counterpointAmbitusAmbitus1
voiceAmbitusAmbitus1

ComposeOptions

Options for composing
Complex Type
Attributes
NameTypeDefault
harmonizationStylexsd:string required
harmonizationRhythmHarmonizationRhythm required
strategyStrategy required
preferNarrowRangexsd:boolean required
insertCadencesInsertCadences required
randomCadencesxsd:boolean required
considerSpecifiedModulationsxsd:boolean required
fastComputationxsd:boolean required

AnalyzeOptions

Options for harmonic analysis
Complex Type
Attributes
NameTypeDefault
harmonicAnalysisDistanceHarmonicAnalysisDistance required
selectDistanceDynamicallyxsd:boolean required
chordSchemeChordScheme required
detectModulationsxsd:boolean required
considerSpecifiedModulationsxsd:boolean required

VariationOptions

Options for variations
Complex Type
Attributes
NameTypeDefault
variationStylexsd:string required
variationRhythmVariationRhythm required
determineFirstMotifTonexsd:boolean required
Elements
NameTypeOccurrence
voiceOptionsVariationVoiceOptions1

VariationVoiceOptions

Voice options for variations. This may be a fixed voice, a list of randomly alternating voices, or sequence of repeating voices defined by an alternation pattern. If you select -1 as an alternating voice it may happen that no variation motif appears at a time.
Complex Type
Elements
NameTypeOccurrence
Choice
NameTypeOccurrence
fixedVoicexsd:int1
alternatingVoicexsd:int0 ...
alternationPatternAlternationPattern1
1...

PatternOptions

Options for accompanying patterns
Complex Type
Attributes
NameTypeDefault
accompanyingStylexsd:string required
harmonizationRhythmHarmonizationRhythm ""
tempoTempo ""
accompanyingInstrumentMidiNumber ""

CanonOptions

Canon options
Complex Type
Attributes
NameTypeDefault
varyAccompanimentxsd:boolean required
voiceCountxsd:int required
entranceIntervalEntranceInterval required
maxMeasuresMaxMeasures required
Elements
NameTypeOccurrence
voiceOptionsCanonVoiceOptions1

CanonVoiceOptions

Voice options for canons
Complex Type
Elements
NameTypeOccurrence
canonVoiceCanonVoice1 ...

CanonVoice

Canon voice
Complex Type
Attributes
NameTypeDefault
voicexsd:int required
entranceVoicexsd:int required
subjectFormSubjectForm required

FugueOptions

Fugue options
Complex Type
Attributes
NameTypeDefault
formSchemexsd:string required
varyAccompanimentxsd:boolean required
subjectOverlapTimeUnit16 required
Elements
NameTypeOccurrence
voiceOptionsFugueVoiceOptions1 ...

FugueVoiceOptions

Voice options for fugues
Complex Type
Elements
NameTypeOccurrence
fugueVoiceFugueVoice1 ...

FugueVoice

Fugue voice
Complex Type
Attributes
NameTypeDefault
voicexsd:int required
allocatedVoicexsd:int required

FiguredBassOptions

Figured bass options
Complex Type
Attributes
NameTypeDefault
openPositionxsd:boolean required

DoubleVoiceOptions

Double voice options
Complex Type
Attributes
NameTypeDefault
doubleVoicexsd:int required
intervalDoubleInterval required

VoiceLeadingOptions

Voice leading options
Complex Type
Attributes
NameTypeDefault
displayParallelsDisplayParallels required
checkPhraseTransitionsxsd:boolean required

DiceGameOptions

Dice game options
Complex Type
Attributes
NameTypeDefault
diceGameStylexsd:string required

Ambitus

Ambitus (voice ranges)
Complex Type
Elements
NameTypeOccurrence
voiceRangeVoiceRange1

VoiceRange

Ambitus (voice ranges)
Complex Type
Attributes
NameTypeDefault
voicexsd:int required
maxPitchMidiNumber required
minPitchMidiNumber required

Group Types

Simple Types

Time

Subtype
Basexsd:string
SubsetRegular Expression: "allaBreve"
Regular Expression: "C"
Regular Expression: "([1-9]|1[0-6])/(1|2|4|8|16)"
Allowed values:
"C", "allaBreve", or n/d with
  • n in {1,...,16}
  • d in {1,2,4,8,16}
e.g.: "3/4", "7/16"

TimeResolution

Subtype
Basexsd:int
Subsetno restriction (provided for documentation only)
Number of time units per whole note, e.g. 48 = 16th triplet resolution

HarmonyRepresentation

Subtype
Basexsd:string
Subset"functionalTheory"
"romanNumeral"
"degrees"
"jazz"
"figuredBass"
"none"
Harmony representations supported in tonica:
  • Riemann Functional notation
  • Roman Numeral notation
  • Scale degrees notation
  • Jazz notation
  • Baroque Figured Bass notation

Tempo

Subtype
Basexsd:int
SubsetMinimum: "30"
Maximum: "300"
Tempo in quarters per minute

Gap32

Subtype
Basexsd:decimal
Subsetno restriction (provided for documentation only)
Staffline distance. tonica uses multiples of .03125 = 1/32.

HorizAlign

Subtype
Basexsd:string
Subset"left"
"center"
"right"
Horizontal text alignment

PaperNorm

Subtype
Basexsd:string
Subset"A4"
"B4"
"A5"
"B5"
"A3"
"Letter"
"Legal"
"Tabloid"
Paper formats

Gap

Subtype
Basexsd:int
Subsetno restriction (provided for documentation only)
Staffline distance

Clef

Subtype
Basexsd:string
SubsetRegular Expression: "treble"
Regular Expression: "bass"
Regular Expression: "alto"
Regular Expression: "tenor"
Regular Expression: "[GCFPNU][12345][\-0\+]?"
one of the 4 common clefs or a concatenation of
  • one of G,C,F,P,N,U (clef type)
  • one of 1,2,3,4,5 (line)
  • [one of -,0,+ (octave)]
e.g.: "G3-" (G-clef on middle line, octava bassa)

Mode

Subtype
Basexsd:string
Subset"major"
"minor"
Key modes

MidiNumber

Subtype
Basexsd:int
SubsetMinimum: "0"
Maximum: "127"
MIDI numbers

TimeUnit

Subtype
Basexsd:int
Subsetno restriction (provided for documentation only)
Number of time units (duration) in time resolution

Triplet

Subtype
Basexsd:string
Subset"none"
"start"
"middle"
"end"
Note triplet position

Volta

Subtype
Basexsd:string
Subset"none"
"first"
"second"
Note volta number

Pitch

Subtype
Basexsd:int
SubsetMinimum: "-1"
Chromatic pitch number relative to key root. For C major a' = 57. -1 is used for rests.

NoteAlteration

Subtype
Basexsd:string
Subset"doubleFlat"
"flat"
"none"
"sharp"
"doubleSharp"
"natural"
Note alteration

Staffline

Subtype
Basexsd:int
Subsetno restriction (provided for documentation only)
Staff line position:
                    28		--
26 --
24 --
22 --
20 --
18 ------------------------------------
16 ------------------------------------
14 ------------------------------------
12 ------------------------------------
10 ------------------------------------
8 --
6 --
4 --
2 --
0 --

FunctionType

Subtype
Basexsd:string
Subset"none"
"tonic"
"subdominant"
"dominant"
"tonicMinor"
"subdominantMinor"
"dominantMinor"
"doubleSubdominant"
"doubleDominant"
Harmonic functions, i.e. T, S, D, t, s, d, SS, DD

Parallel

Subtype
Basexsd:string
Subset"none"
"major"
"minor"
"counterMajor"
"counterMinor"
Function parallels, e.g. tP, Tp, tG, Tg

SecondaryDominant

Subtype
Basexsd:string
Subset"none"
"subdominant"
"dominant"
"tonicParallel"
"subdominantParallel"
"dominantParallel"
Secondary dominants, e.g. (D)S, (D)D = DD, (D)Tp, (D)Sp, (D)Dp

Degree

Subtype
Basexsd:int
SubsetMinimum: "0"
Maximum: "7"
Scale degree (1-7), 0 = none

FunctionAlteration

Subtype
Basexsd:int
SubsetMinimum: "-1"
Maximum: "1"
Function alteration: -1 = b, 0 = none, 1 = #

JazzAlteration

Subtype
Basexsd:int
SubsetMinimum: "-2"
Maximum: "2"
Double alteration: i.e. -2 = bb, -1 = b, 0 = none, 1 = #, 2 = x

BarlineType

Subtype
Basexsd:string
Subset"single"
"double"
"end"
"repEnd"
"repBegin"
"repEndBegin"
Barline types

HarmonizationRhythm

Subtype
BaseTimeUnit16
Subset"16"
"12"
"8"
"6"
"4"
"3"
"2"
Determines the rhythm of the harmonization (such as quarter notes or dotted rhythms)

Strategy

Subtype
Basexsd:string
Subset"bestSolution"
"alternativeSolutions"
Generally tonica will determine a composition by choosing the most likely harmony (best solution). Alternative solutions are created by interpreting the neural network output as estimated posterior probabilities.

InsertCadences

Subtype
Basexsd:string
Subset"anywhere"
"atPhraseEnd"
"never"
Determines if or where tonica may insert cadences. You can choose between overall and at phrase end. Phrase ends must be marked by fermata.

HarmonicAnalysisDistance

Subtype
BaseTimeUnit16
Subset"16"
"12"
"8"
"6"
"4"
"3"
"2"
"1"
Determines the distance of the harmonic analysis (such as quarter notes).

ChordScheme

Subtype
Basexsd:string
Subset"baroqueStyle"
"romanticStyle"
"classicalMusic"
"jazz"
Determines the style on which harmonic analysis is based

VariationRhythm

Subtype
BaseTimeUnit16
Subset"8"
"6"
"4"
"3"
Determines the duration of a variation motif (e.g. quarter notes).

AlternationPattern

Subtype
Basexsd:string
SubsetRegular Expression: "([0-9]| )*"
Specifies the order in which voices are used create variations. "03 012" for example means that the first variation motif is to be in the first used voice, the second in the fourth voice, the next motif is not varied (Space), then again the first, second and third voice. This sequence will be repeated until the end of the variation. Works for up to ten voices.

EntranceInterval

Subtype
Basexsd:int
SubsetMinimum: "0"
Maximum: "11"
Determines how many semitones away from the previous voice a voice shall enter

MaxMeasures

Subtype
Basexsd:int
SubsetMinimum: "0"
Maximum: "9999"
Maximum duration in number of measures

SubjectForm

Subtype
Basexsd:string
Subset"rectus"
"inversus"
"retrograde"
"inverseRetrograde"
Determines a subject form. This can be the original form (rectus) or vertically/horizontally mirrored (inversus, retrograde, inverse retrograde).

TimeUnit16

Subtype
Basexsd:int
Subsetno restriction (provided for documentation only)
Number of time units (duration) in 16th notes

DoubleInterval

Subtype
Basexsd:int
SubsetMinimum: "1"
Maximum: "7"
Interval for voice doubling in number of diatonic steps. e.g. 2 = third

DisplayParallels

Subtype
Basexsd:string
Subset"doNotShow"
"onlyShowGenuineParallels"
"showHiddenParallelsInOuterVoices"
"showHiddenParallelsInAllVoices"
Determines which parallels are considered during score check