Skip to main content
Skip table of contents

CAE Project Format

Note: this is internal information, project format may change at any time.

The CAE raw project json format is based on the EAO project format (currently it is more or less equal to it).

Project.json and CAE container

A raw CAE project is a JSON formatted file describing the used essences, the timeline (sequence) and other metadata.

Example:

JS
{
    "EAO": {
        "Comment": "",
        "Text": "",
        "Duration": 60000,
        "LastChange": {
            "User": "Unknown",
            "Date": 1657088850613
        },
		"Files": [
			...
		],
		"Media": [
			...
		],
		"Sequence": {
			"Tracks": [
				...
			],
			"Markers": [
				...
			],
			"Groups": [
				...
			]
		},
		CustomData: {
		}
	}
}


The raw CAE project.json file together will locally created content is stored inside a CAE container file with file extension .cae (also often called a CAE project). A CAE container file is a zip file of the following structure:

  • project.json
  • audio sub folder containing locally created content, referenced in project.json

Example:

CODE
project.json
audio
    82b5ea20-2dbe-4306-b1e6-a5abb2dd105b


Top-level entities

PropertyDescription
Comment

MKL? Free text?

Text

MKL? Is this something like a title? 

Duration

MKL? Which duration is this? Sequence duration?

LastChange

MKL? Stored in UTC or local time?

Files

An essence file can be...

  • a DigaSystem URL reference (Filename property starts with http:// or https://)
  • a locally created content (Filename property starts with blob:)
  • something that has to be recreated (Filename property is empty)
Media

A medium description has a one-to-one relationship to a file?

A medium description additionally contains Clips and TranscriptionData.

Sequence
CustomData


Files

PropertyDescription
Filename
  • a DigaSystem URL reference starting with http:// or https://
  • a locally created content starting with blob:
  • empty = something that has to be recreated on loading
Formate.g. Linear, Peakfile, Transcript
FileTypee.g. WAV, WAVEFORM, S2T
Durationin milliseconds
MediumIdRefReference to a medium in Media
SampleRate
SampleCount

Example:

JS
"Files": [{
                "Filename": "https://dpe-demo.davidsystems.com/DpeWebApplication/Media.ashx?tableid=DigaSystem\\playground&entryid=17",
                "Format": "Linear",
                "FileType": "WAV",
                "Duration": 55379,
                "MediumIdRef": "226cc802-60c0-44f9-b131-c6fd743dcfae",
                "SampleRate": 44100,
                "SampleCount": 2442239.2575000003
            }, {
                "Filename": "",
                "Format": "Peakfile",
                "FileType": "WAVEFORM",
                "Duration": 55379,
                "MediumIdRef": "226cc802-60c0-44f9-b131-c6fd743dcfae",
                "SampleRate": 44100,
                "SampleCount": 2442239.2575000003
            }, {
                "Filename": "",
                "Format": "Transcript",
                "FileType": "S2T",
                "Duration": 0,
                "MediumIdRef": "226cc802-60c0-44f9-b131-c6fd743dcfae",
                "SampleRate": 0,
                "SampleCount": 0
            }, {
                "Filename": "blob:https://demo-cae-latest.davidsystems.com/8b9db916-0524-457d-8b3e-2946cdead3ef",
                "Format": "Linear",
                "FileType": "WAV",
                "Duration": 3000,
                "MediumIdRef": "82b5ea20-2dbe-4306-b1e6-a5abb2dd105b",
                "SampleRate": 44100,
                "SampleCount": 132301
            }, {
                "Filename": "",
                "Format": "Peakfile",
                "FileType": "WAVEFORM",
                "Duration": 3000,
                "MediumIdRef": "82b5ea20-2dbe-4306-b1e6-a5abb2dd105b",
                "SampleRate": 44100,
                "SampleCount": 132301
            }
        ]



Media

PropertyDescription
MediumIdOne-to-one relationship to a file
ClipsClips
TranscriptDataTranscription data

Example:

JS
        "Media": [{
                "MediumId": "226cc802-60c0-44f9-b131-c6fd743dcfae",
                "Clips": [{
                        "Title": "Clip created from file import",
                        "Id": "0eeafbea-fe2e-4bf3-9e98-d3af4108da37",
                        "StartPosition": 0,
                        "Duration": 55379,
                        "Comment": "",
                        "Markers": []
                    }
                ],
                "TranscriptData": {
					...
                }
            }, {
                "MediumId": "82b5ea20-2dbe-4306-b1e6-a5abb2dd105b",
                "Clips": [{
                        "Title": "Clip created from file import",
                        "Id": "6af746d7-117d-4bba-9050-794be15073bb",
                        "StartPosition": 0,
                        "Duration": 3000,
                        "Comment": "",
                        "Markers": []
                    }
                ]
            }


Clips

Clips allow to specify which part of a medium should be used.

Clips are the entities that are referenced from TrackElements.

PropertyDescription
TitleClip title
IdUnique identifier referenced from a TrackElement
StartPositionStart position (offset) inside its medium
DurationDuration inside its medium
CommentClip comment
Markers

MKL? Is this used? How do they relate to Markers on top-level sequence?

TranscriptData


Sequence

PropertyDescription
TracksArray of tracks
MarkersArray of markers
Groups

MKL?

Tracks

PropertyDescription
TrackNameTrack name
TrackElementsArray of track elements
Mutedtrue/false
Placeholders

MKL? What is this?

Lockedtrue/false
Color

MKL? which formats are supported? Example: #1879c7

TrackElements
PropertyDescription
IdUnique identifier
RefIdReference to Clip
PositionOffset on track
Label
Comment
GainExample: 1
Lockedtrue/false
Color

MKL? which formats are supported? Example: #1879c7

FadeIn
FadeOut
GainAutomation

MKL?

TrackElementTranscript

MKL?

Markers

Groups

How do Files, Media, Clips, Tracks and TrackElements relate to each other?

Files and Media

  • There is a one-to-one relationship between a File (property MediumIdRef) and a Medium (property MediumId)
  • A file contains information about the essence, e.g. where is it stored and what kind of essence is it
  • A medium adds the ability to define clips (parts of a file) and transcription data

Tracks, TrackElements and Clips

  • Tracks contain TrackElements
  • The TrackElement property Position specifies the offset on the track
  • The TrackElement property RefId references a Clip
  • The Clip is part of a Medium
  • The Clip properties StartPosition and Duration specify the part of the medium that is used
  • The Medium is linked to a File by the File property MediumIdRef

Sequence => Track => TrackElement => Clip => Medium => File








JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.