REAPER
TheatreWhat it's for — Cue positions and REAPER markers are the same list written twice. On most theatre, broadcast and corporate rigs the audio department owns the REAPER session, builds the click track and the timecode stem there, and decides where things happen. CueSync exchanges that list in both directions so nobody retypes a cue sheet.
Sending your cue list to REAPER
File → Sync, Import & Export → Export Reaper Markers… writes CueSync Markers.csv for one Part — one marker per enabled cue in that Part, positioned at the cue's timecode. When the show has more than one Part, CueSync asks which one to export, and the confirmation names the Part and how many markers it wrote. Export each Part you need; they are not merged into one file, because cue numbers restart in every Part and a merged file would carry two cue 1s. In REAPER, open the Region/Marker Manager, right-click, and choose Import.
The export needs a working licence. On an install that is in read-only mode it answers Subscribe to export REAPER markers — you're in read-only mode with a Subscribe button, before any Part question or folder chooser, and writes nothing. The import is not affected.
The file lists the same cues, in the same order, as the grandMA3 macro and Timecode XML exports of that Part. It is not a copy of the timecode, though. A marker sits at the cue's authored position, and every enabled cue gets one — GO, standby and follow cues included, because a marker fires nothing. The Timecode XML fires only the cues CueSync fires from the clock, at the moment CueSync fires them, trigger offsets included. If a tool on the audio side turns every marker into a console timecode event, check the GO cues before you trust that timecode.
Each marker's name carries the cue's own number, and its fade when it has one, in the bracket vocabulary the MA3 world already writes into REAPER sessions — Chorus hit (12) <2.5>. A cue with a region span that releases at its end also carries [Flash]. That is what makes the file lossless: a marker holds a time and a string and nothing else, so a number that is not in the string is a number that does not survive the trip.
A cue whose span holds through to its end exports as a REAPER region rather than a point marker, with its Start, End and Length. A show with cue colours gains a Color column.
For a lighting desk, use Export Desk Timecode CSV (MagicQ, Hog 4, Titan)… instead. ChamSys MagicQ, Hog 4 and Avolites Titan all import a REAPER marker file, but they expect the ruler in hours:minutes:seconds:frames, and a desk runs every marker it is given from timecode. The desk file writes frames on the house clock, carries only the cues CueSync fires from the clock (pyro, laser, flame and CO₂ cues are held back unless their lane is switched On), and writes spans as markers. See Files the desks import.
Bringing a REAPER session's markers in
File → Sync, Import & Export → Import Reaper Markers… reads the CSV that REAPER's Region/Marker Manager exports and creates a new Theatre track from it.
- Markers become cues, in time order, numbered from 1, named from the marker name.
- Regions become cues with a span. A region row carries a start and an end, so the cue fires at the start and the editor draws the span through to the end.
- Marker colours become cue colours, matched to the nearest of CueSync's nine.
- Imported cues carry no actions. CueSync has learned where the cues are, not what they do — bind actions in the Show Editor afterwards. Each cue's notes record the file and the marker it came from.
- The track is named after the file, and lands on the output lane you are currently looking at.
Splitting one file into departments
If the markers name more than one ^Sequence^, or carry more than one colour, CueSync offers to split them into separate tracks — Act 1 · LX, Act 1 · Video — because that is how the MA3-side tools say "these are different departments".
You are only asked when the file actually affords a split. A file whose markers all share one colour, or name no sequence, imports as one track with no dialog. One track is preselected, so pressing Return keeps a single track; splitting is something you choose. Colours group by the nearest of CueSync's nine, so two near-identical reds picked off REAPER's colour wheel stay one department.
There is deliberately no import-time offset setting. CueSync already has three places to shift a cue — per-cue offset frames in the Inspector, timecode input compensation in Settings, and the part's own origin — and a fourth applied at import would leave you unable to tell which one moved the cue. The one translation an import does make is the one the whole show already runs on: a timecode label is a reading of the house clock, so the project's venue origin is taken off it (see Which rulers CueSync can read). That is not a new offset; it is how incoming timecode reaches your cues too.
Markers written for a lighting desk
A REAPER marker can only hold a time and a name, so every tool that turns a REAPER session into console cues smuggles the rest of the cue through the name. CueSync reads that vocabulary — the same one MATools' MArkers plugin writes — so a session your audio department prepared for the LX department arrives with its cue numbers and releases in the fields that act on them, not sitting in the label as text:
| In the marker name | Becomes |
|---|---|
Chorus (100) | the cue's number — 100, not its position in the list |
Chorus <4/3> | a 4 s in / 3 s out fade, recorded in the cue's notes |
Chorus [Flash] or [Temp] on a region | the span releases at its end |
Chorus {Call Macro 1} | a console command, recorded in the cue's notes |
Chorus ^Front Truss^ | the target sequence, recorded in the cue's notes |
The name that is left is the cue's name — Chorus.
A cue number is used once per track. If two markers name the same number, the earlier marker on the timeline keeps it and the later one is numbered by position. That cue's notes say which number the marker named, and the confirmation message counts it.
Two rules keep this safe. A bracket is only a token when it matches exactly: Blackout (fast) and Q5 <house lights> are names and are left alone; only (100) is a number and only <5> is a time. And nothing is executed or invented: a fade needs an action to ramp and a {…} command is a string another program wrote, so both are reported in the cue's notes and neither becomes an action you did not author. The confirmation message tells you how many cues kept a marker's number, released at a span end, carried a colour, or named something CueSync parked in the notes.
Which rulers CueSync can read
CueSync reads seconds (93.5), MM:SS.mmm, H:MM:SS.mmm, and timecode with frames (00:01:30:12).
Frames are converted at your project frame rate — Settings → Timecode. A 23.976 or 29.97 session lands where its labels actually fall, and a drop-frame session is read as drop-frame.
A frames label is a reading of the house clock, so CueSync then subtracts the project's venue origin (Timecode view) — the same translation it applies to incoming timecode, and the same one Import Markers applies to every other editor's timecode. Each cue then fires when the house clock shows the time in the file: with a venue origin of 01:00:00:00, a marker at 01:00:10:00 lands ten seconds into the show, not an hour and ten seconds. The confirmation message says the origin was subtracted, and a label earlier than the origin is refused by name. Seconds and minutes:seconds are positions in the session and are used as they stand. Consequences worth knowing:
- Check the project frame rate matches the session before importing a frames-ruler file. A frame number the rate cannot hold — frame 28 in a 25 fps project — is refused by name, saying the rates disagree, rather than being converted into the next second.
- A drop-frame label that does not exist is refused. At 29.97 DF the labels
;00and;01are skipped at the start of every minute except every tenth, so a row at00:01:00:00names no frame. It is refused with the same message Import Markers gives, rather than landing two frames early. - A Part that starts an hour or more in is pointed out. If every marker is at
01:00:00:00or later and the venue origin is00:00:00:00, the confirmation message says so and names the origin to set if your show clock starts at zero — the same sentence Import Markers uses. - Bars and beats (
5.1.00) is the one form CueSync will not guess at: a musical position means nothing without the session's tempo map, so those rows are refused by name. Switch REAPER's ruler to a time format and export again.
Tips & gotchas
- A row CueSync cannot read is reported, never guessed. Unreadable rows are skipped and counted in the confirmation message, with the reason for the first one. A cue with an unreadable time is never quietly placed at 0:00, which would look entirely legitimate in the editor.
- A file where nothing is readable is refused outright, rather than importing as an empty track that looks like a successful import of an empty session.
- Import creates a new track — it never merges into an existing one. To replace a track, delete the old one after checking the import.
- Extra columns are fine. Columns are matched by their header name —
#/Number,Name,Start,End,Length,Color,Lane— so the column order never matters. - A file with no header row is read as
Name,Start,End, which is what REAPER specifies for that case; a headerless file that does lead with REAPER'sM1/R2row ids is recognised and read that way instead. A marker genuinely namedM12in a headerless file is the one thing that confuses this, and it is reported as an unreadable row rather than quietly re-columned. - REAPER's
Lanecolumn is read but not used. A ruler lane is a row in REAPER's ruler; CueSync's lanes are output departments (Lighting, Video, Audio). They are not the same thing, so imported cues all land on the lane you are looking at. - Colour on Windows. REAPER's own CSV export on Windows has a long-standing defect that swaps the red and blue in the Color column. CueSync does not try to correct it — the file gives no way to tell which machine wrote it, so a correction would be a coin flip. If an imported colour looks inverted, that is why; the cue is otherwise correct.
Related
- Timecode — the clock the cue positions are measured against
- GrandMA3 Session Sync — the same cue list, pushed to a console
- Show Editor — where imported cues get their actions
- Importing markers from a video editor or DAW — the same import for Premiere Pro, DaVinci Resolve, Lightworks, Audacity, Pro Tools and MIDI files
Looking for a quick fix?
The Help Center has short task-focused articles and a support team that responds within 24 hours.