瀏覽代碼

made it possible to adjust fft overlap

Jonathan Higgins 2 月之前
父節點
當前提交
12bed4a108
共有 3 個文件被更改,包括 38 次插入3 次删除
  1. 27 1
      scenes/main/control.tscn
  2. 8 1
      scenes/main/scripts/control.gd
  3. 3 1
      scenes/main/scripts/run_thread.gd

+ 27 - 1
scenes/main/control.tscn

@@ -573,7 +573,7 @@ offset_right = 592.0
 offset_bottom = 100.0
 text = "Stop Running Thread"
 
-[node name="Label" type="Label" parent="."]
+[node name="FFTSizeLabel" type="Label" parent="."]
 layout_mode = 0
 offset_left = 348.0
 offset_top = 48.0
@@ -618,6 +618,31 @@ popup/item_12/id = 12
 popup/item_13/text = "16380"
 popup/item_13/id = 13
 
+[node name="FFTOverlapLabel" type="Label" parent="."]
+layout_mode = 0
+offset_left = 517.0
+offset_top = 48.0
+offset_right = 617.0
+offset_bottom = 67.0
+text = "FFT Overlap:"
+
+[node name="FFTOverlap" type="OptionButton" parent="."]
+layout_mode = 0
+offset_left = 623.0
+offset_top = 45.0
+offset_right = 702.0
+offset_bottom = 72.0
+tooltip_text = "Adjusts the number of analysis points used by the frequency domain processes in this thread. More points give better frequency resolution but worse time resolution."
+item_count = 4
+popup/item_0/text = "1"
+popup/item_0/id = 0
+popup/item_1/text = "2"
+popup/item_1/id = 1
+popup/item_2/text = "3"
+popup/item_2/id = 2
+popup/item_3/text = "4"
+popup/item_3/id = 3
+
 [connection signal="connection_request" from="GraphEdit" to="GraphEdit" method="_on_connection_request"]
 [connection signal="copy_nodes_request" from="GraphEdit" to="GraphEdit" method="_on_copy_nodes_request"]
 [connection signal="delete_nodes_request" from="GraphEdit" to="GraphEdit" method="_on_graph_edit_delete_nodes_request"]
@@ -662,3 +687,4 @@ popup/item_13/id = 13
 [connection signal="button_down" from="CheckForUpdates/UpdatePopup/OpenAudioSettings" to="CheckForUpdates" method="_on_open_audio_settings_button_down"]
 [connection signal="button_down" from="ProgressWindow/KillProcess2" to="." method="_on_kill_process_button_down"]
 [connection signal="item_selected" from="FFTSize" to="." method="_on_fft_size_item_selected"]
+[connection signal="item_selected" from="FFTOverlap" to="." method="_on_fft_overlap_item_selected"]

+ 8 - 1
scenes/main/scripts/control.gd

@@ -172,9 +172,11 @@ func new_patch():
 	get_window().title = "SoundThread"
 	link_output()
 	
-	#set fft size to default
+	#set fft size and overlap to default
 	$FFTSize.select(9)
 	_on_fft_size_item_selected(9)
+	$FFTOverlap.select(2)
+	_on_fft_overlap_item_selected(2)
 	
 	
 func link_output():
@@ -872,3 +874,8 @@ func _on_fft_size_item_selected(index: int) -> void:
 	else:
 		fft_size = 1 << (index + 1)
 	run_thread.fft_size = fft_size
+
+
+
+func _on_fft_overlap_item_selected(index: int) -> void:
+	run_thread.fft_overlap = index + 1

+ 3 - 1
scenes/main/scripts/run_thread.gd

@@ -13,6 +13,7 @@ var process_running := false #tracks if a process is currently running
 var process_cancelled = false #checks if the currently running process has been cancelled
 var final_output_dir
 var fft_size = 1024 #tracks the fft size for the thread set in the main window
+var fft_overlap = 3 #tracks the fft overlap for the thread set in the main window
 
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
@@ -1067,7 +1068,8 @@ func match_pvoc_channels(dict: Dictionary) -> void:
 func _get_slider_values_ordered(node: Node) -> Array:
 	var results := []
 	if node.has_meta("command") and node.get_meta("command") == "pvoc_anal_1":
-		results.append(["slider", "-c", fft_size, false, [], 2, 32768, false, false])
+		results.append(["slider", "-c", fft_size, false, [], 2, 16380, false, false])
+		results.append(["slider", "-o", fft_overlap, false, [], 1, 4, false, false])
 		return results
 	for child in node.get_children():
 		if child is Range: