app.gainforest.ac.audio

gainforest.earth

Documentation

An audio recording record with technical metadata and optional links to occurrence, deployment, and site records.

main record

An audio recording record with technical metadata and optional links to occurrence, deployment, and site records.

Record Key tid Timestamp-based ID

Properties

createdAt string datetime Required

Timestamp of record creation in the ATProto PDS.

deploymentRef string at-uri Optional

AT-URI of the ac.deployment record describing the recording device setup (device model, gain, location, schedule, etc.).

license string Optional

License for this recording (e.g., CC-BY-4.0, CC0-1.0). Aligns with AC dcterms:rights.

maxGraphemes: 256 graphemes
metadata ref #metadata Required

Technical audio metadata (codec, sample rate, duration, frequency bounds, etc.).

name string Optional

A short human-readable name or label for this audio recording.

maxGraphemes: 256 graphemes
occurrenceRef string at-uri Optional

AT-URI of the dwc.occurrence record this audio is evidence for. Use when this recording documents a specific species detection or biodiversity observation.

recordedBy string Optional

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.

maxGraphemes: 512 graphemes
siteRef string at-uri Optional

AT-URI of the organization site record where this audio was captured.

tags array of string Optional

Freeform tags for the recording (e.g., 'dawn-chorus', 'rain', 'chainsaw', 'anthropogenic-noise'). Aligns with AC ac:tag.

maxLength: 20 items
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "blob",
      "metadata",
      "createdAt"
    ],
    "properties": {
      "blob": {
        "ref": "app.gainforest.common.defs#audio",
        "type": "ref",
        "description": "The audio file blob stored on the PDS."
      },
      "name": {
        "type": "string",
        "description": "A short human-readable name or label for this audio recording.",
        "maxGraphemes": 256
      },
      "tags": {
        "type": "array",
        "items": {
          "type": "string",
          "maxGraphemes": 64
        },
        "maxLength": 20,
        "description": "Freeform tags for the recording (e.g., 'dawn-chorus', 'rain', 'chainsaw', 'anthropogenic-noise'). Aligns with AC ac:tag."
      },
      "license": {
        "type": "string",
        "description": "License for this recording (e.g., CC-BY-4.0, CC0-1.0). Aligns with AC dcterms:rights.",
        "maxGraphemes": 256
      },
      "siteRef": {
        "type": "string",
        "format": "at-uri",
        "description": "AT-URI of the organization site record where this audio was captured."
      },
      "metadata": {
        "ref": "#metadata",
        "type": "ref",
        "description": "Technical audio metadata (codec, sample rate, duration, frequency bounds, etc.)."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Timestamp of record creation in the ATProto PDS."
      },
      "thumbnail": {
        "ref": "app.gainforest.common.defs#imageThumbnail",
        "type": "ref",
        "description": "Thumbnail image for display in list views."
      },
      "recordedBy": {
        "type": "string",
        "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.",
        "maxGraphemes": 512
      },
      "description": {
        "ref": "app.gainforest.common.defs#richtext",
        "type": "ref",
        "description": "A longer human-readable description of the audio recording content."
      },
      "spectrogram": {
        "ref": "app.gainforest.common.defs#spectrogram",
        "type": "ref",
        "description": "Spectrogram image of the recording (visual frequency-time representation)."
      },
      "deploymentRef": {
        "type": "string",
        "format": "at-uri",
        "description": "AT-URI of the ac.deployment record describing the recording device setup (device model, gain, location, schedule, etc.)."
      },
      "occurrenceRef": {
        "type": "string",
        "format": "at-uri",
        "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."
      }
    }
  },
  "description": "An audio recording record with technical metadata and optional links to occurrence, deployment, and site records."
}
metadata object

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.

Properties

bitDepth integer Optional

Bits per sample (e.g., 16, 24, 32).

minimum: 8maximum: 64
channels integer Required

Number of audio channels (1 = mono, 2 = stereo).

minimum: 1
codec string Optional

Audio codec (e.g., 'PCM', 'FLAC', 'MP3', 'AAC').

maxGraphemes: 32 graphemes
duration string Required

Duration of the recording in seconds (e.g., '300.0').

maxGraphemes: 32 graphemes
fileFormat string Optional

File format (e.g., 'WAV', 'FLAC', 'MP3'). Aligns with AC dc:format.

maxGraphemes: 32 graphemes
fileSizeBytes integer Optional

File size in bytes.

minimum: 0
filterHighPassHz integer Optional

High-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterHighPass.

minimum: 0
filterLowPassHz integer Optional

Low-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterLowPass.

minimum: 0
maxFrequencyHz integer Optional

Highest frequency present in the recording in Hz. Aligns with AC ac:freqHigh.

minimum: 0
minFrequencyHz integer Optional

Lowest frequency present in the recording in Hz. Aligns with AC ac:freqLow.

minimum: 0
recordedAt string datetime Required

Date and time the audio was captured (start of recording). Aligns with AC xmp:CreateDate.

sampleRate integer Required

Sample rate in Hz (e.g., 44100, 48000, 384000 for ultrasonic). Aligns with AC mo:sample_rate.

minimum: 1
signalToNoiseRatio string Optional

Signal-to-noise ratio in dB.

maxGraphemes: 32 graphemes
View raw schema
{
  "type": "object",
  "required": [
    "channels",
    "duration",
    "sampleRate",
    "recordedAt"
  ],
  "properties": {
    "codec": {
      "type": "string",
      "description": "Audio codec (e.g., 'PCM', 'FLAC', 'MP3', 'AAC').",
      "maxGraphemes": 32
    },
    "bitDepth": {
      "type": "integer",
      "maximum": 64,
      "minimum": 8,
      "description": "Bits per sample (e.g., 16, 24, 32)."
    },
    "channels": {
      "type": "integer",
      "minimum": 1,
      "description": "Number of audio channels (1 = mono, 2 = stereo)."
    },
    "duration": {
      "type": "string",
      "description": "Duration of the recording in seconds (e.g., '300.0').",
      "maxGraphemes": 32
    },
    "fileFormat": {
      "type": "string",
      "description": "File format (e.g., 'WAV', 'FLAC', 'MP3'). Aligns with AC dc:format.",
      "maxGraphemes": 32
    },
    "recordedAt": {
      "type": "string",
      "format": "datetime",
      "description": "Date and time the audio was captured (start of recording). Aligns with AC xmp:CreateDate."
    },
    "sampleRate": {
      "type": "integer",
      "minimum": 1,
      "description": "Sample rate in Hz (e.g., 44100, 48000, 384000 for ultrasonic). Aligns with AC mo:sample_rate."
    },
    "fileSizeBytes": {
      "type": "integer",
      "minimum": 0,
      "description": "File size in bytes."
    },
    "maxFrequencyHz": {
      "type": "integer",
      "minimum": 0,
      "description": "Highest frequency present in the recording in Hz. Aligns with AC ac:freqHigh."
    },
    "minFrequencyHz": {
      "type": "integer",
      "minimum": 0,
      "description": "Lowest frequency present in the recording in Hz. Aligns with AC ac:freqLow."
    },
    "filterLowPassHz": {
      "type": "integer",
      "minimum": 0,
      "description": "Low-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterLowPass."
    },
    "filterHighPassHz": {
      "type": "integer",
      "minimum": 0,
      "description": "High-pass filter cutoff frequency in Hz applied during or after recording. Aligns with AC ac:filterHighPass."
    },
    "signalToNoiseRatio": {
      "type": "string",
      "description": "Signal-to-noise ratio in dB.",
      "maxGraphemes": 32
    }
  },
  "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."
}

Lexicon Garden

@