diff --git a/lib/+artoa/+controller/+track/getInvolvedSoundsources.m b/lib/+artoa/+controller/+track/getInvolvedSoundsources.m
new file mode 100644
index 0000000000000000000000000000000000000000..60eabc0f0f7ba8703b7ea065e40d0a132484c23d
--- /dev/null
+++ b/lib/+artoa/+controller/+track/getInvolvedSoundsources.m
@@ -0,0 +1,21 @@
+function [involvedSoundsources, involvedSoundsourceNames] = getInvolvedSoundsources()
+%GETINVOLVEDSOUNDSOURCES Summary of this function goes here
+%   Detailed explanation goes here
+
+global artoaWorkspace;
+
+involvedSoundsourceNames = fieldnames(artoaWorkspace.filteredSoundsources);
+involvedSoundsources = struct();
+for i = 1:length(involvedSoundsourceNames)
+    if artoa.soundsources.hasAppliedToa(involvedSoundsourceNames{i}, artoaWorkspace.toaData.soundSource)
+        extracted = artoa.data.extractSoundsourcesFromStruct( ...
+            involvedSoundsourceNames{i}, ...
+            artoaWorkspace.filteredSoundsources ...
+        );
+        involvedSoundsources.(involvedSoundsourceNames{i}) = extracted;
+        clear extracted;
+    end
+end
+
+end
+
diff --git a/lib/+artoa/+float/calculateCombinationSegment.m b/lib/+artoa/+float/calculateCombinationSegment.m
index 545d13aaeb5f72917486c330de9d95cbfd68ddd0..15c1ee6a32f8d8d954c78c7fece9075d384f5024 100644
--- a/lib/+artoa/+float/calculateCombinationSegment.m
+++ b/lib/+artoa/+float/calculateCombinationSegment.m
@@ -47,7 +47,7 @@ segmentClockError = [];
 segmentVelocities = struct();
 
 %% Get sound sources
-soundsourceNames = unique(strsplit(pCombinationDetails.soundsources{1}, ' '));
+soundsourceNames = unique(strsplit(strtrim(pCombinationDetails.soundsources{1}), ' '));
 
 %% Get tracking method
 trackingMethod = lower(pTrackingMethod);
diff --git a/lib/+artoa/+float/calculateTrajectory.m b/lib/+artoa/+float/calculateTrajectory.m
index fda4e6fbd2f8794b72e5c27811de0df42925941a..328228bc2057785be7ca10f4ce8e38b8317aee2c 100644
--- a/lib/+artoa/+float/calculateTrajectory.m
+++ b/lib/+artoa/+float/calculateTrajectory.m
@@ -34,16 +34,8 @@ soundsourceCombinations = pTrackingParameter.soundsourceCombinations;
 uniqueToaDates = unique(pToaData.toaDate);
 
 %% Get all sound sources that are involved
-involvedSoundsourceNames = ...
-    unique(flatten( ...
-        cellfun( ...
-            @strsplit, soundsourceCombinations.soundsources, 'UniformOutput', false ...
-        ) ...
-    ));
-involvedSoundsources = artoa.data.extractSoundsourcesFromStruct( ...
-    involvedSoundsourceNames, ...
-    pSoundsources ...
-);
+[involvedSoundsources, involvedSoundsourceNames] = ...
+    artoa.controller.track.getInvolvedSoundsources();
 
 %% Add float drift to TOA
 pToaData = artoa.data.addFloatDrift( ...