app.gainforest.ac.audio
Schema Diff
+2 -1
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"id": "app.gainforest.ac.audio",
3
3
"defs": {
4
4
"main": {
5
5
"key": "tid",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"blob",
11
11
"metadata",
12
12
"createdAt"
13
13
],
14
14
"properties": {
15
15
"blob": {
16
16
"ref": "app.gainforest.common.defs#audio",
17
17
"type": "ref",
18
18
"description": "The audio file blob stored on the PDS."
19
19
},
20
20
"name": {
21
21
"type": "string",
22
22
"description": "A short human-readable name or label for this audio recording.",
23
23
"maxGraphemes": 256
24
24
},
25
25
"tags": {
26
26
"type": "array",
27
27
"items": {
28
28
"type": "string",
29
29
"maxGraphemes": 64
30
30
},
31
31
"maxLength": 20,
32
32
"description": "Freeform tags for the recording (e.g., 'dawn-chorus', 'rain', 'chainsaw', 'anthropogenic-noise'). Aligns with AC ac:tag."
33
33
},
34
34
"license": {
35
35
"type": "string",
36
36
"description": "License for this recording (e.g., CC-BY-4.0, CC0-1.0). Aligns with AC dcterms:rights.",
37
37
"maxGraphemes": 256
38
38
},
39
39
"siteRef": {
40
40
"type": "string",
41
41
"format": "at-uri",
42
42
"description": "AT-URI of the organization site record where this audio was captured."
43
43
},
44
44
"metadata": {
45
45
"ref": "#metadata",
46
46
"type": "ref",
47
47
"description": "Technical audio metadata (codec, sample rate, duration, frequency bounds, etc.)."
48
48
},
49
49
"createdAt": {
50
50
"type": "string",
51
51
"format": "datetime",
52
52
"description": "Timestamp of record creation in the ATProto PDS."
53
53
},
54
54
"thumbnail": {
55
55
"ref": "app.gainforest.common.defs#imageThumbnail",
56
56
"type": "ref",
57
57
"description": "Thumbnail image for display in list views."
58
58
},
59
59
"recordedBy": {
60
60
"type": "string",
61
61
"description": "Name of the person or agent who made the recording. Aligns with AC dc:creator. For automated deployments, this is the person who deployed the device.",
62
62
"maxGraphemes": 512
63
63
},
64
64
"description": {
65
65
"ref": "app.gainforest.common.defs#richtext",
66
66
"type": "ref",
67
67
"description": "A longer human-readable description of the audio recording content."
68
68
},
69
69
"spectrogram": {
70
70
"ref": "app.gainforest.common.defs#spectrogram",
71
71
"type": "ref",
72
72
"description": "Spectrogram image of the recording (visual frequency-time representation)."
73
73
},
74
74
"deploymentRef": {
75
75
"type": "string",
76
76
"format": "at-uri",
77
77
"description": "AT-URI of the ac.deployment record describing the recording device setup (device model, gain, location, schedule, etc.)."
78
78
},
79
79
"occurrenceRef": {
80
80
"type": "string",
81
81
"format": "at-uri",
82
82
"description": "AT-URI of the dwc.occurrence record this audio is evidence for. Use when this recording documents a specific species detection or biodiversity observation."
83
83
}
84
84
}
85
-
}
85
+
},
86
+
"description": "An audio recording record with technical metadata and optional links to occurrence, deployment, and site records."
86
87
},
87
88
"metadata": {
88
89
"type": "object",
89
90
"required": [
90
91
"channels",
91
92
"duration",
92
93
"sampleRate",
93
94
"recordedAt"
94
95
],
95
96
"properties": {
96
97
"codec": {
97
98
"type": "string",
98
99
"description": "Audio codec (e.g., 'PCM', 'FLAC', 'MP3', 'AAC').",
99
100
"maxGraphemes": 32
100
101
},
101
102
"bitDepth": {
102
103
"type": "integer",
103
104
"maximum": 64,
104
105
"minimum": 8,
105
106
"description": "Bits per sample (e.g., 16, 24, 32)."
106
107
},
107
108
"channels": {
108
109
"type": "integer",
109
110
"minimum": 1,
110
111
"description": "Number of audio channels (1 = mono, 2 = stereo)."
111
112
},
112
113
"duration": {
113
114
"type": "string",
114
115
"description": "Duration of the recording in seconds (e.g., '300.0').",
115
116
"maxGraphemes": 32
116
117
},
117
118
"fileFormat": {
118
119
"type": "string",
119
120
"description": "File format (e.g., 'WAV', 'FLAC', 'MP3'). Aligns with AC dc:format.",
120
121
"maxGraphemes": 32
121
122
},
122
123
"recordedAt": {
123
124
"type": "string",
124
125
"format": "datetime",
125
126
"description": "Date and time the audio was captured (start of recording). Aligns with AC xmp:CreateDate."
126
127
},
127
128
"sampleRate": {
128
129
"type": "integer",
129
130
"minimum": 1,
130
131
"description": "Sample rate in Hz (e.g., 44100, 48000, 384000 for ultrasonic). Aligns with AC mo:sample_rate."
131
132
},
132
133
"fileSizeBytes": {
133
134
"type": "integer",
134
135
"minimum": 0,
135
136
"description": "File size in bytes."
136
137
},
137
138
"maxFrequencyHz": {
138
139
"type": "integer",
139
140
"minimum": 0,
140
141
"description": "Highest frequency present in the recording in Hz. Aligns with AC ac:freqHigh."
141
142
},
142
143
"minFrequencyHz": {
143
144
"type": "integer",
144
145
"minimum": 0,
145
146
"description": "Lowest frequency present in the recording in Hz. Aligns with AC ac:freqLow."
146
147
},
147
148
"filterLowPassHz": {
148
149
"type": "integer",
149
150
"minimum": 0,
150
151
"description": "Low-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterLowPass."
151
152
},
152
153
"filterHighPassHz": {
153
154
"type": "integer",
154
155
"minimum": 0,
155
156
"description": "High-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterHighPass."
156
157
},
157
158
"signalToNoiseRatio": {
158
159
"type": "string",
159
160
"description": "Signal-to-noise ratio in dB.",
160
161
"maxGraphemes": 32
161
162
}
162
163
},
163
164
"description": "Technical audio metadata. These are properties of the audio file itself, not the recording context (location, weather, device). Aligns with AC Resource Creation Vocabulary and Music Ontology terms."
164
165
}
165
166
},
166
167
"$type": "com.atproto.lexicon.schema",
167
168
"lexicon": 1,
168
169
"description": "Generic audio resource record aligned with the TDWG Audiovisual Core standard (http://www.tdwg.org/standards/638). Represents a single audio recording (field recording, soundscape, species call) with its technical metadata. Links to a dwc.occurrence as evidence and optionally to an ac.deployment describing the recording device setup. Does not carry location, weather, habitat, or device fields — those belong on dwc.event, dwc.occurrence, or ac.deployment respectively."
169
170
}