DAWPROJECT XML Reference

Table of Contents

Root Elements

<Project> <MetaData>

Other Elements

<Application> <FileReference> <Transport>

Mixer Elements

<Track> <Channel> <Send>

Timeline Elements

<Arrangement> <Scene> <ClipSlot> <Timeline> <Lanes> <Clips> <Clip> <Notes> <Note> <Audio> <Video> <Warps> <Warp> <Markers> <Marker>

Parameters Elements

<Parameter> <BoolParameter> <EnumParameter> <IntegerParameter> <RealParameter> <TimeSignatureParameter>

Automation Elements

<Points> <AutomationTarget> <Point> <RealPoint> <BoolPoint> <EnumPoint> <IntegerPoint> <TimeSignaturePoint>

Device Elements

<Device> <AuPlugin> <ClapPlugin> <Plugin> <Vst2Plugin> <Vst3Plugin> <BuiltinDevice> <Compressor> <Equalizer> <EqBand> <Limiter> <NoiseGate>

Abstract Elements

<Nameable> <Referenceable> <MediaFile>

Root Elements

<Project>

The main root element of the DAWPROJECT format. This is stored in the file project.xml file inside the container.

Attribute name Description Type Required
version Version of DAWPROJECT format this file was saved as. String yes
Element name Description Element Type Required
<Application> Metadata (name/version) about the application that saved this file. <Application> yes
<Transport> Transport element containing playback parameters such as Tempo and Time-signature. <Transport> no
from Type
(multiple)
Track/Channel structure of this file. <Channel>
<Track>
yes
<Arrangement> The main Arrangement timeline of this file. <Arrangement> no
<Scenes>
(multiple)
Clip Launcher scenes of this file. <Scene> no

<MetaData>

Metadata root element of the DAWPROJECT format. This is stored in the file metadata.xml file inside the container.

Element name Description Element Type Required
<Title> Title of the song/project. text no
<Artist> Recording Artist. text no
<Album> Album. text no
<OriginalArtist> Original Artist. text no
<Composer> Composer. text no
<Songwriter> Songwriter. text no
<Producer> Producer. text no
<Arranger> Arranger. text no
<Year> Year this project/song was recorded. text no
<Genre> Genre/style text no
<Copyright> Copyright notice. text no
<Website> URL to website related to this project. text no
<Comment> General comment or description. text no

Other Elements

<Application>

Metadata about the application which saved the DAWPROJECT file.

Attribute name Description Type Required
name Name of the application. String yes
version Version number of the application. String yes

<FileReference>

References a file either within a DAWPROJECT container or on disk.

