org.algorave.set

archive.algorave.org

{
  "id": "org.algorave.set",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "type",
          "version",
          "performer",
          "set",
          "code",
          "metadata"
        ],
        "properties": {
          "set": {
            "ref": "#setMeta",
            "type": "ref",
            "description": "Set metadata (title, BPM, genre, tags)"
          },
          "code": {
            "ref": "#codeMeta",
            "type": "ref",
            "description": "Source code and language details"
          },
          "type": {
            "type": "string",
            "const": "org.algorave.set",
            "description": "NSID of the record"
          },
          "event": {
            "ref": "#eventMeta",
            "type": "ref",
            "description": "Event where the set was performed (optional)"
          },
          "links": {
            "ref": "#linksMeta",
            "type": "ref",
            "description": "Social and source repository links (optional)"
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "Schema version"
          },
          "metadata": {
            "ref": "#metadataMeta",
            "type": "ref",
            "description": "Publication metadata (license, timestamps)"
          },
          "performer": {
            "ref": "#performer",
            "type": "ref",
            "description": "The performer who created the set"
          },
          "recording": {
            "ref": "#recordingMeta",
            "type": "ref",
            "description": "Links to audio/video recordings (optional)"
          }
        }
      }
    },
    "setMeta": {
      "type": "object",
      "required": [
        "title"
      ],
      "properties": {
        "bpm": {
          "type": "integer",
          "maximum": 300,
          "minimum": 40,
          "description": "Beats per minute"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Freeform tags"
        },
        "genre": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Genre tags"
        },
        "title": {
          "type": "string",
          "maxLength": 256,
          "description": "Title of the set"
        },
        "duration": {
          "type": "integer",
          "minimum": 0,
          "description": "Duration in seconds"
        },
        "description": {
          "type": "string",
          "maxLength": 2048,
          "description": "Description of the set"
        }
      }
    },
    "codeMeta": {
      "type": "object",
      "required": [
        "language",
        "source"
      ],
      "properties": {
        "seed": {
          "type": "integer",
          "nullable": true,
          "description": "Random seed for reproducibility"
        },
        "engine": {
          "type": "string",
          "description": "Audio engine used (e.g. superdirt, webaudio, scsynth)"
        },
        "source": {
          "type": "string",
          "maxLength": 65536,
          "description": "The live coding source code"
        },
        "language": {
          "type": "string",
          "description": "Live coding language (e.g. tidalcycles, strudel, sonic-pi)"
        },
        "dependencies": {
          "type": "object",
          "description": "Additional dependencies (freeform key-value)"
        },
        "engineVersion": {
          "type": "string",
          "description": "Version of the audio engine"
        },
        "languageVersion": {
          "type": "string",
          "description": "Version of the language"
        }
      }
    },
    "eventMeta": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "Event URL"
        },
        "date": {
          "type": "string",
          "description": "Event date"
        },
        "name": {
          "type": "string",
          "maxLength": 256,
          "description": "Event name"
        },
        "location": {
          "type": "string",
          "maxLength": 256,
          "description": "Event location"
        }
      }
    },
    "linksMeta": {
      "type": "object",
      "properties": {
        "github": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "URL to GitHub repository"
        },
        "social": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "URL to social media profile"
        }
      }
    },
    "performer": {
      "type": "object",
      "required": [
        "handle"
      ],
      "properties": {
        "did": {
          "type": "string",
          "description": "AT Protocol DID of the performer"
        },
        "handle": {
          "type": "string",
          "description": "Handle of the performer"
        },
        "displayName": {
          "type": "string",
          "description": "Display name of the performer"
        }
      }
    },
    "metadataMeta": {
      "type": "object",
      "required": [
        "license"
      ],
      "properties": {
        "isLive": {
          "type": "boolean",
          "default": true,
          "description": "Whether the set was performed live"
        },
        "license": {
          "type": "string",
          "description": "License under which the set is published (e.g. CC-BY-SA-4.0)"
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "ISO 8601 creation timestamp"
        },
        "supersedes": {
          "type": "string",
          "nullable": true,
          "description": "AT URI of the set this one supersedes"
        },
        "publishedAt": {
          "type": "string",
          "format": "datetime",
          "description": "ISO 8601 publication timestamp"
        }
      }
    },
    "recordingMeta": {
      "type": "object",
      "properties": {
        "audio": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "URL to audio recording"
        },
        "video": {
          "type": "string",
          "format": "uri",
          "maxLength": 2048,
          "description": "URL to video recording"
        }
      }
    }
  },
  "type": "record",
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "revision": 1,
  "description": "Schema for an Algorave live coding set. Each record captures a live coding performance: performer, source code, metadata, and links."
}

Validate Record

Validate a record against org.algorave.set

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:zevnzfwozqlsqz54c3artdzt
CID
bafyreih4xwyc3hefnyysikhelpdv2csb5dx2nv2b5zbmbscp56t5f3lyzu
Indexed At
2026-06-20 16:36 UTC
AT-URI
at://did:plc:zevnzfwozqlsqz54c3artdzt/com.atproto.lexicon.schema/org.algorave.set

Lexicon Garden

@