Skip to content

Instantly share code, notes, and snippets.

@gooderist
Last active January 15, 2022 22:32
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gooderist/ae3054f25390b3befabcc623b0c6c184 to your computer and use it in GitHub Desktop.
Save gooderist/ae3054f25390b3befabcc623b0c6c184 to your computer and use it in GitHub Desktop.
Pro6 File Spec

(Unofficial) Pro6 File Specification

This is a reverse-engineered description of the Pro6 file format used in ProPresenter6. This work is in no way affiliated with or authorized by RenewedVision(c) with the exception that we all serve the same Lord, Jesus Christ.

last updated 2019/10/14

General

The file is an xml file with base64 encoded strings. Slide text is mainly expressed as RTF strings. More details below under section [todo: NSString] The file begins with tag <?xml version="1.0" encoding="utf-8"?>

graph LR
RVPresentationDocument --> RVTimeline
RVPresentationDocument --> groups-RVSlideGrouping
RVPresentationDocument --> arrangements-?
RVTimeline --> timeCues-?
RVTimeline --> mediaTracks-?
groups-RVSlideGrouping --> slides-RVDisplaySlide 
slides-RVDisplaySlide --> cues-?
slides-RVDisplaySlide --> displayElements-array
displayElements-array --> RVTextElement
RVTextElement --> RVRect3D
RVTextElement --> shadow
RVTextElement --> dictionary
RVTextElement --> NSString-PlainText
RVTextElement --> NSString-RTFData
RVTextElement --> NSString-WinFlowData
RVTextElement --> NSString-WinFontData

click groups-RVSlideGrouping "https://#RVSlideGrouping" "tooltip"
click RVTextElement "https://#RVTextElement" "tooltip"

Tag Descriptions

Tags and their respective attributes & children are described below.


RVPresentationDocument

Describes the ProPresenter document.

Attributes

  • height - "1080" Height of document in pixels
  • width - "1920" Width of document in pixels
  • docType - "0" [Where is type stored?]
  • versionNumber - "600" [version of what?]
  • usedCount - "0"
  • backgroundColor - "0 0 0 1"
  • drawingBackgroundColor - "false"
  • CCLIDisplay - "false"
  • lastDateUsed - ""
  • selectedArrangementID - "" [likely UUID]
  • category - "Presentation"
  • resourcesDirectory - ""
  • notes - ""
  • CCLISongTitle - ""
  • chordChartPath - ""
  • os - "1" [for Windows?]
  • buildNumber - "6016" [where to find?]

Children


RVTimeline

Timeline information container

Attributes

  • timeOffset - "0"
  • duration - "0"
  • selectedMediaTrackIndex - "-1"
  • loop - "false"
  • rvXMLIvarName - "timeline"

Children

  • array: timecues - ?
  • array: mediaTracks -?

RVSlideGrouping

A slide group. All slide groups are stored in array: groups located in the main RVPresentationDocument.

Attributes

  • name - "" Name of slide group
  • color - "1 1 1 0" Color of slide group
  • uuid - uuid version 1 or 4? (does it make a matter?)

Children


RVDisplaySlide

A slide. Slides are stored in the array: slides belonging to an RVSlideGrouping.

Attributes

  • backgroundColor - "1 1 1 0"
  • highlightColor - ""
  • drawingBackgroundColor - "false"
  • enabled - "true"
  • hotKey - ""
  • label - ""
  • notes - ""
  • UUID - uuid
  • chordChartPath - ""

Children


RVTextElement

A text element holder within a RVDisplaySlide

Attributes

  • displayName - "Default"
  • UUID - uuid
  • typeID - "0"
  • displayDelay - "0"
  • locked - "false"
  • persistent - "0"
  • fromTemplate - "false"
  • opacity - "1"
  • source - ""
  • bezelRadius - "0"
  • rotation - "0"
  • drawingFill - "false"
  • drawingShadow - "false"
  • drawingStroke - "false"
  • fillColor - "1 1 1 1"
  • adjustsHeightToFit - "false"
  • verticalAlignment - "0"
  • revealType - "0"

Children

  • RVRect3D: position - ex: {56 42 0 1808 996} ?
  • shadow: shadow - ex: 4|0 0 0 1|{2.82843, -2.82843}
  • dictionary: stroke
    • NSColor: RVShapeElementStrokeColorKey - ex: 1 1 1 1
    • NSNumber: RVShapeElementStrokeWidthKey (double) - ex: 0
  • NSString: PlainText - Plaintext string (base64)
  • NSString: RTFData - RTF formatted string (base64)
  • NSString: WinFlowData - ? (base64) Windows specific / will render without
  • NSString: WinFontData - ? (base64) Windows specific / will render without
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment