top of page
  • Writer's pictureTaylor Glad

ETC Eos CSV Import QLab 5

Updated: Dec 25, 2023


Export CSV cue sheet from ETC Eos family console, and import to QLab.

This script will have you select a CSV file. No need for a separate spreadsheet editing application.

Exporting CSV from ETC Eos

  1. In ETC Eos, go to file… export… csv… then select a location to export

  2. Then click “Deselect All”

  3. And then click “Cues” so only cues will be exported. You can leave the other settings as they are. Then click OK.

This script uses QLab's network device definitions, and so the correct patch needs to be set before creating cues. If the cues are created before proper network settings, changing the network settings afterwards will not fix the cues. To enforce a proper network patch before creating cues, there is a place at the top of each to script specify the name of the network patch you want the cues to use. The script will stop if it doesn't see a network patch with the name indicated.



Copy the text below, and paste it into a script cue in your QLab workspace. I recommend assigning it a hotkey, or I like to give each script cue a unique cue number using letters, and then trigger it from Bitfocus Companion.

--original by Jack Baxter, then by Chase Elison, Modified by Taylor Glad, then parsing modifications by Taylor Glad after some examples from Mic Pool. "It takes a village." Updated 2/22/23
--Script will prompt you for a csv file. You don't need any spreadsheet editors open.

set networkPatchName to "Eos" --put the name (case sensitive) of your network patch with type set to "ETC Eos family". If there are multiple network patches with the same name, the first result (highest on the list) will be used.

set TheFile to choose file of type "csv" with prompt "Please select your exported CSV Cue List from EOS"
set theFileContents to read TheFile
set thetids to AppleScript's text item delimiters
set AppleScript's text item delimiters to ","
set thenumberofrows to count of paragraphs of theFileContents
set cueCount to 0
tell application id "com.figure53.QLab.5" to tell front workspace
if text item 1 of paragraph 1 of theFileContents is "START_TARGETS" then --If the csv file comes straight from EOS
--set namePrefix to the text returned of (display dialog "What prefix would you like for the cues? (e.g. Q1, Light Cue 1, LQ1...)" default answer "EOS" with title "ETC Eos CSV to OSC" with icon 1)
set namePrefix to "EOS"
make type "cue list"
-- or make a group cue instead of a cue list. You'll have to "un-comment" 2 lines below as well
--make type "group"
--set LXGroupQ to last item of (selected as list)
--set the mode of LXGroupQ to fire_first_enter_group
--set the q name of LXGroupQ to "Light Cues"
--set the q number of LXGroupQ to ""
--collapse LXGroupQ

set q name of last cue list to "New Light Cues"
set current cue list to last cue list whose q name is "New Light Cues"
set NoHangOrFollow to true
repeat with makeCues from 3 to (thenumberofrows - 2) --starts in 3 to skip the first 2 rows being used for labels
set theRow to (paragraph makeCues) of theFileContents
if (text item 2 of theRow as string) is "Cue" and NoHangOrFollow then
if (text item 3 of theRow as integer) is not 1 then
set visualQPrefix to (text item 3 of theRow as integer as string) & "/"
set visualQPrefix to ""
end if

if (text item 4 of theRow as string as real) mod 1 is 0 then
set qNumStr to (text item 4 of theRow as integer) as string
set qNumStr to (text item 4 of theRow as string)
end if

if (text item 7 of theRow as string) is not "" then
set lblTxt to " - " & (text item 7 of theRow as string) as string
set lblTxt to "" as string
end if

set qName to namePrefix & " " & visualQPrefix & qNumStr & lblTxt
make type "network"
set theCue to last item of (selected as list)
set q name of theCue to qName
set the q number of theCue to "" -- or set to "L" & qNumStr if you want 
set the network patch name of theCue to networkPatchName
if the network patch name of theCue is not networkPatchName then
display dialog ("Please create a network patch for ETC Eos family and name it: " & networkPatchName) with title "EOS OSC Cue" with icon 1
end if

set the parameter values of theCue to {"Cues", "No", "Run cue in specific list", (text item 3 of theRow as integer as string), qNumStr}
set NoHangOrFollow to ((text item 24 of theRow as string) is not "F" and (text item 24 of theRow as string) is not "H")
--set newQID to uniqueID of newQ
--move cue id newQID of parent of newQ to end of LXGroupQ
set cueCount to cueCount + 1
end if -- end if the Target Type is "Cue" on spreadsheet, and the previous cue does not have a follow/hang
end repeat
display dialog (cueCount as string) & " cues imported" with title "ETC Eos CSV to OSC" with icon 1

end if -- end if the csv file comes from EOS and starts with "START_TARGETS"
end tell
set AppleScript's text item delimiters to thetids

113 views0 comments

Recent Posts

See All


bottom of page