Documentations of TECHMANIA projects, hosted in a repo so they can be localized.
Applies to version: 2.3
This page explains the specification of TECHMANIA’s .tech format for setlists.
If you are working on applications to parse, manipulate or convert .tech files, consider doing it in C# so you can include Setlist.cs and call Setlist.Serialize and Setlist.Deserialize, making it unnecessary to read the following.
{
"version": "1",
"setlistMetadata": {
"guid": <guid>,
"title": <title>,
"description": <description>,
"eyecatchImage": <filename of eyecatch image>,
"backImage": <filename of background image>,
"controlScheme": <control scheme>
},
"selectablePatterns": [
<selectable pattern 1>,
<selectable pattern 2>,
<...>,
<selectable pattern n>
],
"hiddenPatterns": [
<hidden pattern 1>,
<hidden pattern 2>,
<...>,
<hidden pattern n>,
]
}
version must be “1”.guid is a unique identifier of each setlist. Setlist records rely on this identifier to indicate the setlist they are on. Therefore, once a setlist is created, its GUID should never change. TECHMANIA generates a GUID when you create a new setlist, but if you need to generate your own, you can use any GUID generator, such as this one.version, guid, title, description, eyecatchImage, backImage are strings, so you need to write quotation marks around the values. controlScheme is a number, no quotation marks needed.controlScheme is 0 for Touch, 1 for Keys, and 2 for KM.setlist.tech are without folders, but with extensions. {
"trackTitle": <track title>,
"trackGuid": <track guid>,
"patternName": <pattern name>,
"patternLevel": <pattern level>,
"patternPlayableLanes": <pattern playable lanes>,
"patternGuid": <pattern guid>
},
trackTitle, trackGuid, patternName, patternGuid are strings; patternLevel and patternPlayableLanes are integers.trackGuid and patternGuid actually matter in allowing TECHMANIA to find the pattern on the player’s device; all other fields only serve informational purposes. In the default theme, these fields are used to tell the user about any pattern(s) they are missing. {
"reference": {
"trackTitle": <track title>,
"trackGuid": <track guid>,
"patternName": <pattern name>,
"patternLevel": <pattern level>,
"patternPlayableLanes": <pattern playable lanes>,
"patternGuid": <pattern guid>
},
"criteriaType": <criteria type>,
"criteriaDirection": <criteria direction>,
"criteriaValue": <criteria value>
},
reference follow the same format for selectable patterns.criteriaType, criteriaDirection and criteriaValue are all integers. They correspond to the 2 dropdowns and 1 text field under a hidden pattern that’s not the last one; check the setlist editor for explanations. On the last hidden pattern, these fields still exist but are not used.criteriaType is:
criteriaDirection is 0 for “<”, and 1 for “>”.