Gladly! I love supporting the Open Source/Open Science community. While I’m not always available to respond quickly, I’m happy to contribute what I can.
While this problem is considered resolved, I do want to make a special note here that parallel port/serial port triggering is an infinitely more precise manner of sending flags. What you gain with TCP/IP flags is the benefit of information which is easier to organize and utilize when processing your data. There are going to be issues with “offsets” as you’ve noticed. Your timestamps need to reflect time based on screen refreshes and not on clock time. You’ll also need to get a measure of your eeg’s timing “offset” to test how large your time fluctuations (jitter) might be. If you want to read more on the topic, there was an interesting discussion about it here. Timing offsets are not trivial. If you were recording EEG at 100hz and you have variance of +/-8ms, no big deal since your timing precision is less than your recording frequency (1 data point every 10ms). Change that to recording EEG at 1000hz and variance of +/-8ms, you’re flag is failing on 15 samples of data. This might not mean much if you’re interest is a large & slow component like the P300b or similar, but if you’re studying a P50, you’re going to spread your waveform thin and have pretty inaccurate data on your hands. If you need more info let me know and we’ll work through it.
Best of luck; keep the questions coming!
Josh