godot-sstv/node_3d.gd
2025-04-24 09:41:19 +01:00

31 lines
1.1 KiB
GDScript

extends Node3D
func encode_sstv():
#var encoder = Martin1.new()
var encoder = RobotBW8.new()
#var cameraImage = get_viewport().get_texture().get_image()
#var cameraImage = load("res://tests/checker.png").get_image()
#var cameraImage = load("res://tests/spiral.png").get_image()
var cameraImage = load("res://tests/testtest.png").get_image()
#var cameraImage = load("res://tests/testtest2.png").get_image()
#var cameraImage = load("res://tests/testtest3.png").get_image()
var audioBuffer = encoder.EncodeSSTV(cameraImage)
encoder.SaveAsWav("res://../sstv.wav")
# Spew that audio yo.
#$AudioStreamPlayer.stream.mix_rate = SSTVEncoder.SAMPLE_RATE
#$AudioStreamPlayer.stream.buffer_length = 120
#$AudioStreamPlayer.play()
#var player = $AudioStreamPlayer.get_stream_playback()
#for i in range(0, audioBuffer.size()):
#player.push_frame(Vector2(audioBuffer[i], audioBuffer[i]))
# a lil hacky delay so sdfgi can settle lol.
var startTimer = 0
var first = true
func _process(delta):
if startTimer > 10 and first:
first = false
encode_sstv()
startTimer += 1