Attribute name Description Type Required
path File path. either
  • path within the container
  • relative to .dawproject file (when external = "true")
  • absolute path (when external = "true" and path starts with a slash or windows drive letter)
  • String yes
    external When true, the path is relative to the .dawproject file. Default value is false. Boolean no

    <Transport>

    Transport element containing playback parameters such as Tempo and Time-signature.

    Element name Description Element Type Required
    <Tempo> Tempo parameter for setting and/or automating the tempo. <RealParameter> no
    <TimeSignature> Time-signature parameter. <TimeSignatureParameter> no

    Mixer Elements

    <Track>

    Represents a sequencer track.

    Inherits from <Lane> <Referenceable> <Nameable>

    Attribute name Description Type Required
    contentType Role of this track in timelines & arranger. Can be multiple (comma-separated).

    Possible values: audio, automation, notes, video, markers, tracks

    Enum,... no
    loaded If this track is loaded/active of not. Boolean no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Channel> Mixer channel used for the output of this track. <Channel> no
    <Track>
    (multiple)
    Child tracks, typically used to represent group/folder tracks with contentType="tracks". <Track> no

    <Channel>

    Represents a mixer channel. It provides the ability to route signals to other channels and can contain Device/Plug-in for processing.

    Inherits from <Lane> <Referenceable> <Nameable>

    Attribute name Description Type Required
    role Role of this channel in the mixer.

    Possible values: regular, master, effect, submix, vca

    Enum no
    audioChannels Number of audio-channels of this mixer channel. (1=mono, 2=stereo…) Integer no
    solo Channel solo Boolean no
    destination Output channel routing ID no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Volume> Channel volume <RealParameter> no
    <Pan> Channel pan/balance <RealParameter> no
    <Mute> Channel mute <BoolParameter> no
    <Sends>
    (multiple)
    Send levels & destination <Send> no
    from Type
    (multiple)
    Devices & plug-ins of this channel <AuPlugin>
    <BuiltinDevice>
    <ClapPlugin>
    <Compressor>
    <Equalizer>
    <Limiter>
    <NoiseGate>
    <Plugin>
    <Vst2Plugin>
    <Vst3Plugin>
    yes

    <Send>

    A single send of a mixer channel.

    Inherits from <Referenceable> <Nameable>

    Attribute name Description Type Required
    type Send type.

    Possible values: pre, post

    Enum no
    destination Send destination. ID no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Volume> Send level. <RealParameter> yes
    <Pan> Send pan/balance. <RealParameter> no

    Timeline Elements

    <Arrangement>

    Represents the main Arrangement timeline of a DAW.

    Inherits from <Referenceable> <Nameable>

    Attribute name Description Type Required
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <TimeSignatureAutomation> Automation data for time-signature inside this Arrangement.
    
                                 <Arrangement>
                                   <TimeSignatureAutomation target="id-of-TimeSignatureParameter" ... >
                                     <TimeSignaturePoint time="0" numerator="7", denominator="8"/>
                                     <TimeSignaturePoint time="21" numerator="4", denominator="4"/>
                                        ...
                                   </TimeSignatureAutomation>
                                 </Arrangement>
                                 
    <Points> no
    <TempoAutomation> Automation data for tempo inside this Arrangement, which will define the conversion between seconds and beats at the root level. <Points> no
    <Markers> Cue markers inside this arrangement <Markers> no
    <Lanes> The lanes of this arrangement. Generally this would contain another Lanes timeline for (and scoped to) each track which would then contain all Note, Audio, and Automation timelines. <Lanes> no

    <Scene>

    Represents a clip launcher Scene of a DAW.

    Inherits from <Referenceable> <Nameable>

    Attribute name Description Type Required
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    from Type Content timeline of this scene, will typically be structured like this:
    
                                 <Scene>
                                   <Lanes>
                                     <ClipSlot track="...">
                                        <Clip>
                                           ...
                                        </Clip>
                                     </ClipSlot>
                                      ...
                                   </Lanes>
                                 </Scene>
                                 
    <Audio>
    <ClipSlot>
    <Clips>
    <Lanes>
    <Markers>
    <MediaFile>
    <Notes>
    <Points>
    <Video>
    <Warps>
    yes

    <ClipSlot>

    Represent a clip launcher slot within a Scene which can contain a Clip. It is generally set to a specific track.

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    hasStop Whether launching this slot should stop the track playback when this slot is empty. Boolean no
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Clip> Contained clip. <Clip> no

    <Timeline>

    Abstract base class for all timeline structures.

    Inherits from <Referenceable> <Nameable>

    Implementations <Audio> <ClipSlot> <Clips> <Lanes> <Markers> <MediaFile> <Notes> <Points> <Video> <Warps>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <Lanes>

    The Lanes element provides the ability to contain multiple parallel timelines inside it, and is the main layering element of the format. It is also a natural fit for defining the scope of contained timelines to a specific track.

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    from Type
    (multiple)
    Lanes representing nested content. <Audio>
    <ClipSlot>
    <Clips>
    <Lanes>
    <Markers>
    <MediaFile>
    <Notes>
    <Points>
    <Video>
    <Warps>
    yes

    <Clips>

    Represents a timeline of clips. Each contained Clip have its time and duration that defines its location on this timeline (defined by timeUnit of the Clips element).

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Clip>
    (multiple)
    Clips of this timeline. <Clip> no

    <Clip>

    A Clip provides a clipped view on to a Timeline, and is used either on a Clips timeline (typically for arrangements) or inside a ClipSlot element (for clip launcher Scenes). A Clip must either have a child-element inheriting from Timeline or provide a ID reference to a timeline somewhere else (for linked/alias clips).

    Inherits from <Nameable>

    Attribute name Description Type Required
    time Time on the parent timeline where this clips starts playing. double yes
    duration Duration on the parent timeline of this clip.
    If duration is omitted, it should be inferred from the playStop - playStart instead.
    This is particularity useful when timeUnit and contentTimeUnit are different, like when placing an audio clip with content length defined in seconds onto an arrangement defined in beats.
    Double no
    contentTimeUnit The TimeUnit used by the scope inside this timeline. This affects the content/reference, playStart, playStop, loopStart, loopEnd but not time and duration which are using the TimeUnit of the parent scope.

    Possible values: beats, seconds

    Enum no
    playStart Time inside the content timeline (or reference) where the clip starts playing. Double no
    playStop Time inside the content timeline (or reference) where the clip stops playing. Double no
    loopStart Time inside the content timeline (or reference) where the clip loop starts. Double no
    loopEnd Time inside the content timeline (or reference) where the clip loop ends. Double no
    fadeTimeUnit The TimeUnit used by the fadeInTime and fadeOutTime.

    Possible values: beats, seconds

    Enum no
    fadeInTime Duration of fade-in.

    To create cross-fade, use a negative value which will make this Clip start at t = time - abs(fadeInTime)

    Double no
    fadeOutTime Duration of fade-out. Double no
    reference Reference to a Content Timeline this clip is playing, in case of linked/alias clips. You can use either content or reference for one clip, but not both. ID no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    from Type Content Timeline this clip is playing. <Audio>
    <ClipSlot>
    <Clips>
    <Lanes>
    <Markers>
    <MediaFile>
    <Notes>
    <Points>
    <Video>
    <Warps>
    no

    <Notes>

    Timeline containing Notes (MIDI-style)

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Note>
    (multiple)
    Contained notes. <Note> no

    <Note>

    A single Note (MIDI-style). It can additionally contain child timelines to hold per-note expression.

    Attribute name Description Type Required
    time Time on the parent timeline where this note starts playing. Double yes
    duration Duration on the parent timeline of this note. Double yes
    channel MIDI channel of this note. int no
    key MIDI key of this note. int yes
    vel Note On Velocity of this note. (normalized) Double no
    rel Note Off Velocity of this note. (normalized) Double no
    Element name Description Element Type Required
    from Type Per-note expressions can be stored within the note object as timelines. <Audio>
    <ClipSlot>
    <Clips>
    <Lanes>
    <Markers>
    <MediaFile>
    <Notes>
    <Points>
    <Video>
    <Warps>
    no

    <Audio>

    Representation of an audio file as a timeline. Duration should be the entire length of the file, any clipping should be done by placing the Audio element within a Clip element. The timeUnit attribute should always be set to seconds.

    Inherits from <MediaFile> <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    sampleRate Sample-rate of audio-file. int yes
    channels Number of channels of audio-file (1=mono, 2=stereo...). int yes
    algorithm Playback algorithm used to warp audio (vendor-specific). String no
    duration Duration in seconds of the media file (as stored). double yes
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <File> The media file. <FileReference> yes

    <Video>

    Representation of a video file as a timeline. Duration should be the entire length of the file, any clipping should be done by placing the Audio element within a Clip element. The timeUnit attribute should always be set to seconds.

    Inherits from <MediaFile> <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    sampleRate sample-rate of audio (if present) int no
    channels number of channels of audio (1=mono..., if present) int no
    algorithm Playback algorithm used to warp audio (vendor-specific, if present) String no
    duration Duration in seconds of the media file (as stored). double yes
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <File> The media file. <FileReference> yes

    <Warps>

    Warps the time of nested content as defined by a list of Warp points.

    A typical use case would be to warp an audio-file (contentTimeUnit = seconds) onto a timeline defined in beats (timeUnit = beats) as defined by a set of Warp events.

    At least two Warp events need to present in order to define a usable beats/seconds conversion. For a plain fixed-speed mapping, provide two event: One at (0,0) and a second event with the desired beat-time length along with the length of the contained Audio file in seconds.

    
                           <!-- example of a simple audio clip with beats-to-seconds warping -->
                           <Clip time="0" duration="8">
                             <Warps contentTimeUnit="seconds" timeUnit="beats">
                               <Audio channels="1" duration="4.657" sampleRate="44100">
                                  <File path="samples/dummy.wav"/>
                               </Audio>
                               <Warp time="0" contentTime="0"/>
                               <Warp time="8" contentTime="4.657"/>
                             </Warps>
                           </Clip>
                         

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    contentTimeUnit The TimeUnit used by the content (nested) timeline and the contentTime attribute of the Warp events

    Possible values: beats, seconds

    Enum yes
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Warp>
    (multiple)
    Warp events defining the transformation. (minimum 2) <Warp> yes
    from Type Content timeline to be warped. <Audio>
    <ClipSlot>
    <Clips>
    <Lanes>
    <Markers>
    <MediaFile>
    <Notes>
    <Points>
    <Video>
    <Warps>
    yes

    <Warp>

    A single warp event, which defines the time both on the outer scope (time) and the inner scope (contentTime). The time range between the Warp events are assumed to be linearly interpolated.

    Attribute name Description Type Required
    time The time this point represent to the 'outside' of the Warps element. The TimeUnit is defined by the parent Warps element timeUnit attribute or inherited from the parent element of the Warps container double yes
    contentTime The time this point represent to the 'inside' of the Warps element. The TimeUnit is defined by the parent Warps element contentTimeUnit attribute double yes

    <Markers>

    Represents a timeline of cue-markers.

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Marker>
    (multiple)
    Markers of this timeline. <Marker> yes

    <Marker>

    A single cue-marker.

    Inherits from <Nameable>

    Attribute name Description Type Required
    time Time on the parent timeline of this marker. double yes
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    Parameters Elements

    <Parameter>

    Represents a parameter which can provide a value and be used as an automation target.

    Inherits from <Referenceable> <Nameable>

    Implementations <BoolParameter> <EnumParameter> <IntegerParameter> <RealParameter> <TimeSignatureParameter>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <BoolParameter>

    Represents a parameter which can provide a boolean (true/false) value and be used as an automation target.

    Inherits from <Parameter> <Referenceable> <Nameable>

    Attribute name Description Type Required
    value Boolean value for this parameter. Boolean no
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <EnumParameter>

    Represents an enumerated parameter which can provide a value and be used as an automation target.

    Inherits from <Parameter> <Referenceable> <Nameable>

    Attribute name Description Type Required
    value Index of the enum value. Integer no
    count Number of entries in enum value. value will be in the range [0 .. count-1]. Integer yes
    labels Labels of the individual enum values. String[] no
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <IntegerParameter>

    Represents an enumerated parameter which can provide a value and be used as an automation target.

    Inherits from <Parameter> <Referenceable> <Nameable>

    Attribute name Description Type Required
    value Integer value for this parameter. Integer no
    min Minimum value this parameter can have (inclusive). Integer no
    max Maximum value this parameter can have (inclusive). Integer no
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <RealParameter>

    Represents a real valued (double) parameter which can provide a value and be used as an automation target.

    Inherits from <Parameter> <Referenceable> <Nameable>

    Attribute name Description Type Required
    value Real (double) value for this parameter.

    When serializing value to text for XML, infinite values are allowed and should be represented as inf and -inf.

    Double no
    unit Unit in which value, min and max are defined.

    Using this rather than normalized value ranges allows transfer of parameter values and automation data.

    Possible values: linear, normalized, percent, decibel, hertz, semitones, seconds, beats, bpm

    Enum yes
    min Minimum value this parameter can have (inclusive). Double no
    max Maximum value this parameter can have (inclusive). Double no
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <TimeSignatureParameter>

    Represents a (the) time-signature parameter which can provide a value and be used as an automation target.

    Inherits from <Parameter> <Referenceable> <Nameable>

    Attribute name Description Type Required
    numerator Numerator of the time-signature. (3/4 → 3, 4/4 → 4) Integer yes
    denominator Denominator of the time-signature. (3/4 → 4, 7/8 → 8) Integer yes
    parameterID Parameter ID as used by VST2 (index), VST3(ParamID) Integer no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    Automation Elements

    <Points>

    A timeline of points for automation or expression.

    All the points should be of the same element-type and match the target.

    Inherits from <Timeline> <Referenceable> <Nameable>

    Attribute name Description Type Required
    unit A unit should be provided for when used with RealPoint elements.

    Possible values: linear, normalized, percent, decibel, hertz, semitones, seconds, beats, bpm

    Enum no
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Target> The parameter or expression this timeline should target. <AutomationTarget> yes
    from Type
    (multiple)
    The contained points. They should all be of the same type and match the target parameter. <BoolPoint>
    <EnumPoint>
    <IntegerPoint>
    <RealPoint>
    <TimeSignaturePoint>
    yes

    <AutomationTarget>

    Defines the target of automation or expression, usually used within a Points element.

    Either it points directly ot a parameter or an expression, and in the expression case it can either be monophonic (such as MIDI CCs) or per-note/polyphonic (such as poly pressure)

    Attribute name Description Type Required
    parameter Parameter to automate. ID no
    expression Expression type to control.

    Possible values: gain, pan, transpose, timbre, formant, pressure, channelController, channelPressure, polyPressure, pitchBend, programChange

    Enum no
    channel MIDI channel Integer no
    key MIDI key.

    Used when expression="polyPressure".

    Integer no
    controller MIDI Channel Controller Number (0 based index).

    Used when expression="channelController".

    Integer no

    <Point>

    A single automation point (abstract class).

    Implementations <BoolPoint> <EnumPoint> <IntegerPoint> <RealPoint> <TimeSignaturePoint>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    time Time (within enclosing Points timeline) of this event Double yes

    <RealPoint>

    Inherits from <Point>

    Attribute name Description Type Required
    value Double yes
    interpolation Interpolation mode used for the segment starting at this point. Default to 'hold' when unspecified.

    Possible values: hold, linear

    Enum no
    time Time (within enclosing Points timeline) of this event Double yes

    <BoolPoint>

    A single automation point for a boolean value.

    Inherits from <Point>

    Attribute name Description Type Required
    value Boolean value of this point (true/false). Boolean yes
    time Time (within enclosing Points timeline) of this event Double yes

    <EnumPoint>

    A single automation point for an enumerated value.

    Inherits from <Point>

    Attribute name Description Type Required
    value Integer value of the Enum index for this point. Integer yes
    time Time (within enclosing Points timeline) of this event Double yes

    <IntegerPoint>

    A single automation point for an integer value.

    Inherits from <Point>

    Attribute name Description Type Required
    value Integer value of this point. Integer yes
    time Time (within enclosing Points timeline) of this event Double yes

    <TimeSignaturePoint>

    A single automation point for a time-signature value.

    Inherits from <Point>

    Attribute name Description Type Required
    numerator Numerator of the time-signature. (3/4 → 3, 4/4 → 4) Integer yes
    denominator Denominator of the time-signature. (3/4 → 4, 7/8 → 8) Integer yes
    time Time (within enclosing Points timeline) of this event Double yes

    Device Elements

    <Device>

    Either a Plug-in or native Device with in a DAW.

    Inherits from <Referenceable> <Nameable>

    Implementations <AuPlugin> <BuiltinDevice> <ClapPlugin> <Compressor> <Equalizer> <Limiter> <NoiseGate> <Plugin> <Vst2Plugin> <Vst3Plugin>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <AuPlugin>

    Inherits from <Plugin> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    pluginVersion Version of the plug-in String no
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <ClapPlugin>

    A CLAP Plug-in instance.

    The CLAP plug-in state should be stored in .clap-preset format.

    Inherits from <Plugin> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    pluginVersion Version of the plug-in String no
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <Plugin>

    Abstract base class for all plug-in formats.

    Inherits from <Device> <Referenceable> <Nameable>

    Implementations <AuPlugin> <ClapPlugin> <Vst2Plugin> <Vst3Plugin>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    pluginVersion Version of the plug-in String no
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <Vst2Plugin>

    A VST2 Plug-in instance.

    The VST2 plug-in state should be stored in FXB or FXP format.

    Inherits from <Plugin> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    pluginVersion Version of the plug-in String no
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <Vst3Plugin>

    A VST3 Plug-in instance.

    The VST3 plug-in state should be stored in .vstpreset format.

    Inherits from <Plugin> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    pluginVersion Version of the plug-in String no
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <BuiltinDevice>

    Inherits from <Device> <Referenceable> <Nameable>

    Implementations <Compressor> <Equalizer> <Limiter> <NoiseGate>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <Compressor>

    Inherits from <BuiltinDevice> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Threshold> <RealParameter> no
    <Ratio> <RealParameter> no
    <Attack> <RealParameter> no
    <Release> <RealParameter> no
    <InputGain> Pre-compression gain stage. (input/gain/drive) <RealParameter> no
    <OutputGain> Post-compression gain stage. (output/makeup gain) <RealParameter> no
    <AutoMakeup> <BoolParameter> no
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <Equalizer>

    Inherits from <BuiltinDevice> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Band>
    (multiple)
    <EqBand> no
    <InputGain> <RealParameter> no
    <OutputGain> <RealParameter> no
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <EqBand>

    Attribute name Description Type Required
    type

    Possible values: highPass, lowPass, bandPass, highShelf, lowShelf, bell, notch

    Enum yes
    order Integer no
    Element name Description Element Type Required
    <Freq> <RealParameter> yes
    <Gain> <RealParameter> no
    <Q> <RealParameter> no
    <Enabled> <BoolParameter> no

    <Limiter>

    Inherits from <BuiltinDevice> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Threshold> <RealParameter> no
    <InputGain> <RealParameter> no
    <OutputGain> <RealParameter> no
    <Attack> <RealParameter> no
    <Release> <RealParameter> no
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    <NoiseGate>

    Inherits from <BuiltinDevice> <Device> <Referenceable> <Nameable>

    Attribute name Description Type Required
    deviceRole Role of this device/plug-in.

    Possible values: instrument, noteFX, audioFX, analyzer

    Enum yes
    loaded If this device/plug-in is loaded/active of not. Boolean no
    deviceName Name of the device/plugin String yes
    deviceID Unique identifier of device/plug-in.
    Standards which use UUID as an identifier use the canonical textual representation of the UUID (8-4-4-4-12 with no braces) (VST3)
    Standards which use an integer as an identifier use the value in decimal form. (base-10 unsigned) (VST2)
    Text-based identifiers are used as-is. (CLAP)
    String no
    deviceVendor Vendor name of the device/plugin String no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <Threshold> <RealParameter> no
    <Ratio> <RealParameter> no
    <Attack> <RealParameter> no
    <Release> <RealParameter> no
    <Range> Range or amount of maximum gain reduction. Possible range [-inf to 0] <RealParameter> no
    <Enabled> This device is enabled (as in not bypassed). <BoolParameter> no
    <State> Path to a file representing the device / plug-in state in its native format.

    This file must be embedded inside the container ZIP and have the FileReference configured with (external=false).

    <FileReference> no
    from Type
    (multiple)
    Parameters for this device, which is required for automated parameters in order to provide an ID.
    Note: If the automated parameter is already present like the BuiltinDevice parameters, it should not be included here as well.
    <BoolParameter>
    <EnumParameter>
    <IntegerParameter>
    <RealParameter>
    <TimeSignatureParameter>
    yes

    Abstract Elements

    <Nameable>

    Implementations <Arrangement> <BoolParameter> <Channel> <EnumParameter> <IntegerParameter> <Lane> <Parameter> <RealParameter> <Referenceable> <Scene> <Send> <TimeSignatureParameter> <Track> <AuPlugin> <BuiltinDevice> <ClapPlugin> <Compressor> <Device> <Equalizer> <Limiter> <NoiseGate> <Plugin> <Vst2Plugin> <Vst3Plugin> <Audio> <Clip> <ClipSlot> <Clips> <Lanes> <Marker> <Markers> <MediaFile> <Notes> <Points> <Timeline> <Video> <Warps>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <Referenceable>

    Inherits from <Nameable>

    Implementations <Arrangement> <BoolParameter> <Channel> <EnumParameter> <IntegerParameter> <Lane> <Parameter> <RealParameter> <Scene> <Send> <TimeSignatureParameter> <Track> <AuPlugin> <BuiltinDevice> <ClapPlugin> <Compressor> <Device> <Equalizer> <Limiter> <NoiseGate> <Plugin> <Vst2Plugin> <Vst3Plugin> <Audio> <ClipSlot> <Clips> <Lanes> <Markers> <MediaFile> <Notes> <Points> <Timeline> <Video> <Warps>

    This element is abstract in the DOM and cannot be used as an XML element directly.

    Attribute name Description Type Required
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no

    <MediaFile>

    A media file. (audio or video).

    The duration attribute is intended to be provide the file length (and not be interpreted as a playback parameter, use a Clip or Warps element for that).

    Inherits from <Timeline> <Referenceable> <Nameable>

    Implementations <Audio> <Video>

    Attribute name Description Type Required
    duration Duration in seconds of the media file (as stored). double yes
    track When present, the timeline is local to this track. ID no
    timeUnit The TimeUnit used by this and nested timelines. If no TimeUnit is provided by this or the parent scope then 'beats' will be used.

    Possible values: beats, seconds

    Enum no
    id Unique string identifier of this element. This is used for referencing this instance from other elements. String no
    name Name/label of this object. String no
    color Color of this object in HTML-style format. (#rrggbb) String no
    comment Comment/description of this object. String no
    Element name Description Element Type Required
    <File> The media file. <FileReference> yes