File: drumkit_pattern.xsd

package info (click to toggle)
hydrogen 1.2.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 83,860 kB
  • sloc: xml: 75,490; cpp: 75,443; sh: 871; python: 238; ruby: 219; makefile: 158; javascript: 130; php: 90; ansic: 26
file content (94 lines) | stat: -rw-r--r-- 2,975 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.hydrogen-music.org/drumkit_pattern"
	xmlns:h2="http://www.hydrogen-music.org/drumkit_pattern"
	elementFormDefault="qualified">

<!-- BOOL -->
<xsd:simpleType name="bool">
	<xsd:restriction base="xsd:string">
		<xsd:enumeration value="true"/>
		<xsd:enumeration value="false"/>
	</xsd:restriction>
</xsd:simpleType>

<!-- PSFLOAT - positive small float [0.0; 1.0] -->
<xsd:simpleType name='psfloat'>
	<xsd:restriction base='xsd:float'>
		<xsd:minInclusive value='0.0'/>
		<xsd:maxInclusive value='1.0'/>
	</xsd:restriction>
</xsd:simpleType>

<!-- PSFLOAT - small float [-1.0; 1.0] -->
<xsd:simpleType name='psfloat_sym'>
	<xsd:restriction base='xsd:float'>
		<xsd:minInclusive value='-1.0'/>
		<xsd:maxInclusive value='1.0'/>
	</xsd:restriction>
</xsd:simpleType>

<!-- PSFLOAT - positive small float [0.0; 0.5] -->
<xsd:simpleType name='psfloat5'>
	<xsd:restriction base='xsd:float'>
		<xsd:minInclusive value='0.0'/>
		<xsd:maxInclusive value='0.5'/>
	</xsd:restriction>
</xsd:simpleType>

<!-- NOTE -->
<xsd:element name="note">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:element name="position"	type="xsd:nonNegativeInteger"/>
			<xsd:element name="leadlag"		type="xsd:float"/>
			<xsd:element name="velocity"	type="h2:psfloat"/>
			<xsd:choice minOccurs="0" maxOccurs="1">
			  <xsd:sequence>
				<xsd:element name="pan_L"		type="h2:psfloat5"/>
				<xsd:element name="pan_R"		type="h2:psfloat5"/>
			  </xsd:sequence>
			  <xsd:element name = "pan"		type="h2:psfloat_sym"/>
			</xsd:choice>
			<xsd:element name="pitch"		type="xsd:float"/>
			<xsd:element name="key"			type="xsd:string"/>
			<xsd:element name="length"		type="xsd:integer"/>
			<xsd:element name="instrument"	type="xsd:integer"/>
			<xsd:element name="note_off"	type="h2:bool"/>
			<xsd:element name="probability"	type="xsd:float"/>
		</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="pattern">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:element name="name"		type="xsd:string"/>
			<xsd:element name="info"		type="xsd:string"/>
			<xsd:element name="category"	type="xsd:string"/>
			<xsd:element name="size"		type="xsd:nonNegativeInteger"/>
			<xsd:element name="denominator"	type="xsd:nonNegativeInteger" minOccurs="0"/>
			<xsd:element name="noteList">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="h2:note" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
</xsd:element>

<!-- DRUMKIT PATTERN -->
<xsd:element name="drumkit_pattern">
	<xsd:complexType>
		<xsd:sequence>
			<xsd:element name="drumkit_name"	type="xsd:string"/>
			<xsd:element name="author"			type="xsd:string"/>
			<xsd:element name="license"			type="xsd:string"/>
			<xsd:element ref="h2:pattern" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:element>

</xsd:schema>