There are a number of ways you can do this
Using a separate SMPTE generator might complicate the nature of the changing playback
I don't think Qlab will help you - and catalyst can do most of what Qlab can do and more...
Qlab or Catalyst is not the problem - we need to figure out more about the Sound PC software capabilities
However, as you mentioned:
Therefore I would suggest that you should get unique SMPTE timecode edited in to each of the sound tracks
This will enable the relevant video to playback at the correct time and in sync.
ie while the sound track plays, it also plays SMPTE timecode on another channel and catalyst can listen to the SMPTE timecode to sync the video.
One way to do this is:
Conect the SMPTE timecode output from the PC (audio cable) to the line input of the Mac (3.5mm jack) - SMPTE is just a sound signal.
Lets assume that the timebase is 25fps (just change the arithmetic if its 30fps)
Go to system preferences on the catalyst Mac and ensure that the audio input is set to line-in
Go to the catalyst input/sound HUD and turn on sound and SMPTE
Lets say that song 1 starts at timecode 01:00:05:00 (which is what needs to be striped on to the sound track)
Lets say that preset 1 is the video for song 1
I will assume that you know how to program presets in catalyst.
record a preset with the video for song 1 and set the playmode to SMPTE L and set the inframe to 125 (25fps x 5s = 125 frames) or (30pfs x 5s = 150frames)
Setup a cuelist in catalyst, set the clock source to SMPTE L
insert preset 1 (song 1) and set the time for the cue to 01:00:05:00
Ensure that the PLAY button is selected on the cuelist
When the SMPTE timecode gets to 01:00:05:00 the preset will run and the video will start from the first frame and sync to the SMPTE timecode.
You may need to put a fade out preset at the end (or just before the end) of the song and whatever timecode that happens.
THEN:
Lets say that song 2 starts at timecode 02:00:05:00
Lets say that preset 2 is the video for song 2
You would repeat the process for song 2
and so on...
Note that the timecode starts at 5seconds - this allows for some pre-roll before the cue actually happens and allows both systems to be in-sync before you hear the sound and see the video.
Sync can be adjusted by changing the inframe value of each preset
Bear in mind that the cuelist time is independent of the preset inframe
The hour is ignored when using inframe, but not in the cuelist.
By using SMPTE timecode cuelist to trigger the preset - you dont need to use DMX/Artnet preset triggers...
Without actually being onsite programming your show and connecting cables - this is about as much free support as I can offer...
Hope it helps
S