diff --git a/Source/CoreServices.cpp b/Source/CoreServices.cpp
index 145dc9a3852217acdc8bd520ffce307353fdf080..ab35566fdd6d7b1343e708f118c205ff83494055 100644
--- a/Source/CoreServices.cpp
+++ b/Source/CoreServices.cpp
@@ -72,6 +72,11 @@ int64 getGlobalTimestamp()
     return getMessageCenter()->getTimestamp();
 }
 
+int64 getSoftwareTimestamp()
+{
+	return getMessageCenter()->getTimestamp(true);
+}
+
 namespace RecordNode
 {
 void createNewrecordingDir()
diff --git a/Source/CoreServices.h b/Source/CoreServices.h
index c2c868dd871873d6601e7a29ccbfe24e14ff821d..6dfee9873bd3e5d637a47b41a75647c40525e272 100644
--- a/Source/CoreServices.h
+++ b/Source/CoreServices.h
@@ -56,6 +56,9 @@ Defaults to the first hardware timestamp source or the software one if
 no hardware timestamping is present*/
 int64 getGlobalTimestamp();
 
+/** Gets the software timestamp based on a high resolution timer aligned to the start of each processing block */
+int64 getSoftwareTimestamp();
+
 namespace RecordNode
 {
 /** Forces creation of new directory on recording */