changeset 46:40f8b4b5750b

Added a "label" header to resulting annotations
author Emmanouil Theofanis Chourdakis <e.t.chourdakis@qmul.ac.uk>
date Thu, 12 Oct 2017 15:02:48 +0100
parents 771dde08349a
children 659fa2db6fc7
files python/simscene.py
diffstat 1 files changed, 23 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/python/simscene.py	Tue Oct 10 11:55:05 2017 +0100
+++ b/python/simscene.py	Thu Oct 12 15:02:48 2017 +0100
@@ -46,8 +46,8 @@
 
 
 def timedict_to_dataframe(timedict):
-    return pd.DataFrame([(key, val[0], val[1]) for key in timedict for val in timedict[key]],
-                        columns=('filename', 'start_time', 'end_time'))
+    return pd.DataFrame([(key, val[0], val[1], val[2]) for key in timedict for val in timedict[key]],
+                        columns=('label', 'filename', 'start_time', 'end_time'))
 
 
 def render_pattern(fname, input_path, sr=44100):
@@ -68,6 +68,7 @@
     for n in range(len(pattern)):
         # Try loading the file,
         sampleid = pattern['sampleid'].loc[n]
+        label = pattern['sampleid'].loc[n]
         candidates = []
         for pattern_format in ['xls', 'json', 'txt', 'csv']:
             candidates += glob.glob('{}/pattern/{}*.{}'.format(input_path, sampleid, pattern_format))
@@ -134,10 +135,10 @@
         durations_samples.append(duration_samples)
         wav_files.append(event_render)
 
-        if chosen_fname in timesdict:
-            timesdict[chosen_fname].append((start_time, end_time))
+        if label in timesdict:
+            timesdict[label].append((chosen_fname,start_time, end_time))
         else:
-            timesdict[chosen_fname] = [(start_time, end_time)]
+            timesdict[label] = [(chosen_fname,start_time, end_time)]
 
         for pt in pattern_timedict:
             if pt in timesdict:
@@ -414,10 +415,10 @@
         new_start_time = start_times[-1]
         new_end_time = end_times[-1]
 
-        if chosen_fname in timedict:
-            timedict[chosen_fname].append((new_start_time, min(scene_duration, new_end_time)))
+        if label in timedict:
+            timedict[label].append((chosen_fname, new_start_time, min(scene_duration, new_end_time)))
         else:
-            timedict[chosen_fname] = [(new_start_time, min(scene_duration, new_end_time))]
+            timedict[label] = [(chosen_fname, new_start_time, min(scene_duration, new_end_time))]
 
         while new_start_time < scene_duration:
             offset = duration
@@ -433,14 +434,14 @@
             end_times.append(new_end_time)
 
             # Update timesdict noting where each filename starts and stops
-            if chosen_fname in timedict:
-                timedict[chosen_fname].append((new_start_time, min(scene_duration, new_end_time)))
+            if label in timedict:
+                timedict[label].append((chosen_fname, new_start_time, min(scene_duration, new_end_time)))
             else:
-                timedict[chosen_fname] = [(new_start_time, min(scene_duration, new_end_time))]
+                timedict[label] = [(chosen_fname, new_start_time, min(scene_duration, new_end_time))]
 
             # Also update the times from the patterns
             for pt in pattern_timedict:
-                pattern_timedict[pt] = [(s[0] + new_start_time, s[1] + new_start_time) for s in
+                pattern_timedict[pt] = [(s0, s[1] + new_start_time, s[2] + new_start_time) for s in
                                         pattern_timedict[pt]]
 
                 if pt in timedict:
@@ -577,13 +578,13 @@
             new_start_time = start_times[-1]
             new_end_time = end_times[-1]
 
-            if chosen_fname in timedict:
-                timedict[chosen_fname].append((new_start_time, min(scene_duration, new_end_time)))
+            if label in timedict:
+                timedict[label].append((chosen_fname, new_start_time, min(scene_duration, new_end_time)))
             else:
-                timedict[chosen_fname] = [(new_start_time, min(scene_duration, new_end_time))]
+                timedict[label] = [(chosen_fname, new_start_time, min(scene_duration, new_end_time))]
 
             for pt in pattern_timedict:
-                pattern_timedict[pt] = [(s[0] + new_start_time, s[1] + new_start_time) for s in
+                pattern_timedict[pt] = [(s[0], s[1] + new_start_time, s[2] + new_start_time) for s in
                                         pattern_timedict[pt]]
 
                 if pt in timedict:
@@ -606,9 +607,9 @@
             new_end_time = end_times[-1]
 
             if chosen_fname in timedict:
-                timedict[chosen_fname].append((new_start_time, min(scene_duration, new_end_time)))
+                timedict[label].append((chosen_fname, new_start_time, min(scene_duration, new_end_time)))
             else:
-                timedict[chosen_fname] = [(new_start_time, min(scene_duration, new_end_time))]
+                timedict[label] = [(chosen_fname, new_start_time, min(scene_duration, new_end_time))]
 
             # Until the scene is full
             while new_start_time < track_end_time:
@@ -631,14 +632,14 @@
                     start_times.append(new_start_time)
                     end_times.append(new_end_time)
 
-                    if chosen_fname in timedict:
-                        timedict[chosen_fname].append((new_start_time, min(scene_duration, new_end_time)))
+                    if label in timedict:
+                        timedict[label].append((chosen_fname, new_start_time, min(scene_duration, new_end_time)))
                     else:
-                        timedict[chosen_fname] = [(new_start_time, min(scene_duration, new_end_time))]
+                        timedict[label] = [(chosen_fname, new_start_time, min(scene_duration, new_end_time))]
 
                     # Also update the times from the patterns
                     for pt in pattern_timedict:
-                        pattern_timedict[pt] = [(s[0] + new_start_time, s[1] + new_start_time) for s in
+                        pattern_timedict[pt] = [(s0, s[1] + new_start_time, s[2] + new_start_time) for s in
                                                 pattern_timedict[pt]]
 
                         if pt in timedict: