REAPER
Theatre and aboveWhat 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 — one marker per enabled cue, positioned at the cue's timecode. In REAPER, open the Region/Marker Manager, right-click, and choose Import.
The cue list it writes is the same projection the grandMA3 macro and Timecode XML exports use, so the marker file can never disagree with what you push to a console about which cues exist or when they happen.
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.
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 the old behaviour; 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. 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.
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.
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. That conversion runs on the timecode clock and not on a bare division, so a 23.976 or 29.97 session lands where its labels actually fall rather than 3.6 seconds early at the top of the hour, and a drop-frame session is not read as a non-drop one. Two 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.
- 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
Looking for a quick fix?
The Help Center has short task-focused articles and a support team that responds within 24 hours.